Question shape repair
Stringified `questions`, bare question objects, and stringified `options` get coerced back before OpenCode validates the call.
An archived, dependency-free OpenCode source bundle that explored four narrow tool-call guardrails. It was never published to npm.
Failure modes
The source explored boring but expensive failures: tool args that are almost right, nested arrays that models stringify, UI placeholders that models misread, and repeat prompts that bury the original question.
Stringified `questions`, bare question objects, and stringified `options` get coerced back before OpenCode validates the call.
Only selected schema-like fields are parsed. JSON-looking file bodies, commands, and user content stay untouched.
Flat compress ranges and stringified range arrays get restored to DCP's native content array before validation.
A per-session lock blocks repeated question calls until the user replies, rejects, types a new message, or the safety TTL expires.
See it catch
Switch scenes to see each hook intervene at the exact point where the run would otherwise fail.
Historical status
The repository is read-only. The final main branch contains all four guardrails, while the initial v0.1.0 tag predates FixDcpCompressFlat.
# Historical reference only
Repository: https://github.com/nxxxsooo/opencode-plugin-fixes
npm package: never published
OpenCode package entry: invalid
Do not add `opencode-plugin-fixes` to OpenCode's plugin array. The archived repository is preserved as source history, not as a supported installation path.
Archived source · July 2026