Merge upstream mtconnect/cppagent (through PR #612) into fork#12
Open
johnathan-arsenault wants to merge 185 commits into
Open
Merge upstream mtconnect/cppagent (through PR #612) into fork#12johnathan-arsenault wants to merge 185 commits into
johnathan-arsenault wants to merge 185 commits into
Conversation
…n_20 Migrate to cpp version 20, upgrade to boost 1.88, and update other dependencies.
…d an unused argument.
…v2 and created a cutting tool test for v2. Added Date to the response header per 1.1
Swagger and logging fix
…tDevices complete document. Added tests and fixed all test names that were not descriptive
…ng_in_rest_sink
…guration for Devices, Streams, Assets, and Error Schemas as well as automatic detection if they are in a file directory
…s_with_schema_validation Added all versions of the json schemas from 2.0 to 2.7
Wire LLVM/gcov coverage instrumentation into the Conan and CMake builds: - cmake/Coverage.cmake: compiler-aware AGENT_ENABLE_COVERAGE option (Clang -fprofile-instr-generate/-fcoverage-mapping, GCC --coverage), included before targets so flags reach the lib, agent, and tests. - conanfile.py: new "coverage" option mapped to AGENT_ENABLE_COVERAGE. - tools/coverage.sh: run ctest, merge profiles, and emit an llvm-cov text + HTML report; auto-detects shared lib vs static test binaries. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ation_when_using_agent_adapter 611 obervation duplication when using agent adapter
# Conflicts: # conan/profiles/gcc # src/mtconnect/configuration/async_context.hpp # src/mtconnect/entity/xml_printer.cpp # src/mtconnect/printer/xml_printer.cpp # src/mtconnect/source/adapter/shdr/connector.cpp # test_package/http_server_test.cpp
johnathan-arsenault
requested review from
aprimakDNX,
gmaentz,
npalmerDNX and
nsargentDNX
July 22, 2026 16:55
npalmerDNX
approved these changes
Jul 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merges upstream
mtconnect/cppagent(184 commits since our last sync at PR mtconnect#569, 2025-09-17) into our fork. This closes the ~10-month gap that was held open over concern about Ubuntu 22.04 static-link parity — that concern is resolved: the merge builds on stock 22.04 and produces a binary linked only against libc/libm.Upstream through PR mtconnect#612. Boost is now 1.88.0; agent version 2.7.
Conflicts resolved (6)
conan/profiles/gccsource/adapter/shdr/connector.cppasio::ip::address::from_string; upstream modernized toip::make_address(our DHCP fix was effectively upstreamed). Took upstream's API.test_package/http_server_test.cppentity/xml_printer.cpp+printer/xml_printer.cppaddAttributes/addSimpleElement/addAttributeout of the.cpps intoxml_printer_helper.hpp. Removed our local copies and took upstream's structure.printer/xml_printer_helper.hppwriteXmlAttribute/writeXmlRaw) — DRYer than the former per-file copies.configuration/async_context.hppasync_contextworker exception policyOur fork and upstream independently fixed the same root cause (a naked
m_context.run()whose thrown completion handler silently killed the serving worker → "up but not serving").b6745137, "fatal exception handling + graceful shutdown") made it exit cleanly with code 1 as part of a coherentFatalExceptiontaxonomy, so the service layer / systemd (Restart=always,RestartSec=2) restarts the agent fresh.For our systemd-supervised edge deployment, upstream's approach is better-engineered (clean, observable restart vs. resuming after an unknown fault) and carries zero divergence. Adopted upstream's version verbatim. The fork-only test was rewritten to assert the adopted contract (
a_thrown_handler_is_fatal_and_stops_the_context).Our two independent hardening fixes in
server.cpp— accept-loop re-arm andlisten()throwing on bind failure — are unaffected and retained.Verification (Ubuntu 22.04, gcc-13, static)
docker/build.sh(mirrors.github/workflows/build-ubuntu-22.04.yml).IllegalControlCharactersAreSanitized,accept_loop_rearms_after_recoverable_error,listen_throws_when_port_is_already_bound,a_thrown_handler_is_fatal_and_stops_the_context.pkgroot) links libc/libm only — nolibstdc++.so.🤖 Generated with Claude Code