Repository navigation
Conversation
Approved engine-first delivery planArchived: 2026-10-18. Applies to review stack #2404 → #2405 → #2406 → #2407; exact branch/head/baseline identities below. Local plan paths are provenance only, not remote links. This is the full selected split/qualification plan; verification tasks below describe intended checks, not implicit pass claims. Actual results and remaining gates are recorded separately in the PR bodies. Engine-first identity deliverySlug: 2117-engine-identity Immutable delivery baseline and branchesBase branch: main; recorded start commit f9a3297. Remote main observed at c4a043f (#2402, TUI/docs only); no automatic rebase. Host requires current-main merge qualification before merge.
These bases organize review, not new module dependencies: providers and adapters both depend directly on engine. The host source tree exactly equals the retained assembled qualification candidate (tree 3763ffe56e1ba21bab363d3ad416c5e4a50077d7). The root checkout remains on the engine review branch; assembled/preparation worktrees stay under .scratch/2117-engine-split/. Approved outcome and authorityJoe approved on 2026-10-18: prepare, commit, push and open four draft PRs: engine; changed providers; persistence adapters; host/contracts/required client integration. Humans alone merge. No tags/releases, deployment, invented dependency pins, CI bypasses or new TUI presentation work. Preserve the assembled candidate in a local worktree under .scratch and keep the engine review branch at the main checkout root. Source boundary and contracts
API compatibilityThis is the already-approved breaking pre-v1 Go API minor, not additive-only and not /v2 import migration. Engine APIs change invocation identity, provider-neutral DTOs and private replay ownership. The engine PR does not itself change protobuf fields/server major, but carries engine-originated observable semantics that the final host PR exposes as approved Harness API major 2. Public opaque archive reasoning fields are removed/reserved in that final coordinated host/client change; readable reasoning/text/media/phase remain. Snapshot/event writers advance to sessnap-json/2 and eventlog-json/2; upgraded readers accept /1 and /2. Drain old readers/writers, upgrade both decoding drivers, then harness/clients; no mixed writers or downgrade after new writes. Exact module release versions remain unselected and publication requires separate authority. Tasks and evidence
Merge/release readinessReviewable source is not merge/release-ready. Before the engine merge, dependent source must be reviewable, assembled behavior qualified and release/pin order explicit. Real engine publication precedes provider/adapter pins and independent releases, then final host/integration pins and standalone/publication qualification. Existing required checks are not waived: Joe accepted review drafts with accounted-for consumer failures; any intermediate merge still needs a separate explicit maintainer decision. Release latency cannot be eliminated. Browser/image qualification remains unclaimed unless actually completed; final host draft must disclose inherited limitations. Verification ownershipThe directing agent owns split, integration, PR publication and evidence. A focused writable worker adds provider composition tests only in the retained assembled worktree and runs narrow checks. New tests get independent incremental panel review. Full Go gates use 1800-second outer limits; other full gates 600 seconds. Heavy suites run serially. No HANDOFF update. |
a8589e8 to
6bdb6a2
Compare
Migrate Responses, Anthropic and Chat Completions to provider-neutral LLM DTOs and qualify each real adapter through the engine with offline HTTP fixtures. Co-authored-by: Mecatl <noreply@mecatl.dev>
Synchronize the reviewed engine follow-up without merging unrelated host-main source. Exercise exact signed and redacted replay, reused provider pairing IDs, and cache marker placement through real HTTP requests. Co-authored-by: Mecatl <noreply@mecatl.dev>
Preserve the reviewed replay assertions when restacking onto the engine branch and its newer main baseline. Use the existing role-union content helper. Co-authored-by: Mecatl <noreply@mecatl.dev>
6bdb6a2 to
3e4541f
Compare
Fail closed when Messages SSE ends before message_stop, preserving cancellation and original transport failures. Add real HTTP and engine regressions proving tentative tool calls cannot execute or enter accepted history, and correct the text fixture's terminal event framing. Co-authored-by: Mecatl <noreply@mecatl.dev>
Clarify replay envelopes, legacy decoding, phase metadata, and buffering ownership without changing runtime behavior. Exercise Responses wire IDs through parser and engine admission, and Chat completion through real HTTP/SDK streams. Co-authored-by: Mecatl <noreply@mecatl.dev>
Current engine prerequisite and review status
The engine prerequisite is now #2404 at
80ddd21af, based on55b980d34. This provider branch has not been refreshed onto that engine checkpoint. Scope/file counts below describe the original split; the live stacked comparison needs refreshing before further integration qualification.The engine now rejects unsupported legacy snapshot continuations, normalizes supported snapshot versions before Restore, and owns complete-history reconstruction in
eventsourcerather thaneventcodec. These are engine/persistence policies, not new provider behavior. Historical plan comments may describe superseded migration policy; use #2404's current description and source.The verification receipts below are historical 2026-10-18 evidence, not qualification of the latest engine plus this downstream stack. No new tests or source/pin changes were made for this description update.
Scope
Review stack: #2404 engine → #2405 providers → #2406 adapters → #2407 host. Historical delivery-plan archive; migration policy superseded below.
Second draft in the #2117 canonical-identity review stack. Base:
impl/2117-engine-identity. This diff contains onlyprovider/openai,provider/anthropic, andprovider/openaichat(56 files). The three modules release independently after the engine prerequisite.No server, TUI, deployment, live providers, production credentials, new dependencies or pin changes.
API compatibility
Consumes the already-approved breaking pre-v1 engine minor: provider-facing DTOs/replay replace domain reasoning/item fields and chunks. This is not additive-only and not a
/v2Go import migration. Updated provider source requires a real released engine version before standalone qualification/publication; versions are deliberately not fabricated here.No Harness protobuf/HTTP/advertised-major change in this diff. The final coordinated host/client PR exposes approved Harness API major 2. Provider-private replay stays private. Stored session/event formats belong to the engine/persistence follow-ons; providers do not create a separate replay store. Existing replay fidelity and stateless full-history behavior remain the contract.
Verification
Go 1.27.2, Linux/amd64, 2026-10-18. Fresh normal and race,
-count=1, passed:The new tests received four-axis incremental review; a test-adequacy advisory about event content was fixed and rechecked. No remaining findings. No production source changed relative to the previously reviewed assembled implementation.
Historical complete assembled qualification passed on 2026-10-18, Go 1.27.2, Linux/amd64, with no uncommitted source changes:
task --concurrency 3 test:workspace:race— all 12 modules plus offlinemicrovm_devproof.task lint— all module checks, 0 issues.task docs,task site:build, offlinego run ./cmd/mecademo(tool/result, ask/approval/result), andtask test:module-metadata; generated/tracked files unchanged.Workspace selection uses the assembled checkout's absolute
go.workand existing unchanged dependency metadata. The tested tree3763ffe56e1ba21bab363d3ad416c5e4a50077d7equals public host-stack headda27200c3, with the provider/engine source at that historical checkpoint (not the latest #2404 engine). Workspace evidence is not standalone/publication evidence.Publication and expected red CI
This draft intentionally retains existing published engine pins until an authorized engine release exists.
GOWORK=offtests cannot compile new provider APIs against those old pins. Passing workspace tests proves current engine/provider composition, not published dependency closure. Root consumer compilation also remains broken until the final host source/pins land. Do not waive unrelated failures or disable checks.Before merging/publishing: human-reviewed engine merge → separately authorized main-reachable engine tag → update all three providers to that real engine version → tidy only the affected modules and run standalone build/test/race/publication checks → publish each changed provider module → update final host/integration pins. No permanent replacements or PR-head pseudo-versions. Intermediate required-check handling still requires a separate explicit maintainer decision.
Draft for source review, not merge/release-ready. The review stack's adapter PR follows this branch for readable diffs, but adapters do not depend on providers. No release/deployment/merge performed; no new TUI presentation work.