Problem
upgrade.sh can fail after applying managed files when lib/project-opencode-subagents.py reads a previously persisted manifest created before the general_agent field existed. The missing key is accessed directly as previous["general_agent"], producing:
KeyError: general_agent
OpenCode subagent projection failed (projector)
The upgrade had already synchronized the Homeboy worktree adapter and other managed runtime files, leaving a partial upgrade that cannot reach its normal verification/restart summary.
Expected
Manifest reads should normalize absent optional fields to their current defaults before ownership comparison. Add a deterministic migration fixture for a valid legacy manifest without general_agent, proving the upgrade completes without overwriting user-owned agent.general.
Reproduction
Run ./upgrade.sh --wp-path <local-studio-site> against an install whose existing projector manifest predates general_agent.
AI assistance
OpenAI GPT-5.6 Sol via OpenCode ran the merged upgrade, captured the exact traceback, and traced the direct legacy-manifest key access. Chris Huber directed the control-plane recovery and remains responsible for this report.
Problem
upgrade.shcan fail after applying managed files whenlib/project-opencode-subagents.pyreads a previously persisted manifest created before thegeneral_agentfield existed. The missing key is accessed directly asprevious["general_agent"], producing:The upgrade had already synchronized the Homeboy worktree adapter and other managed runtime files, leaving a partial upgrade that cannot reach its normal verification/restart summary.
Expected
Manifest reads should normalize absent optional fields to their current defaults before ownership comparison. Add a deterministic migration fixture for a valid legacy manifest without
general_agent, proving the upgrade completes without overwriting user-ownedagent.general.Reproduction
Run
./upgrade.sh --wp-path <local-studio-site>against an install whose existing projector manifest predatesgeneral_agent.AI assistance
OpenAI GPT-5.6 Sol via OpenCode ran the merged upgrade, captured the exact traceback, and traced the direct legacy-manifest key access. Chris Huber directed the control-plane recovery and remains responsible for this report.