Repository navigation
quest: plan per-job opencode saved output - #484
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
opencode 2.x keeps credentials in opencode.db beside the sessions, so the credential cannot be linked in as a file. Put the data directory beside the checkout rather than in it, and leave where sessions live as a decision. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
There was a problem hiding this comment.
ℹ️ Minor suggestions inline, none blocking.
Reviewed changes — a docs-only quest-plan PR (88 added lines, zero code). A reviewfrog subagent verified every opencode claim in the plan against anomalyco/opencode at tag v2.1.1, and the runner-side claims were checked against src/runner/ and #480's head.
- Adds
quest/m0/kix/sandbox/opencode-data.md— an[M]quest for a per-job opencode data directory, ranked before the Claude Code boundary test, grounded in opencode 2.1.1's storage layout with the shared-vs-per-job database decision left under## Waiting. - Adds the quest to the epic index (
quest/m0/kix/sandbox/README.md), one listing line in the## Requiredchildren.
Verification summary, for the record: all four upstream claims check out — credentials are credential rows in opencode.db with auth.json only a legacy import; OPENCODE_DB overrides the database path and server-process.ts passes it through; tool-output/ is flat while shell/ is per-project, both pruned at 7 days; subagent rejects any session that is not a child of the current session. The savedOutput citation matches src/runner/opencode.ts on #480's head, and commands still cannot read a state-directory path (runtimeSettings allowRead lists only the checkout, the bare clone, and the attempt's /tmp dir), so the "beside the checkout" placement holds.
glm-5.3-flash | 𝕏
The maintainer picked the shared account database for sessions and the credential. Rewrite the goal around saved output and require an absolute OPENCODE_DB path. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — the delta since the prior pullfrog review (991d012), re-reviewing 181ac74 against the same upstream and runner verifications as before: all claims still hold, and the only new factual statement (OPENCODE_DB relative resolution) matches the verified path.resolve(dataDir, value) behavior at v2.1.1.
- Rewrote the quest around the shared-database decision — the title, README entry, and goal now scope the per-job directory to saved output (
tool-output,shell) only, with sessions and the credential staying in the account'sopencode.db; the goal no longer promises per-job sessions or a per-job database. - Replaced the
## Waitingitem with a second decision block recording the maintainer's/quest-completepick (sharedOPENCODE_DB; per-job database rejected for refresh-token invalidation between concurrent jobs). - Corrected the
OPENCODE_DBfact to "resolved against the data directory unless it is absolute" and added a launch bullet requiring the account database's absolute path, with the empty-database failure mode stated — the delta resolves the prior review's open suggestion. - No code or behavioral surface;
quest checkpasses on the checkout (70 documents ok).
The plan's claim that a shared database's other sessions stay out of a job's reach remains accurate and is now the load-bearing guard behind the shared-database decision — its two mechanisms (subagent's child-only resume, jobConfig denying tools.opencode.*) were verified in the prior round and nothing in the delta changed them.
glm-5.3-flash | 𝕏
|
quest land watch: the merge queue removed this pull request at 181ac74 because it conflicts with The land fixer works on it in the background, and the watcher re-enqueues it at the back of the queue once it is fixed or judged flaky, or hands it back here with what it needs. (written by quest land watch) |

Plans
quest/m0/kix/sandbox/opencode-data.md, the follow-up moq-dev/quest#480 suggested. On opencode 2.x every job on an account shares itsdata/opencode, and the job plugin lets file tools read all savedtool-outputandshellcaptures. So a job can read output another repository's job saved.Changes
[M] Per-job opencode saved outputin m0's job sandbox epic, ranked before the Claude Code boundary test. It requires the opencode 2.x quest, which feat(runner)!: drive opencode 2.x through @opencode/client #480 finishes.opencode.db.v2.1.1. Credentials are rows inopencode.db, next to the sessions, andauth.jsonis only a legacy import.OPENCODE_DBmoves the database, resolved against the data directory unless absolute.tool-output/has no directory per project.XDG_DATA_HOMEat the per-job directory andOPENCODE_DBat the account database's absolute path.Decisions
Settled with the maintainer in /quest-complete on 2026-11-04:
opencode.db(throughOPENCODE_DB), so the credential and its token refreshes stay shared; only saved output (tool-output,shell) moves to a per-job directory beside the checkout, deleted with it.This replaces the quest's
## Waitingitem; the goal, title, and the epic's link line no longer promise per-job sessions.Review
mechanical fix by quest land watch:
merged main at c76df6877ef0e172b7234be77642ffb3207bb731 with the quest merge driver(head 8707f13)Codex
gpt-6.1-solat xhigh effort,quest reviewround 2 on head181ac740bb68d9cf1a9cb8bc500368ba7b8b3621: no findings.Pullfrog's findings on
991d012:OPENCODE_DBresolves against the data directory (path.resolve(data, filename)inpackages/cli/src/database-path.tsatv2.1.1, verified), so the implementation guidance now requires the account database's absolute path.auth.json. The maintainer rejected that option.Requiredlink to/quest/m0/opencode-sdk.md, which feat(runner)!: drive opencode 2.x through @opencode/client #480 deletes. It is correct while feat(runner)!: drive opencode 2.x through @opencode/client #480 is open, andquest check --fixdrops it after whichever PR merges second merges the base.Round 1 (Codex, head
991d012) reported no findings, after Claude Opus 5.5 rewrote the plan aroundOPENCODE_DBand placed the data directory beside the checkout.Validation:
nix develop -c just checkpasses on181ac740.Suggested follow-ups
None.
🤖 Generated with Claude Code
(Written by Claude Opus 5.5)