{"type":"treeship/session-receipt/v1","session":{"id":"ssn_a1b2c3d4","name":"deploy-bot","mode":"auto_workspace","started_at":"2026-04-26T17:00:00.000Z","ended_at":"2026-04-26T17:04:12.000Z","status":"completed","duration_ms":252000,"narrative":{"headline":"shipped v0.9.5 to fly.io","summary":"Validated release manifest, ran build + tests, deployed to fly.io. All preflight checks green; CI was already passing on main.","review":"Three agents collaborated: deploy-bot orchestrated, planner validated the manifest against package.json + git diff, executor ran the deploy. Two handoffs, one return. No retries."}},"participants":{"root_agent_instance_id":"ai_deploy_bot_01","final_output_agent_instance_id":"ai_executor_03","total_agents":3,"spawned_subagents":2,"handoffs":2,"max_depth":1,"hosts":1,"tool_runtimes":1},"hosts":[{"host_id":"host_macbook_pro_m3","hostname":"macbook-pro-m3.local","os":"macos","arch":"arm64"}],"tools":[{"tool_id":"tool_bash","tool_name":"Bash","invocation_count":21},{"tool_id":"tool_read","tool_name":"Read","invocation_count":14},{"tool_id":"tool_edit","tool_name":"Edit","invocation_count":9},{"tool_id":"tool_write","tool_name":"Write","invocation_count":3}],"agent_graph":{"nodes":[{"agent_id":"agent_deploy_bot","agent_instance_id":"ai_deploy_bot_01","agent_name":"deploy-bot","agent_role":"orchestrator","host_id":"host_macbook_pro_m3","started_at":"2026-04-26T17:00:05.000Z","completed_at":"2026-04-26T17:04:10.000Z","status":"completed","depth":0,"tool_calls":8,"model":"claude-opus-4-7","provider":"anthropic","tokens_in":8400,"tokens_out":2100},{"agent_id":"agent_planner","agent_instance_id":"ai_planner_02","agent_name":"planner","agent_role":"validator","host_id":"host_macbook_pro_m3","started_at":"2026-04-26T17:00:30.000Z","completed_at":"2026-04-26T17:04:08.000Z","status":"completed","depth":1,"tool_calls":12,"model":"gpt-5","provider":"openai","tokens_in":12100,"tokens_out":3400},{"agent_id":"agent_executor","agent_instance_id":"ai_executor_03","agent_name":"executor","agent_role":"deploy-runner","host_id":"host_macbook_pro_m3","started_at":"2026-04-26T17:01:45.000Z","completed_at":"2026-04-26T17:04:05.000Z","status":"completed","depth":1,"tool_calls":27,"model":"kimi-k2","provider":"moonshot","tokens_in":6800,"tokens_out":1900}],"edges":[{"from_instance_id":"ai_deploy_bot_01","to_instance_id":"ai_planner_02","edge_type":"handoff","timestamp":"2026-04-26T17:00:32.000Z","artifacts":["art_7a2c4f9b1e8d3a6c"]},{"from_instance_id":"ai_planner_02","to_instance_id":"ai_executor_03","edge_type":"handoff","timestamp":"2026-04-26T17:01:47.000Z","artifacts":["art_3d8e1f4a9c7b5e2d"]},{"from_instance_id":"ai_executor_03","to_instance_id":"ai_deploy_bot_01","edge_type":"return","timestamp":"2026-04-26T17:04:05.000Z","artifacts":[]}]},"timeline":[{"sequence_no":1,"timestamp":"2026-04-26T17:00:00.000Z","event_id":"evt_0001","event_type":"session.started","agent_instance_id":"ai_deploy_bot_01","agent_name":"deploy-bot","host_id":"host_macbook_pro_m3","summary":"session opened"},{"sequence_no":2,"timestamp":"2026-04-26T17:00:05.000Z","event_id":"evt_0002","event_type":"agent.started","agent_instance_id":"ai_deploy_bot_01","agent_name":"deploy-bot","host_id":"host_macbook_pro_m3","summary":"loaded deploy plan from .deploy/v0.9.5.yaml"},{"sequence_no":3,"timestamp":"2026-04-26T17:00:15.000Z","event_id":"evt_0003","event_type":"agent.read_file","agent_instance_id":"ai_deploy_bot_01","agent_name":"deploy-bot","host_id":"host_macbook_pro_m3","summary":"src/deploy/config.toml"},{"sequence_no":4,"timestamp":"2026-04-26T17:00:30.000Z","event_id":"evt_0004","event_type":"agent.spawned","agent_instance_id":"ai_planner_02","agent_name":"planner","host_id":"host_macbook_pro_m3","summary":"spawned to validate release manifest"},{"sequence_no":5,"timestamp":"2026-04-26T17:00:32.000Z","event_id":"evt_0005","event_type":"agent.handoff","agent_instance_id":"ai_deploy_bot_01","agent_name":"deploy-bot","host_id":"host_macbook_pro_m3","summary":"handoff → planner (manifest validation)"},{"sequence_no":6,"timestamp":"2026-04-26T17:01:00.000Z","event_id":"evt_0006","event_type":"agent.read_file","agent_instance_id":"ai_planner_02","agent_name":"planner","host_id":"host_macbook_pro_m3","summary":"package.json (version match check)"},{"sequence_no":7,"timestamp":"2026-04-26T17:01:30.000Z","event_id":"evt_0007","event_type":"agent.called_tool","agent_instance_id":"ai_planner_02","agent_name":"planner","host_id":"host_macbook_pro_m3","summary":"Bash: git diff main..HEAD --stat"},{"sequence_no":8,"timestamp":"2026-04-26T17:01:45.000Z","event_id":"evt_0008","event_type":"agent.spawned","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"spawned to perform deploy"},{"sequence_no":9,"timestamp":"2026-04-26T17:01:47.000Z","event_id":"evt_0009","event_type":"agent.handoff","agent_instance_id":"ai_planner_02","agent_name":"planner","host_id":"host_macbook_pro_m3","summary":"handoff → executor (validated, ready to ship)"},{"sequence_no":10,"timestamp":"2026-04-26T17:01:55.000Z","event_id":"evt_0010","event_type":"agent.started_process","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"bun install"},{"sequence_no":11,"timestamp":"2026-04-26T17:02:05.000Z","event_id":"evt_0011","event_type":"agent.wrote_file","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"src/deploy/config.toml"},{"sequence_no":12,"timestamp":"2026-04-26T17:02:25.000Z","event_id":"evt_0012","event_type":"agent.wrote_file","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"infra/fly.toml"},{"sequence_no":13,"timestamp":"2026-04-26T17:02:45.000Z","event_id":"evt_0013","event_type":"agent.called_tool","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"Bash: bun test --run"},{"sequence_no":14,"timestamp":"2026-04-26T17:03:15.000Z","event_id":"evt_0014","event_type":"agent.started_process","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"bun run build"},{"sequence_no":15,"timestamp":"2026-04-26T17:03:27.000Z","event_id":"evt_0015","event_type":"agent.completed_process","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"bun run build (exit 0, 11.8s)"},{"sequence_no":16,"timestamp":"2026-04-26T17:03:45.000Z","event_id":"evt_0016","event_type":"agent.started_process","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"fly deploy --remote"},{"sequence_no":17,"timestamp":"2026-04-26T17:04:03.000Z","event_id":"evt_0017","event_type":"agent.completed_process","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"fly deploy (exit 0, 18.3s)"},{"sequence_no":18,"timestamp":"2026-04-26T17:04:05.000Z","event_id":"evt_0018","event_type":"agent.returned","agent_instance_id":"ai_executor_03","agent_name":"executor","host_id":"host_macbook_pro_m3","summary":"deploy successful, returning control"},{"sequence_no":19,"timestamp":"2026-04-26T17:04:08.000Z","event_id":"evt_0019","event_type":"agent.completed","agent_instance_id":"ai_planner_02","agent_name":"planner","host_id":"host_macbook_pro_m3","summary":"validation + deploy complete"},{"sequence_no":20,"timestamp":"2026-04-26T17:04:10.000Z","event_id":"evt_0020","event_type":"agent.completed","agent_instance_id":"ai_deploy_bot_01","agent_name":"deploy-bot","host_id":"host_macbook_pro_m3","summary":"all subagents reported success"},{"sequence_no":21,"timestamp":"2026-04-26T17:04:12.000Z","event_id":"evt_0021","event_type":"session.closed","agent_instance_id":"ai_deploy_bot_01","agent_name":"deploy-bot","host_id":"host_macbook_pro_m3","summary":"headline: shipped v0.9.5 to fly.io"}],"side_effects":{"files_read":[{"file_path":"src/deploy/config.toml","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:00:45.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000001a","source":"hook"},{"file_path":"src/deploy/manifest.yaml","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:00:52.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000001b","source":"hook"},{"file_path":"package.json","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:00:59.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000001c","source":"mcp"},{"file_path":"scripts/preflight.sh","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:06.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000001d","source":"mcp"},{"file_path":".github/workflows/release.yml","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:13.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000001e","source":"hook"},{"file_path":"src/api/health.ts","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:01:20.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000001f","source":"hook"},{"file_path":"src/api/version.ts","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:01:27.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000020","source":"mcp"},{"file_path":"infra/fly.toml","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:01:34.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000021","source":"hook"}],"files_written":[{"file_path":"src/deploy/config.toml","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:05.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000002c","operation":"modified","additions":8,"deletions":3,"source":"hook"},{"file_path":"src/api/health.ts","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:14.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000002d","operation":"modified","additions":24,"deletions":9,"source":"hook"},{"file_path":"src/api/version.ts","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:23.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000002e","operation":"modified","additions":6,"deletions":1,"source":"hook"},{"file_path":"infra/fly.toml","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:32.000Z","digest":"sha256:000000000000000000000000000000000000000000000000000000000000002f","operation":"modified","additions":4,"deletions":2,"source":"mcp"},{"file_path":"infra/Dockerfile","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:41.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000030","operation":"modified","additions":11,"deletions":5,"source":"mcp"},{"file_path":".github/workflows/release.yml","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:50.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000031","operation":"modified","additions":17,"deletions":4,"source":"hook"},{"file_path":"scripts/postdeploy.sh","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:59.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000032","operation":"created","additions":28,"deletions":0,"source":"hook"},{"file_path":"src/api/deploy-status.ts","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:08.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000033","operation":"created","additions":47,"deletions":0,"source":"mcp"},{"file_path":"src/components/DeployBanner.tsx","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:17.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000034","operation":"created","additions":33,"deletions":0,"source":"mcp"},{"file_path":"tests/api/health.spec.ts","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:26.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000035","operation":"modified","additions":19,"deletions":6,"source":"hook"},{"file_path":"CHANGELOG.md","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:35.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000036","operation":"modified","additions":7,"deletions":2,"source":"git-reconcile"},{"file_path":"VERSION","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:44.000Z","digest":"sha256:0000000000000000000000000000000000000000000000000000000000000037","operation":"modified","additions":1,"deletions":1,"source":"git-reconcile"}],"ports_opened":[],"network_connections":[{"destination":"registry.fly.io","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:45.000Z"}],"processes":[{"process_name":"bun install","agent_instance_id":"ai_executor_03","started_at":"2026-04-26T17:01:55.000Z","exit_code":0,"duration_ms":4200},{"process_name":"bun run build","agent_instance_id":"ai_executor_03","started_at":"2026-04-26T17:03:15.000Z","exit_code":0,"duration_ms":11800},{"process_name":"fly deploy --remote","agent_instance_id":"ai_executor_03","started_at":"2026-04-26T17:03:45.000Z","exit_code":0,"duration_ms":18300}],"tool_invocations":[{"tool_name":"Read","agent_instance_id":"ai_deploy_bot_01","timestamp":"2026-04-26T17:00:08.000Z","duration_ms":80},{"tool_name":"Read","agent_instance_id":"ai_deploy_bot_01","timestamp":"2026-04-26T17:00:12.000Z","duration_ms":80},{"tool_name":"Read","agent_instance_id":"ai_deploy_bot_01","timestamp":"2026-04-26T17:00:16.000Z","duration_ms":80},{"tool_name":"Read","agent_instance_id":"ai_deploy_bot_01","timestamp":"2026-04-26T17:00:20.000Z","duration_ms":80},{"tool_name":"Read","agent_instance_id":"ai_deploy_bot_01","timestamp":"2026-04-26T17:00:24.000Z","duration_ms":80},{"tool_name":"Read","agent_instance_id":"ai_deploy_bot_01","timestamp":"2026-04-26T17:00:28.000Z","duration_ms":80},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:00.000Z","duration_ms":220},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:06.500Z","duration_ms":220},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:13.000Z","duration_ms":220},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:19.500Z","duration_ms":220},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:35.000Z","duration_ms":180},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:42.000Z","duration_ms":180},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:49.000Z","duration_ms":180},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:01:56.000Z","duration_ms":180},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:02:03.000Z","duration_ms":180},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:02:10.000Z","duration_ms":180},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:02:17.000Z","duration_ms":180},{"tool_name":"Bash","agent_instance_id":"ai_planner_02","timestamp":"2026-04-26T17:02:24.000Z","duration_ms":180},{"tool_name":"Bash","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:50.000Z","duration_ms":240},{"tool_name":"Bash","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:02:56.000Z","duration_ms":240},{"tool_name":"Bash","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:02.000Z","duration_ms":240},{"tool_name":"Bash","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:08.000Z","duration_ms":240},{"tool_name":"Bash","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:14.000Z","duration_ms":240},{"tool_name":"Bash","agent_instance_id":"ai_executor_03","timestamp":"2026-04-26T17:03:20.000Z","duration_ms":240}]},"artifacts":[{"artifact_id":"art_5e3f8c2b9a1d4e7f","payload_type":"treeship/action/v1","digest":"sha256:5e3f8c2b9a1d4e7f000000000000000000000000000000000000000000000000","signed_at":"2026-04-26T17:00:05.000Z"},{"artifact_id":"art_7a2c4f9b1e8d3a6c","payload_type":"treeship/handoff/v1","digest":"sha256:7a2c4f9b1e8d3a6c000000000000000000000000000000000000000000000000","signed_at":"2026-04-26T17:00:32.000Z"},{"artifact_id":"art_3d8e1f4a9c7b5e2d","payload_type":"treeship/handoff/v1","digest":"sha256:3d8e1f4a9c7b5e2d000000000000000000000000000000000000000000000000","signed_at":"2026-04-26T17:01:47.000Z"},{"artifact_id":"art_9b1e4f7d2a5c8e3b","payload_type":"treeship/decision/v1","digest":"sha256:9b1e4f7d2a5c8e3b000000000000000000000000000000000000000000000000","signed_at":"2026-04-26T17:04:08.000Z"},{"artifact_id":"art_2c5f8d1e4a7b9c3d","payload_type":"treeship/receipt/v1","digest":"sha256:2c5f8d1e4a7b9c3d000000000000000000000000000000000000000000000000","signed_at":"2026-04-26T17:04:12.000Z"}],"proofs":{"signature_count":5,"signatures_valid":true,"merkle_root_valid":true,"inclusion_proofs_count":5,"zk_proofs_present":false},"merkle":{"leaf_count":5,"root":"mroot_a0be5b7f7e686ac5bf42047c9ed78bae68fe7838a632de29069d49bdcc23cb38","checkpoint_id":"ckpt_2026_04_26_17_04_12","inclusion_proofs":[]},"render":{"schema_version":"1","rendered_by":"treeship-website-fixture"}}