Skip to content

feat: add Docker Agent native ACP Chat - #6540

Open
nikhilachale wants to merge 14 commits into
OrchestratorInc:mainfrom
nikhilachale:feat/docker-agent-acp-integration
Open

nikhilachale wants to merge 14 commits into
OrchestratorInc:mainfrom
nikhilachale:feat/docker-agent-acp-integration

Conversation

@nikhilachale

@nikhilachale nikhilachale commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

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 current main at fb6497faa5cb3ef8058ca427cf1536d8b5a36be7). GitHub mergeability is MERGEABLE; 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 lifecycle 738b7d36385e41e5305bb723657734a9ad0ca26e. Released native Docker Agentv1.150.0 executable SHA256 791fa6bac9f829847f00ab948f838bf54d11e0830988a5e5bce88d65ea65f2d1. 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 SHA256 8887aa2e7101b9e6d3950bfca08ffddf2e1e6c1c3f1d030c8dec2676443aecea remains 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_RUN does not erase those passes. Excluded interfaces/manual model input are deliberate supported-scope decisions.

Area Supported scope Verification Proof or reason
Registration and UI Unix native ACP Chat only; terminal/fallback, handoff, accept-edits, reasoning-effort overrides and unqualified versions refused. NOT_RUN Adapter/registry/API/generated/product paths are present; current Settings/task journeys not reverified.
Models Intentional default-only pre-launch model; native configured options in live Chat. NOT_RUN No catalog/discovery gap is inferred; current native model/UI selection NOT_RUN.
Setup Official manual standalone binary guide, absolute native YAML and provider prerequisites; Docker Desktop optional. NOT_RUN Guide/source wiring available; current Settings journey NOT_RUN.
Readiness OS preflight and contextual required-file check before seed, outside capability cache; Configure rechecks. NOT_RUN Effective reserved AO_* launch environment is validated; new runtime paths NOT_RUN.
Identity and logo Product label and documented initials fallback; upstream asset reuse terms unverified. NOT_RUN Branding disposition documented; actual current avatar UI NOT_RUN.
TUI and Chat Chat registered; terminal/handoff excluded deliberately. Historical actual AO Chat screenshots retained. NOT_RUN Historical actual AO images; excluded interfaces are deliberate.
Permissions and instructions Private additive native session-start context with native manual controls; accept-edits/effort overrides refused. NOT_RUN Historical scoped PASS/limits; current live path NOT_RUN.
Lifecycle Historical executing Interrupt/Kill/control isolation, exact restore/fresh instructions and detached-host reconnect. NOT_RUN Historical scoped PASS/limits; current live path NOT_RUN.
Evidence Pinned historical source/native/runner/UI receipts, attempts, images and provenance; missing originals disclosed. NOT_RUN Historical evidence retained; current native/UI proof NOT_RUN. Reproduction-input limitations below remain explicit.
CI and handoff Exact source checks/merge snapshot; incomplete live qualification and historical cleanup. PASS (source CI); live NOT_RUN Current merge commit CI: 25/25 successful checks; mergeability MERGEABLE. Source CI scope only; current native/UI qualification NOT_RUN.

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.

@github-actions

Copy link
Copy Markdown
Contributor

🏆 Review leaderboard

Oct 4–11, 2026 · UTC

Rank Reviewer PRs reviewed Review rounds PR comments
🥇 @illegalcall @illegalcall 30 49 10
🥈 @ronishrohan @ronishrohan 17 20 11
🥉 @Prasad-D-Ware @Prasad-D-Ware 12 29 1
4 @Vaibhaav-Tiwari @Vaibhaav-Tiwari 12 15 5
5 @nikhilachale @nikhilachale 11 24 3
6 @axisrow @axisrow 8 10 21
7 @mohakchakraborty2004 @mohakchakraborty2004 7 7 1
8 @Rishet11 @Rishet11 5 11 2
9 @Pritom14 @Pritom14 5 5 3
10 @codebanditssss @codebanditssss 4 4 2

Ranked by distinct external PRs reviewed, then review rounds, then PR comments. Self-activity and bot activity are excluded.

Show 5 more reviewers
Rank Reviewer PRs reviewed Review rounds PR comments
11 @Annieeeee11 @Annieeeee11 3 6 1
12 @harshitsinghbhandari @harshitsinghbhandari 2 4 0
13 @neversettle17-101 @neversettle17-101 2 3 0
14 @whoisasx @whoisasx 2 2 0
15 @AgentWrapper @AgentWrapper 1 3 0

@nikhilachale

nikhilachale commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator Author

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.

Actual AO Chat with native approved shell after reconnect

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.

@nikhilachale

nikhilachale commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator Author

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.

@nikhilachale
nikhilachale marked this pull request as ready for review October 11, 2026 10:03
@i-trytoohard i-trytoohard added this to the Agents & orchestration milestone Oct 11, 2026
@i-trytoohard i-trytoohard added comp/daemon Go daemon, process lifecycle, and backend control plane. enhancement New feature or request labels Oct 11, 2026
@nikhilachale

Copy link
Copy Markdown
Collaborator Author

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.

Recorded harness evidence — see scope above

Preserve harness-owned evidence and merge current canonical API, storage, and native Chat updates. Runtime proof remains qualified by its original source.
@nikhilachale

Copy link
Copy Markdown
Collaborator Author

Canonical main conflicts reconciled at 50235c812d7c, preserving previous source/evidence ancestry and every existing harness report/screenshot byte. Reconciliation receipt.

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.
@nikhilachale

Copy link
Copy Markdown
Collaborator Author

Canonical main conflicts reconciled at 798f47072450, preserving previous source/evidence ancestry and every existing harness report/screenshot byte. Reconciliation receipt.

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.

@nikhilachale

Copy link
Copy Markdown
Collaborator Author

Canonical main conflicts reconciled at ca13d1bc9540, preserving previous source/evidence ancestry and every existing harness report/screenshot byte. Reconciliation receipt.

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 axisrow left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/daemon Go daemon, process lifecycle, and backend control plane. enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants