Problem
Lab OpenCode readiness failures are discovered only after fanout handoff, and the resulting errors are hard to connect to a concrete remediation.
Evidence
Observed during figma-scale-lab-wave-20260707:
- Bare model
gpt-5.5 resolved as gpt-5.5/. and failed with ProviderModelNotFoundError: Model not found: gpt-5.5/..
- Fully-qualified
openai/gpt-5.5 then exposed stale Lab auth: Token refresh failed: 401.
- After auth refresh, fanout reached OpenCode but failed on workspace access policy:
permission requested: external_directory; OpenCode permission policy denied tool call glob.
- Manual runner config changes were required before the same executor could run.
Expected
Homeboy's OpenCode runner readiness/preflight should verify before dispatch:
- the selected model is fully-qualified or resolves to an available OpenCode provider/model,
- OpenCode auth can refresh or run a trivial request,
- workspace paths that Homeboy will hand to OpenCode are allowed by OpenCode permissions,
glob and expected workspace tools are allowed.
Why it matters
These are deterministic runner readiness issues. Detecting them before fanout avoids burning every child attempt on the same environmental failure.
Problem
Lab OpenCode readiness failures are discovered only after fanout handoff, and the resulting errors are hard to connect to a concrete remediation.
Evidence
Observed during
figma-scale-lab-wave-20260707:gpt-5.5resolved asgpt-5.5/.and failed withProviderModelNotFoundError: Model not found: gpt-5.5/..openai/gpt-5.5then exposed stale Lab auth:Token refresh failed: 401.permission requested: external_directory;OpenCode permission policy denied tool call glob.Expected
Homeboy's OpenCode runner readiness/preflight should verify before dispatch:
globand expected workspace tools are allowed.Why it matters
These are deterministic runner readiness issues. Detecting them before fanout avoids burning every child attempt on the same environmental failure.