Files
stack/agents/rocko
jason.woltjeandClaude Opus 5.5 3edb15eb96 fix(discord): engine tests stop in finally; a turn pi never started stops pi instead of guessing (#1509)
Every engine test stops its engine in finally, and commands() tolerates a
log that doesn't exist yet, so a failed assertion no longer leaks a fake pi
and hangs the six-package union. A turn that failed client-side stays at
the front of the queue and holds the next prompt. If pi has sent no
agent_start ABORT_GRACE_MS (30 s) after the failure, the engine marks
itself wedged, fails held prompts with engine-wedged, refuses new ones with
engine-down, and stops pi. The exit reaches onExit, the connector exits 1,
and the unit restarts it. Pi's events carry no prompt id, so R1's approach,
dropping the turn and sending on, let a late run answer the next prompt.
Rocko rejected R1 and approved R2.

Tests: engine 17/17 (R1 fails 4, HEAD fails 5). Union 408/408 and the eight
suites green on the committed index. Record:
agents/darkwing/work/discord-engine-busy/.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-26 15:50:37 -05:00
..

Rocko development TUI

Run from any terminal:

/mnt/storage/src/mosaic-stack/agents/rocko/launch.sh

Rocko handles general Mosaic Stack development assignments under project lead Sage. The launcher opens Claude Code in the repository with --model sonnet and the display name Rocko. Sonnet is the selected CLI model alias; Rocko's project persona is supplied by SOUL.md, not a separate custom Claude agent.

Use --check to validate the executable and context inputs without a model call. This does not verify authentication or account access to Sonnet. Claude Code uses its normal authentication, settings, permissions, and discovered resources; this script does not copy credentials or bypass permissions.

Normal launches resume the exact Claude UUID recorded locally in .pi/state/rocko/session-id. First launch creates a UUID; --fresh creates another while retaining previous conversations in Claude's native storage. Each private launch receipt under .pi/state/rocko/launches/ retains its UUID and context snapshot. The launcher lock refuses concurrent Rocko launches through this script; it does not lock sessions opened by other means.

If Claude exits before saving its first conversation, or its history is removed, the saved UUID may not be resumable. Inspect the failure and use --fresh explicitly to start again. The launcher does not fall back to the latest unrelated project conversation. Old UUIDs in launch receipts can be opened manually with claude --resume UUID from the project directory.

The prompt snapshot includes CONSTITUTION, STANDARDS, Rocko's SOUL, the live Mosaic user profile, root AGENTS.md, and Rocko's CONTEXT.md. --soul FILE, --constitution FILE, and --user FILE override individual inputs; relative paths resolve from the repository root. Missing or empty inputs refuse launch. The snapshot is appended to Claude's system prompt on each launch.

This is a host development session, not a managed fleet registration. It loads no Pi goal extension. The user or team lead supplies the assignment.