Repository navigation
build(harness): rebase the harness onto OpenCode 1.19.4 - #1959
Merged
Merged
Conversation
The SDK's request and event-stream code is unchanged between 1.19.0 and 1.19.4 (the lazy SSE client, `sseMaxRetryAttempts`/`onSseError`, and the `opencode serve` spawn); the v2 types gain an optional `reasoning_options` on provider models. The lockfile change is limited to the SDK entry; dist/THIRD_PARTY_NOTICES.txt carries the new version.
Moves the harness base from OpenCode 1.19.0 to 1.19.4 and keeps all 15 carries. A merge simulation onto the v1.19.4 tag in config order matches the one onto v1.19.0 exactly: nine carries merge cleanly, three have the trivial conflicts the ledger describes (anomalyco/opencode#31922, #33713, #47430), and three need the resolver (#19961, #33134, #33159). The conflicting files and hunk counts are identical, and no carry head drags extra commits onto the tag. None of the carries is merged upstream and no removal condition is met. The code the Action, gateway and runtime consume is unchanged between the tags: `tool/task.ts`, the session files, the server event handler, the SDK's SSE client and `opencode serve` spawn, and the database migrations. What changed upstream: session sharing was discontinued (the share routes stay, and sharing fails), configured `reasoning_options` build provider variants, the update check now reads npm for every install method and only counts a newer 1.x release as an update, and `script/build.ts` installs the musl native packages explicitly because Bun 1.4.4 skips the other libc by default. Bun moves to 1.4.4 because upstream's `packageManager` does. The harness build gate requires an exact match, so `HARNESS_BUN_VERSION`, both `bun-version` inputs in `harness-release.yaml` (the drift-guard test requires them to match) and the Renovate Bun cap move together. The `build-platform` singleFlag patch applies unchanged to the v1.19.4 `build.ts`. Also moved: the Renovate cap for `anomalyco/opencode` and `@opencode-ai/sdk` (`<=1.19.4`), the clonedeps manifest and AGENTS.md source pins, the carry ledger's verified version and status lines, the harness README's update-check description, and the `build-platform` verification note and provenance test. `DEFAULT_OPENCODE_VERSION` and the workspace image pin move when `harness-release` syncs them after publish.
fro-bot
approved these changes
Oct 27, 2026
fro-bot
left a comment
Owner
There was a problem hiding this comment.
Verdict: PASS
No actionable regression found in the 15-file diff. SDK manifests and lockfile agree on 1.19.4; release-job Bun pins match upstream's 1.4.4 declaration. The upstream target-selection block remains compatible with the harness patch.
Blocking issues
None
Non-blocking concerns
None
Missing tests
None identified for the changed pins. Existing provenance, pin-invariant, carry-ledger, and build-platform tests cover the relevant contracts. Tests were inspected, not executed.
Risk assessment (MED): likelihood of regression, security exposure, or blast radius
The upstream runtime and Bun compiler change has release-wide reach, though this diff introduces no new permissions or public API changes. Carry integration and platform binaries still depend on CI/release validation; the author's live probes were not independently reproduced.
Run Summary
| Field | Value |
|---|---|
| Event | pull_request |
| Repository | fro-bot/agent |
| Run ID | 40465701590 |
| Cache | hit |
| Session | ses_e83c8f37bffew4aH0pOkFsU77E |
| Scope | All 15 changed files and relevant build/release/test context; checkout unchanged |
| Verification | Static review and upstream tagged-source inspection; no build, lint, type-check, or test suite executed |
| Focused probe | bun --version reported 1.3.14. bun install --help and bun install '--libc=*' --help inspected flag handling; bun install '--libc=*' --dry-run --ignore-scripts --no-save exited successfully, ruling out immediate argument rejection, not proving upstream build compatibility |
| Review tooling | Three read-only reviewer passes returned no findings; packaged synthesis validation was unavailable because reference access was denied, so their payloads were withheld from formal synthesis. Verdict is based on direct source inspection |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the harness base from OpenCode 1.19.0 to 1.19.4 and keeps all 15 carries. The
@opencode-ai/sdkbump to 1.19.4 is in the same PR, so the server and the SDK move together.Carries. None was merged upstream, and none has met its removal condition. I simulated merging the carries onto the v1.19.4 tag in config order, and the result matches the one at 1.19.0:
The conflicting files and hunk counts match the ledger. No carry head pulls extra commits onto the tag.
Upstream changes between 1.19.0 and 1.19.4 that matter here. Most of the code the Action, gateway and runtime use is unchanged:
tool/task.ts, the session, permission, question and storage code, the/eventhandler (server.connectedis still emitted first), the SDK's lazy SSE stream and itsopencode servespawn, the database migrations and instance dispose. Four things did change:packageManagermoved from bun@1.3.14 to bun@1.4.4. The harness build requires an exact match, soHARNESS_BUN_VERSION, theharness-releasebun-versioninputs and the Renovate Bun cap move to 1.4.4. The existing drift test keeps those three in step.<base>+harness.<sha>no longer counts as older than<base>.opencode servestill never runs the check. The harness README is corrected.reasoning_optionsis a new optional provider option. It is additive, and type checks stay clean.script/build.tsadds--libc="*"to its native installs. Thebuild-platformpatch still applies, which I checked against the real v1.19.4 file.Live checks against stock 1.19.4. These are the same as on 1.19.0:
server.connectedis the first frame;/instance/disposerefreshes a stale file listing;OPENCODE_CLIENT=fro-bot-action;On a cold server, meaning the first prompt the process handles, an early abort isn't honoured, and that is true on 1.19.0 as well. #1958 tracks it.
Other changes:
anomalyco/opencodeand@opencode-ai/sdkmoves to<=1.19.4.build-platformverification note and the provenance test expectation are updated.DEFAULT_OPENCODE_VERSIONand the workspace image pin move whenharness-releasesyncs them after publish.