Repository navigation
feat: add Docker Agent native ACP Chat - #6540
nikhilachale wants to merge 14 commits into
Conversation
🏆 Review leaderboardOct 4–11, 2026 · UTC
Ranked by distinct external PRs reviewed, then review rounds, then PR comments. Self-activity and bot activity are excluded. Show 5 more reviewers
|
|
Current backend/UI source aa77056 passed real AO native ACP Chat proof. Exact restore retained native history, replaced runtime generation and consumed post-Kill private instructions. Executing Interrupt/Kill reaped marked children without late effects; unrelated control survived. Electron daemon replacement adopted the same native host and a further file edit passed. Curated report and provenance. Evidence head f18c771; all three published PNGs were downloaded and SHA-256 verified. Earlier wrong-workspace failure is preserved separately in the report. Observer mistakes and provider reasoning exhaustion are explicit; a helper-overwritten local lifecycle summary is transparently reconstructed from retained assertions/observations. Dirty worktrees were preserved; owned sessions terminated and exact owned process absence verified. Full routine verification runs only in GitHub Actions; current-head CI is pending. |
|
Ready for review: exact head 33468ca is 23/23 green (backend CI, frontend CI). Evidence head f18c771 is 5/5 green, including 145/145 fixtures. Real native ACP and AO/Electron proof, immutable screenshots and cleanup receipts are in the curated report. Runtime backend/UI was aa77056; the final commit changes only test import grouping. Scope remains Unix standalone v1.150.0 native ACP Chat, with truthful TUI/effort/accept-edits rejection. No local routine suites ran; no merge/release/deployment. |
|
Harness-specific reports, JSON receipts, screenshots and provenance now live on this integration PR branch, rather than the skill PR #6509. Evidence index with embedded screenshots and JSON links. Historical successes, failures and scope limitations remain as recorded. Moving these files does not rerun native/AO testing or upgrade any verdict. This is evidence relocation only. Existing tested source/native hashes and failures are preserved; the documentation commit is not a fresh runtime pass. Applicable checks run in PR CI. |
Preserve harness-owned evidence and merge current canonical API, storage, and native Chat updates. Runtime proof remains qualified by its original source.
|
Canonical main conflicts reconciled at Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries. |
Build the real daemon in PR CI for isolated VPS runtime verification without local validation suites or dependency installations. Record source revision, Go build info, and executable hash.
|
Canonical main conflicts reconciled at Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries. |
|
Canonical main conflicts reconciled at Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries. |
axisrow
left a comment
There was a problem hiding this comment.
Approving. The binding itself is careful: admission pins the exact released version until native qualification covers later ones, the config must be an absolute regular file, the per-session runtime directory is an SHA-256 of session plus scope at 0700, standing context is replaced atomically with a 32 KiB ceiling instead of accepting silent hook truncation, and the cat hook argument is correctly shell-quoted. Declining accept-edits and effort overrides with typed capability errors is honest about what the native annotations cannot promise. The NOT_RUN matrix in the description is unusually candid - treat this review as source-level only; the setup journey, live model selection, and lifecycle paths still need their first current native run before this ships to users, and the exact-head CI pending at review time is the gate for the race shards.

Code changes: +421 -16
Tests: +542 -3
Others: +480 -3
Binary assets in this source snapshot: 3 (excluded from line counts).
Unix native ACP Chat only; terminal/fallback, handoff, accept-edits, reasoning-effort overrides and unqualified versions refused.
Current status
Current source snapshot:
91b2a2321c5eb226c03a7b824a88b07b1ac8c18c(merged currentmainatfb6497faa5cb3ef8058ca427cf1536d8b5a36be7). GitHub mergeability isMERGEABLE; all 25 fresh source checks passed. Current CI checks. Four explicit conflicts are resolved while preserving Docker Agent, Copilot, and Agy registration, the shared model admission helper, and migrations 0198–0200 plus 0205. The automatic merge's duplicate native ACP initialization validator is removed. Current native/UI runtime qualification remains NOT_RUN.The conflict resolution used an isolated source worktree. Local backend build, vet, formatting, Chat registry/Docker Agent/native ACP suites, targeted session/model/effort tests, API regeneration drift checks, Cloud client checks (29 tests), product UI checks (160 tests), and native helper configuration tests (17 tests) passed. Broad local session/SQLite suites timed out under host resource pressure; the focused migration build hit
no space left on device. Full local race, lint, sqlc, Cloud, frontend/docs/container validation could not complete reliably; those jobs and Linux/Windows/macOS platform checks passed in fresh GitHub CI. Current native provider/UI runtime qualification was not rerun.Historical runtime build: Historical AO/UI capture/reconnect
aa7705614e6f91041ff5f1e71de6315104505a66; initial lifecycle738b7d36385e41e5305bb723657734a9ad0ca26e. Released native Docker Agentv1.150.0 executable SHA256791fa6bac9f829847f00ab948f838bf54d11e0830988a5e5bce88d65ea65f2d1. Native001/AO001–004, reconnect and captures remain separate. Report · evidence index, original receipts, image/provenance hashes. Receipt SHAs/bytes are unchanged. Linux/VPS proof is not Windows/macOS native proof. Runner SHA2568887aa2e7101b9e6d3950bfca08ffddf2e1e6c1c3f1d030c8dec2676443aecearemains historical where reported; manual/standalone proof is not a strict runner PASS.Changes since runtime proof: Source now rejects unsupported OS and validates the required native YAML file in the effective reserved AO_* filtered launch environment before seeding a session/workspace. Contextual validation runs outside the capability cache and Configure rechecks it. Pre-launch model selection remains intentionally default-only; Docker Agent owns its configured model options in live Chat. No model-discovery change is claimed. Setup documentation records the intentional initials avatar fallback; logo reuse for this bundled avatar has not been verified against Docker trademark guidance. Changed readiness/configuration paths have no new native/UI runtime proof. The first source-CI attempt at b2dbbe1 failed to compile a new fixture because a typed ProjectID was used as a string map key; the follow-up converts both accesses. Original failed CI job remains preserved; no AO screenshot exists because compilation never launched AO.
The matrix separates current verification from recorded historical passes;
NOT_RUNdoes not erase those passes. Excluded interfaces/manual model input are deliberate supported-scope decisions.Historical implementation and evidence
Reuses nativeacp/persistent hosts and a user-installed standalone native binary; Docker Desktop is optional. AO_DOCKER_AGENT_CONFIG selects an absolute existing native YAML config. Private additive session-start context and native history live under AO data; exact load rejects missing history/wrong workspace. Configured credentials stay unknown authorization. Migration0205 preserves older recognizers with historical/burned-schema/down-migration controls; no sibling/reviewer registration is added. Historical source 33468ca had 23/23 green checks; evidence f18c771 was 5/5/145 fixtures. The “only import grouping changed” claim applied to that historical CI head, not the current source. AO001 wrong-source-workspace, AO002 malformed audit YAML, AO003 effort handling and AO004 observer/no-tool failures remain retained.
historical receipt 1 · historical receipt 2
Reproduction and retained-original limitations
The reconnect helper overwrote lifecycle.json with an empty observer report. Published lifecycle-curated.json is an explicitly reconstructed summary of retained launch receipts and contemporaneous observations; the original lifecycle bytes are unavailable. This reporting fix does not turn that reconstruction into an original machine receipt.
The pinned reports/JSON retain action/result, file/token effects, process identity, cancellation, native-history continuity and capture assertions. A complete sanitized executable reproduction bundle is not established for every manual helper: exact helper bytes/hash and invocation, applicable local-contract bytes/hash with probe argv and interrupt/readiness/draft-cleanup settings, and complete native/AO fingerprints are unavailable where not recorded in the linked receipts; recoverability of those original inputs is unknown. No missing command, contract, hash or result is invented. Later reproductions must use a new attempt and cannot replace original failed/missing evidence.
Recorded owned-process/session/daemon/Electron cleanup is historical. Source worktrees, native profiles/history, dirty scratch workspaces, binaries and raw logs were reported retained privately; a complete current inventory/location/hash and recoverability of every original class are unavailable in the public record. Current recoverability is unknown; this reporting fix reconstructs no missing input and silently substitutes none. Share sanitized artifacts only; exclude credential stores, raw DBs and provider-profile directories. Preserve the retained failures and original screenshots.