Skip to content

Extension service: carry the solver-mode route (fork-retirement cutover blocker) (#798) - #801

Merged
aarontrowbridge merged 1 commit into
mainfrom
798-solver-mode-route
Sep 5, 2026
Merged

Extension service: carry the solver-mode route (fork-retirement cutover blocker) (#798)#801
aarontrowbridge merged 1 commit into
mainfrom
798-solver-mode-route

Conversation

@aarontrowbridge

Copy link
Copy Markdown
Member

Closes #798.

Ports POST /amicode/solver-mode from the fork mainline into the extension-host service — the last route the shipped overlay posts that the service lacked, and a fork-retirement cutover blocker.

  • Handler ported from the fork's pin-.21 release (asset sha-verified against the lock); persistence is the identical file contract the extension's watcher already consumes (solver-mode.json + issimo revoke in entitlements.toml) — no semantic divergence.
  • Golden fixture re-recorded live from the authentic pinned binary (74 entries + 3 new solver-mode arcs appended last); contract suite replayed against the ported service: 77/77; new unit file pins persistence, revoke-preserves-other-codes, watcher-bound write, and the honest piccolo_flip_failed degradation: 9/9.
  • Drive-by: the wiring log's hard-coded route count now reads service.routeCount — it had already drifted (35 registered).
  • Full scope: 2176 passed / 4 failed — the known environmental set, verified pre-existing via stash. Typecheck clean.

POST /amicode/solver-mode — the release half of the toggle contract,
ported from the fork's connections.ts @ v1.18.10-amicode.21 (the handler
lives there in the pin). Body {mode:"piccolo"} only; hp is refused
(unsupported_mode — the flip follows a Company Compute credential, and a
second hp writer is the duplicate-flip bug ADR 0001 forbids). Persistence
rides the SAME shared file contract the fork writes and the extension
watcher consumes: revoke `issimo` in $AMICODE_OPS_DIR/entitlements.toml,
then write {mode:"piccolo",status:"switching"} to solver-mode.json. No
divergence: the fork's state is a file, and the service can hold it.

Golden fixture recorded from the authentic pin-.21 linux-x64 fork binary
(release asset sha256 e07fd08d… matches opencode.lock.json): three new
arc entries (bad_request / unsupported_mode / settled-piccolo release),
appended last — a successful release rewrites ops-dir state, so no other
recorded entry may depend on it. Full 74-entry replay passes.

Also: the wiring log's route count reads service.routeCount instead of a
hard-coded number that had already drifted (said 31; 35 registered).
@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 13b9f11c-e6fc-4c6c-af19-14efed0c3cb4


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@aarontrowbridge
aarontrowbridge merged commit 8ebc7e2 into main Sep 5, 2026
9 checks passed
@aarontrowbridge
aarontrowbridge deleted the 798-solver-mode-route branch September 5, 2026 05:48
@aarontrowbridge
aarontrowbridge restored the 798-solver-mode-route branch September 6, 2026 02:41
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.

Extension service: carry the solver-mode route (fork-retirement cutover blocker)

1 participant