fix(drive): repair compaction and open-picker probes for current V2 - #78
Merged
Conversation
compact-admission replied to compaction requests by matching the old "anchored summary" prompt, which OpenCode PR #46751 replaced with a structured template whose `##` headings the server now requires. The fake model routes on the stable prompt frame and returns a template-shaped summary, so expected compactions settle as completed again. open-picker read the default model and build agent from a cold location before plugins had activated, which returns empty data since OpenCode PR #46639. Bump the pinned client to 0.0.0-dev-18911 for plugin.awaitActivation and call it for both fixture locations first. Closes #74
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.
Why
Two of the TUI regression probes have failed against every recent OpenCode V2 revision, on both the base and target of each gauntlet run, so 22 of 44 gauntlet configurations were dark with no signal about the PR under test. Both failures are Drive drift behind OpenCode changes, not OpenCode regressions.
What Changes
compact-admission.ts(5 cases × 70/120 cols)compaction.failed("did not match the required template"); the probe then timed out waiting forcompleted.Summarize only the history shown) and answered with a##-sectioned summary, so they settlecompletedand all five invariants in the README table hold unchanged.open-picker.ts(6 cases × 44/100 cols)undefined == trueatassert(model)before the TUI launched:model.default/agent.listfor a cold location return empty data until plugins activate.plugin.awaitActivationfor both project locations before reading the default model and build agent; the asserts carry messages. Closes #74.Why the compaction reply needed a shape
OpenCode PR #46751 replaced the compaction prompt with a structured template and rejects any summary lacking one of its
##headings. The template wording has already changed once since (#46889), so the probe routes on the surrounding prompt frame rather than the template text.Client bump
plugin.awaitActivation(OpenCode #46682) is newer than the pinned@opencode-ai/client@0.0.0-dev-18862, so the pin moves to0.0.0-dev-18911. Typecheck, unit, and CLI integration tests are clean on the new client, and the other manual probes I re-ran decode current responses. A patch changeset records the bump.Not fixed:
multi-tool-interleavings.tsThe third dark probe is a real OpenCode defect, so it is documented in the README rather than papered over. Since OpenCode #46724 the glob tool copies
hidden: input.hiddeninto its permissionmetadata; an omitted input leavesundefined, which theRecord(String, Unknown)response encoder rejects, andGET /api/session/:id/permissionanswers 400 while the permission is pending. Confirmed against36095decd7with a minimal glob call:permission.list{ pattern }Expected JSON value at ["data"][0]["metadata"]["path"]{ pattern, path, limit }(the probe's input)… ["metadata"]["hidden"]{ pattern, path, limit, hidden: false }Adding
hidden: falseto the probe would hide a bug that any real model call omittinghidden(orpath, orlimit) trips.Verification
Bun 1.4.0;
OPENCODE_DEVis a detached worktree oforigin/v2at36095decd7; every probe run used--daemonandOPENCODE_DRIVE_MEDIA_DIR=$PWD/.drive-output.