Troubleshooting
Treat a failure as evidence about the nearest role boundary, not as permission to skip it. Start with the public host and configuration contracts below.
Discovery and first run
Section titled “Discovery and first run”Plugin discovery remains a host contract. Skills-only copies do not register hooks, and Node.js must be on PATH for hook adapters. If the named profile is missing, runtime returns no_named_profiles; run onboard-bearing and validate the readback. A leftover lineups.json returns MIGRATION_REQUIRED and is never silently loaded.
Work that appears stuck
Section titled “Work that appears stuck”Use a host-native status check when it exists:
- A
RUNNINGsession is never duplicated. COMPLETEDadvances only from durable evidence.INACTIVEorEXITEDresumes from the last durable state using an approved fallback.UNKNOWNreturnsWAITING_ONunless an owner explicitly requests replacement.
Bearing Lite does not add a watchdog daemon, heartbeat service, global timeout, or model polling.
Lease, assurance, and manifest failures
Section titled “Lease, assurance, and manifest failures”A live competing Lifecycle in the same checkout returns WAITING_ON; released, stale-generation, forged, or branch/HEAD-drifted leases fail closed. Each declared cadence unit allows one review and one aggregated repair before deterministic closure; remaining material conflict returns to the owner.
If an activated verification backend is unavailable, record ERROR / backend_unavailable. A receipt tied to a prior candidate or pre-repair evidence is stale and fails closed. When a Manifest looks stale, return to machine-readable authority and durable evidence: it is a human projection, not a transition grant.