You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a turn finishes length, the session loop treated it like stop — subagents exit silently mid-work (empty or reasoning-only) with no error.
Evidence
Tip fae62505cdf0f137ea583d233579ebfcfc38ad55 (base dev):
Leaf: session loop entry gate + in-loop branch — one continuation if usable text/tools and prior turn was not also length; else OutputLengthError (existing schema/ACP max_tokens mapping)
Tests claimed: three RED→GREEN cases in packages/opencode/test/session/prompt.test.ts (recoverable / reasoning-only / bound)
Evidence class: SOURCE + REPORTED (deepseek V4 flash stall). Live suite on tip this pass: UNKNOWN (run not finished in env)
Thread already has TUI copy suggestion for MessageOutputLengthError — optional leaf, not re-filed here
Invariant: truncation is either one bounded continue or an explicit output-length failure — never a silent successful stop.
For never-again: should every finish reason that is not a chosen stop be forced through an error-or-continue matrix so new reasons cannot fall through as success?
tip: fae62505cdf0f137ea583d233579ebfcfc38ad55
evidence: SOURCE on length→continue / OutputLengthError branch + entry-gate exclude; REPORTED (Raynos deepseek stall); live prompt truncation suite PENDING/UNKNOWN this pass
Factory QA: duplicate mirror of #27 for anomalyco/opencode#40142. Continue evidence/status updates on #27; one origin item gets one downstream QA thread.
Activity
kvnloo commentedon Sep 25, 2026
Factory QA: duplicate mirror of #27 for
anomalyco/opencode#40142. Continue evidence/status updates on #27; one origin item gets one downstream QA thread.