Skip to content

feat(cpp-evtx): full AgentProfile ports replacing CppParserAdapterBrick - #239

Draft
IanFrelinger wants to merge 6 commits into
cursor/resilient-executor-afa8from
cursor/depextract-cpp-profile-afa8
Draft

feat(cpp-evtx): full AgentProfile ports replacing CppParserAdapterBrick#239
IanFrelinger wants to merge 6 commits into
cursor/resilient-executor-afa8from
cursor/depextract-cpp-profile-afa8

Conversation

@IanFrelinger

@IanFrelinger IanFrelinger commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

Continues the generic-agent refactor off PR #238. Turns the C++/EVTX path into a real AgentProfile (target="cpp-evtx") that drives GenerativeArtifactBrick. CppParserAdapterBrick is deleted.

Ports

Port Status
(a) GxxCompileValidator Done
(b) DockerSandboxProvider Done
(c) PocoInstallTarget + SnapshotManagedFileSet Done
(d) Drafter + knowledge + Qt shim dir Done
(e) CppEvtxProfileFactory + AddNexoCppEvtxAgentProfile() Done
(f) Retire CppParserAdapterBrick + migrate tests Done

What moved into the profile

  • Compile gate → GxxCompileValidator over ISandboxedCommandRunner / SandboxSpec
  • Sandbox layout → DockerSandboxProvider (+ Qt shims into scratch shim dir only)
  • Install → PocoInstallTarget over IManagedFileSet + ISingleFlightGuard + IPocoDeploymentOps
  • Scaffold / model draft → CppDeterministicDrafter / CppArtifactDrafter (CppAdapterPrompt, KnownContractVocabulary → UnsupportedReferences/Confidence)
  • DI → AddNexoCppEvtxAgentProfile(); Gui uses GenerativeArtifactBrick + CppEvtxAdaptRunner

Proposed / additive core changes (reviewed, not silent)

  1. Optional SandboxSpec.Entrypoint (needed for dep-extract image) — earlier commit
  2. GenerativeArtifactBrick: merge draft provenance (UnsupportedReferences/Confidence/Assumptions) + re-validate templated drafts even when artifact.Provenance is set
  3. GenerativeArtifactBrick inputs: preferDeterministic, overrides passthrough (domain-neutral; needed for AdaptInstallLoop force-model path)

Constraints held

  • No C++/Docker/g++/Poco names in Contracts or Ports folders
  • SQL profile acceptance still green
  • Domain names live in DepExtract profile plugin + Gui concrete ops only

Tests (real runs)

  • DepExtract profile suite (Gxx/DockerSandbox/PocoInstall/Drafter/Acceptance/Scoring): 29 passed
  • Application SQL + provenance merge + ManagedFileSet: 5 passed
  • Gui AdaptInstallLoopFailureLoopTests: 4 passed (also fixed TestHost JSON via SafeJson Content helper)

Follow-ons (not in this PR)

  • RequiresNetworkRequiresEgress + RequiresLocalServices
  • Nexo.Analyzers BrickInterface key rule
Open in Web Open in Cursor 

Prerequisite: domain-neutral SandboxSpec.Entrypoint so shared runner can override image ENTRYPOINT (needed for g++ on dep-extract). Port (a): GxxCompileValidator wraps AdapterCompileGate over ISandboxedCommandRunner + IScratchSpace.
Owns dep-extract image + mount layout; writes artifact/companions/smoke into scratch and returns SandboxSpec via GxxSandboxSpecFactory. Zero fixed-engine edits; domain names stay in DepExtract profile plugin.
Adds SnapshotManagedFileSet (temp-swap + rollback), PocoInstallTarget with ISingleFlightGuard and injectable stack ops, and rollback-on-build-failure tests. Zero fixed-engine interface edits; domain names stay in DepExtract.
Extracts BuildSystemPrompt/KnownContractVocabulary into profile helpers; deterministic + model drafters attach UnsupportedReferences/Confidence on the artifact; QtHeaderShims write into sandbox shim dir only.
Proposed additive core change (reviewed): preserve UnsupportedReferences/Confidence/Assumptions from profile drafters, and run post-validators on templated drafts even when artifact.Provenance is already set. Required for cpp-evtx compile-gate + grounding parity.
Wires GxxCompileValidator, DockerSandboxProvider, PocoInstallTarget, Cpp drafters into CppEvtxProfileFactory + AddNexoCppEvtxAgentProfile. Gui AdaptInstallLoop/plan/run drive GenerativeArtifactBrick target=cpp-evtx. Deletes CppParserAdapterBrick; migrates scoring/acceptance tests. Additive brick inputs: preferDeterministic + overrides.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants