pi-crew 0.1.46 → 0.1.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +97 -0
- package/agents/analyst.md +11 -11
- package/agents/critic.md +11 -11
- package/agents/executor.md +11 -11
- package/agents/explorer.md +11 -11
- package/agents/planner.md +11 -11
- package/agents/reviewer.md +11 -11
- package/agents/security-reviewer.md +11 -11
- package/agents/test-engineer.md +11 -11
- package/agents/verifier.md +11 -11
- package/agents/writer.md +11 -11
- package/docs/next-upgrade-roadmap.md +117 -42
- package/docs/refactor-tasks-phase3.md +394 -394
- package/docs/refactor-tasks-phase4.md +564 -564
- package/docs/refactor-tasks-phase5.md +402 -402
- package/docs/refactor-tasks-phase6.md +662 -662
- package/docs/research/AGENT-EXECUTION-ARCHITECTURE.md +261 -0
- package/docs/research/AGENT-LIFECYCLE-COMPARISON.md +111 -0
- package/docs/research/AUDIT_OH_MY_PI.md +261 -0
- package/docs/research/AUDIT_PI_CREW.md +457 -0
- package/docs/research/CAVEMAN-DEEP-RESEARCH.md +281 -0
- package/docs/research/COMPARISON_OH_MY_PI_VS_PI_CREW.md +264 -0
- package/docs/research/DEEP-RESEARCH-PI-POWERBAR.md +343 -0
- package/docs/research/DEEP_RESEARCH_SUBAGENT_ARCHITECTURE.md +480 -0
- package/docs/research/GAP_CLOSURE_IMPLEMENTATION_PLAN.md +354 -0
- package/docs/research/IMPLEMENTATION_PLAN.md +385 -0
- package/docs/research/LIVE-SESSION-PRODUCTION-READY-PLAN.md +502 -0
- package/docs/research/OH-MY-PI-DEEP-RESEARCH-v14.7.6.md +266 -0
- package/docs/research/REMAINING-GAPS-PLAN.md +363 -0
- package/docs/research/SESSION-SUMMARY-2026-05-08.md +146 -0
- package/docs/research/UI-RESPONSIVENESS-AUDIT.md +173 -0
- package/docs/research-awesome-agent-skills-distillation.md +100 -100
- package/docs/research-extension-examples.md +297 -297
- package/docs/research-extension-system.md +324 -324
- package/docs/research-oh-my-pi-distillation.md +56 -9
- package/docs/research-optimization-plan.md +548 -548
- package/docs/research-phase10-distillation.md +198 -198
- package/docs/research-phase11-distillation.md +201 -201
- package/docs/research-pi-coding-agent.md +357 -357
- package/docs/research-source-pi-crew-reference.md +174 -174
- package/docs/runtime-flow.md +148 -148
- package/docs/source-runtime-refactor-map.md +107 -107
- package/index.ts +6 -6
- package/package.json +99 -98
- package/schema.json +8 -0
- package/skills/async-worker-recovery/SKILL.md +42 -42
- package/skills/context-artifact-hygiene/SKILL.md +52 -52
- package/skills/delegation-patterns/SKILL.md +54 -54
- package/skills/mailbox-interactive/SKILL.md +40 -40
- package/skills/model-routing-context/SKILL.md +39 -39
- package/skills/multi-perspective-review/SKILL.md +58 -58
- package/skills/observability-reliability/SKILL.md +41 -41
- package/skills/orchestration/SKILL.md +157 -0
- package/skills/ownership-session-security/SKILL.md +41 -41
- package/skills/pi-extension-lifecycle/SKILL.md +39 -39
- package/skills/requirements-to-task-packet/SKILL.md +63 -63
- package/skills/resource-discovery-config/SKILL.md +41 -41
- package/skills/runtime-state-reader/SKILL.md +44 -44
- package/skills/secure-agent-orchestration-review/SKILL.md +45 -45
- package/skills/state-mutation-locking/SKILL.md +42 -42
- package/skills/systematic-debugging/SKILL.md +67 -67
- package/skills/ui-render-performance/SKILL.md +39 -39
- package/skills/verification-before-done/SKILL.md +57 -57
- package/skills/worktree-isolation/SKILL.md +39 -39
- package/src/agents/agent-config.ts +6 -0
- package/src/agents/agent-search.ts +98 -0
- package/src/agents/agent-serializer.ts +4 -0
- package/src/agents/discover-agents.ts +17 -4
- package/src/config/config.ts +24 -0
- package/src/config/defaults.ts +11 -0
- package/src/extension/autonomous-policy.ts +26 -33
- package/src/extension/cross-extension-rpc.ts +82 -82
- package/src/extension/help.ts +1 -0
- package/src/extension/management.ts +5 -0
- package/src/extension/register.ts +58 -13
- package/src/extension/registration/commands.ts +33 -1
- package/src/extension/registration/compaction-guard.ts +125 -125
- package/src/extension/registration/team-tool.ts +6 -4
- package/src/extension/run-bundle-schema.ts +89 -89
- package/src/extension/run-index.ts +24 -18
- package/src/extension/run-maintenance.ts +68 -62
- package/src/extension/team-tool/api.ts +23 -2
- package/src/extension/team-tool/cancel.ts +86 -11
- package/src/extension/team-tool/context.ts +3 -0
- package/src/extension/team-tool/handle-settings.ts +188 -188
- package/src/extension/team-tool/inspect.ts +41 -41
- package/src/extension/team-tool/intent-policy.ts +42 -0
- package/src/extension/team-tool/lifecycle-actions.ts +47 -18
- package/src/extension/team-tool/parallel-dispatch.ts +156 -0
- package/src/extension/team-tool/plan.ts +19 -19
- package/src/extension/team-tool/respond.ts +10 -2
- package/src/extension/team-tool/run.ts +3 -2
- package/src/extension/team-tool/status.ts +1 -1
- package/src/extension/team-tool-types.ts +1 -0
- package/src/extension/team-tool.ts +13 -3
- package/src/hooks/registry.ts +61 -0
- package/src/hooks/types.ts +41 -0
- package/src/i18n.ts +184 -184
- package/src/observability/exporters/otlp-exporter.ts +77 -77
- package/src/prompt/prompt-runtime.ts +72 -72
- package/src/runtime/agent-control.ts +108 -2
- package/src/runtime/agent-memory.ts +72 -72
- package/src/runtime/agent-observability.ts +114 -114
- package/src/runtime/async-marker.ts +26 -26
- package/src/runtime/async-runner.ts +3 -1
- package/src/runtime/attention-events.ts +28 -28
- package/src/runtime/background-runner.ts +19 -0
- package/src/runtime/cancellation-token.ts +89 -0
- package/src/runtime/cancellation.ts +61 -51
- package/src/runtime/capability-inventory.ts +116 -0
- package/src/runtime/child-pi.ts +2 -1
- package/src/runtime/code-summary.ts +247 -0
- package/src/runtime/completion-guard.ts +190 -190
- package/src/runtime/crash-recovery.ts +181 -0
- package/src/runtime/crew-agent-records.ts +35 -7
- package/src/runtime/crew-agent-runtime.ts +1 -0
- package/src/runtime/custom-tools/irc-tool.ts +201 -0
- package/src/runtime/custom-tools/submit-result-tool.ts +90 -0
- package/src/runtime/delivery-coordinator.ts +3 -1
- package/src/runtime/direct-run.ts +35 -35
- package/src/runtime/effectiveness.ts +81 -76
- package/src/runtime/event-stream-bridge.ts +90 -0
- package/src/runtime/foreground-control.ts +82 -82
- package/src/runtime/green-contract.ts +46 -46
- package/src/runtime/group-join.ts +106 -106
- package/src/runtime/heartbeat-gradient.ts +28 -28
- package/src/runtime/heartbeat-watcher.ts +124 -124
- package/src/runtime/live-agent-control.ts +88 -88
- package/src/runtime/live-agent-manager.ts +78 -2
- package/src/runtime/live-control-realtime.ts +36 -36
- package/src/runtime/live-extension-bridge.ts +150 -0
- package/src/runtime/live-irc.ts +92 -0
- package/src/runtime/live-session-health.ts +100 -0
- package/src/runtime/live-session-runtime.ts +297 -7
- package/src/runtime/mcp-proxy.ts +113 -0
- package/src/runtime/notebook-helpers.ts +90 -0
- package/src/runtime/orphan-sentinel.ts +7 -0
- package/src/runtime/output-validator.ts +187 -0
- package/src/runtime/parallel-research.ts +44 -44
- package/src/runtime/parallel-utils.ts +57 -0
- package/src/runtime/parent-guard.ts +80 -0
- package/src/runtime/pi-json-output.ts +111 -111
- package/src/runtime/policy-engine.ts +79 -79
- package/src/runtime/progress-event-coalescer.ts +43 -43
- package/src/runtime/prose-compressor.ts +164 -0
- package/src/runtime/recovery-recipes.ts +74 -74
- package/src/runtime/result-extractor.ts +121 -0
- package/src/runtime/role-permission.ts +39 -39
- package/src/runtime/runtime-resolver.ts +1 -4
- package/src/runtime/semaphore.ts +131 -0
- package/src/runtime/sensitive-paths.ts +92 -0
- package/src/runtime/session-resources.ts +25 -25
- package/src/runtime/session-snapshot.ts +59 -59
- package/src/runtime/session-usage.ts +79 -79
- package/src/runtime/sidechain-output.ts +29 -29
- package/src/runtime/stream-preview.ts +177 -0
- package/src/runtime/subagent-manager.ts +3 -2
- package/src/runtime/subprocess-tool-registry.ts +67 -0
- package/src/runtime/supervisor-contact.ts +59 -59
- package/src/runtime/task-display.ts +38 -38
- package/src/runtime/task-output-context.ts +59 -9
- package/src/runtime/task-runner/capabilities.ts +78 -78
- package/src/runtime/task-runner/live-executor.ts +2 -0
- package/src/runtime/task-runner/progress.ts +119 -119
- package/src/runtime/task-runner/prompt-builder.ts +70 -8
- package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
- package/src/runtime/task-runner/result-utils.ts +14 -14
- package/src/runtime/task-runner/run-projection.ts +104 -0
- package/src/runtime/task-runner/state-helpers.ts +22 -22
- package/src/runtime/task-runner.ts +75 -4
- package/src/runtime/team-runner.ts +60 -8
- package/src/runtime/worker-heartbeat.ts +21 -21
- package/src/runtime/worker-startup.ts +57 -57
- package/src/runtime/workspace-tree.ts +298 -0
- package/src/runtime/yield-handler.ts +189 -0
- package/src/schema/config-schema.ts +6 -0
- package/src/schema/team-tool-schema.ts +11 -1
- package/src/skills/discover-skills.ts +67 -0
- package/src/state/active-run-registry.ts +4 -2
- package/src/state/artifact-store.ts +4 -1
- package/src/state/atomic-write.ts +50 -1
- package/src/state/blob-store.ts +117 -0
- package/src/state/contracts.ts +1 -0
- package/src/state/event-log-rotation.ts +158 -0
- package/src/state/event-log.ts +52 -2
- package/src/state/mailbox.ts +87 -7
- package/src/state/state-store.ts +24 -4
- package/src/state/task-claims.ts +44 -44
- package/src/state/types.ts +20 -0
- package/src/state/usage.ts +29 -29
- package/src/subagents/async-entry.ts +1 -1
- package/src/subagents/index.ts +3 -3
- package/src/subagents/live/control.ts +1 -1
- package/src/subagents/live/manager.ts +1 -1
- package/src/subagents/live/realtime.ts +1 -1
- package/src/subagents/live/session-runtime.ts +1 -1
- package/src/subagents/manager.ts +1 -1
- package/src/subagents/spawn.ts +1 -1
- package/src/teams/team-serializer.ts +38 -38
- package/src/types/diff.d.ts +18 -18
- package/src/ui/agent-management-overlay.ts +144 -0
- package/src/ui/crew-footer.ts +101 -101
- package/src/ui/crew-select-list.ts +111 -111
- package/src/ui/crew-widget.ts +11 -2
- package/src/ui/dashboard-panes/cancellation-pane.ts +43 -0
- package/src/ui/dashboard-panes/capability-pane.ts +60 -0
- package/src/ui/dashboard-panes/mailbox-pane.ts +35 -11
- package/src/ui/dashboard-panes/metrics-pane.ts +34 -34
- package/src/ui/dynamic-border.ts +25 -25
- package/src/ui/layout-primitives.ts +106 -106
- package/src/ui/live-run-sidebar.ts +4 -0
- package/src/ui/loaders.ts +158 -158
- package/src/ui/powerbar-publisher.ts +77 -15
- package/src/ui/render-coalescer.ts +51 -0
- package/src/ui/render-diff.ts +119 -119
- package/src/ui/render-scheduler.ts +143 -143
- package/src/ui/run-dashboard.ts +4 -0
- package/src/ui/run-event-bus.ts +209 -0
- package/src/ui/run-snapshot-cache.ts +68 -16
- package/src/ui/snapshot-types.ts +8 -0
- package/src/ui/spinner.ts +17 -17
- package/src/ui/status-colors.ts +58 -58
- package/src/ui/syntax-highlight.ts +116 -116
- package/src/ui/transcript-entries.ts +258 -0
- package/src/utils/atomic-write.ts +33 -33
- package/src/utils/completion-dedupe.ts +63 -63
- package/src/utils/frontmatter.ts +68 -68
- package/src/utils/git.ts +262 -262
- package/src/utils/ids.ts +17 -12
- package/src/utils/incremental-reader.ts +104 -0
- package/src/utils/names.ts +27 -27
- package/src/utils/redaction.ts +44 -44
- package/src/utils/safe-paths.ts +47 -47
- package/src/utils/scan-cache.ts +137 -0
- package/src/utils/sleep.ts +32 -32
- package/src/utils/sse-parser.ts +134 -0
- package/src/utils/task-name-generator.ts +337 -0
- package/src/utils/visual.ts +33 -2
- package/src/workflows/validate-workflow.ts +40 -40
- package/src/worktree/branch-freshness.ts +45 -45
- package/src/worktree/cleanup.ts +2 -1
- package/teams/default.team.md +12 -12
- package/teams/fast-fix.team.md +11 -11
- package/teams/implementation.team.md +18 -18
- package/teams/parallel-research.team.md +14 -14
- package/teams/research.team.md +11 -11
- package/teams/review.team.md +12 -12
- package/workflows/default.workflow.md +29 -29
- package/workflows/fast-fix.workflow.md +22 -22
- package/workflows/implementation.workflow.md +38 -38
- package/workflows/parallel-research.workflow.md +46 -46
- package/workflows/research.workflow.md +22 -22
- package/workflows/review.workflow.md +30 -30
|
@@ -1,199 +1,199 @@
|
|
|
1
|
-
# Phase 10: Source Distillation & Development Roadmap
|
|
2
|
-
|
|
3
|
-
> Synthesized from deep-reads of `pi-mono`, `pi-subagents`, and `pi-crew@melihmucuk` reference fork.
|
|
4
|
-
> Date: 2026-05-04
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. Source Insights
|
|
9
|
-
|
|
10
|
-
### 1.1 pi-mono (v0.72.1)
|
|
11
|
-
|
|
12
|
-
| Insight | Impact on pi-crew |
|
|
13
|
-
|---|---|
|
|
14
|
-
| **Compact read rendering** — AGENTS.md, SKILL.md, Pi docs auto-collapsed in TUI | Our agents' prompts that reference these files still work, but users won't see full content inline. Ensure tool-call descriptions are self-contained. |
|
|
15
|
-
| **Session resource cleanup registry** — Providers register cleanup fns; `dispose()` calls all | Our `child-pi.ts` should register cleanup for child processes. Currently we handle SIGINT/beforeExit — align with Pi's new `registerSessionResourceCleanup()`. |
|
|
16
|
-
| **Codex WebSocket SSE fallback** — Transparent fallback on WS failure | No direct impact, but note: child Pi processes may switch transports mid-session. |
|
|
17
|
-
| **Xiaomi per-region token plan providers** | No impact — provider list is internal to Pi. |
|
|
18
|
-
| **Model catalog generator with overrides** | Our `model-fallback.ts` should track new models as Pi adds them. |
|
|
19
|
-
|
|
20
|
-
### 1.2 pi-subagents (v0.24.0)
|
|
21
|
-
|
|
22
|
-
| Insight | Impact on pi-crew |
|
|
23
|
-
|---|---|
|
|
24
|
-
| **Chain directories** — Dedicated `.pi/chains/` and `~/.pi/agent/chains/` | Our workflows are similar but directory-based discovery with `listMarkdownFilesRecursive` is a good pattern. |
|
|
25
|
-
| **Supervisor contact** — Children call `contact_supervisor` | Our mailbox system already serves this purpose, but subagent-initiated communication is one-directional. Consider adding `supervisor_contact` event for child→parent. |
|
|
26
|
-
| **Model thinking levels** — Respect `thinking` from agent frontmatter | We already have `model-fallback.ts` but don't propagate thinking levels to child Pi. |
|
|
27
|
-
| **Session-scoped status** — Filter status by session | Our `run-index.ts` already merges scopes, but individual run status should be session-scoped to avoid cross-contamination. |
|
|
28
|
-
| **Foreground kept alive during intercom** | Our `completion-guard.ts` handles some of this, but the pattern of pausing parent while child waits for supervisor is worth aligning. |
|
|
29
|
-
| **File-only outputs** — Some subagents only write to files | Our `task-output-context.ts` already supports file-only output extraction. Validate compatibility. |
|
|
30
|
-
| **Packaged recursive agents** — Agents can spawn sub-agents | Our task-runner already supports this via child Pi, but we should document the recursive depth guard. |
|
|
31
|
-
| **UI simplification** — Removed overlays, consolidated to tool actions | Our dashboard is more advanced but we should ensure TUI simplicity is preserved. |
|
|
32
|
-
|
|
33
|
-
### 1.3 pi-crew reference fork (melihmucuk v1.0.14)
|
|
34
|
-
|
|
35
|
-
| Insight | Impact on pi-crew |
|
|
36
|
-
|---|---|
|
|
37
|
-
| **CrewRuntime singleton** — Process-level, survives session replacement | Our `crew-agent-runtime.ts` is similar but not a true singleton. Consider hardening. |
|
|
38
|
-
| **DeliveryCoordinator** — Routes results to owner session, queues when inactive | We lack this pattern. Our result delivery goes through artifacts + notification, but not session-aware routing. |
|
|
39
|
-
| **Ownership model** — `abortOwned()` returns `{ abortedIds, missingIds, foreignIds }` | Our `cancel.ts` returns `results[]` but doesn't distinguish foreign IDs. Adopt. |
|
|
40
|
-
| **Interactive subagents** — `interactive: true` → `waiting` state, `crew_respond`/`crew_done` | We don't have this. Our agents run to completion. Interactive subagents would enable oracle/planner patterns. |
|
|
41
|
-
| **Overflow recovery** — Detect context overflow → compaction → auto_retry → recovered, with 120s timeout | We have no overflow recovery. Child Pi processes that hit context limits silently fail. |
|
|
42
|
-
| **3-tier agent discovery with JSON overrides** | Our discovery uses teams/agents/workflows with schema validation. JSON overrides for model/thinking/tools are worth adding. |
|
|
43
|
-
| **BootstrapSession** — Excludes own extension, uses `SessionManager.create().newSession()` | Our `child-pi.ts` uses `--extension` flags. Align with Pi 0.65+ `session_start` API. |
|
|
44
|
-
| **Bundled subagents inherit parent model** | Our `model-fallback.ts` resolves model chain differently. Consider simplifying. |
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## 2. Distilled Development Axes
|
|
49
|
-
|
|
50
|
-
### Axis A: Runtime Hardening (Critical)
|
|
51
|
-
|
|
52
|
-
**A1. Session-aware result delivery**
|
|
53
|
-
- Current: Results go to artifacts + notification router
|
|
54
|
-
- Target: Add `DeliveryCoordinator` pattern that routes results to the **owner session** specifically, queues when inactive, flushes on `session_start`
|
|
55
|
-
- Why: Prevents result loss when a session is replaced/reloaded; matches Pi's lifecycle
|
|
56
|
-
|
|
57
|
-
**A2. Overflow recovery for child processes**
|
|
58
|
-
- Current: Child Pi hitting context limits fails silently or with generic errors
|
|
59
|
-
- Target: Detect `agent_end` → `compaction_start/end` → `auto_retry_start/end` event sequence; mark task as `"overflow_recovering"` → `"recovered"` or `"failed"`
|
|
60
|
-
- Why: Long tasks with large context currently fail unrecoverably
|
|
61
|
-
|
|
62
|
-
**A3. Interactive subagent protocol**
|
|
63
|
-
- Current: All agents run to completion; no mid-run interaction
|
|
64
|
-
- Target: `interactive: true` in agent frontmatter → agent pauses after response, enters `waiting` state; parent sends `crew_respond` to continue, `crew_done` to finalize
|
|
65
|
-
- Why: Enables oracle (decision evaluation), planner (multi-turn refinement), and any agent that needs human/team guidance mid-task
|
|
66
|
-
|
|
67
|
-
**A4. Session resource cleanup alignment**
|
|
68
|
-
- Current: SIGINT + beforeExit handlers
|
|
69
|
-
- Target: Register cleanup via Pi's `registerSessionResourceCleanup()` when available; fall back to current handlers
|
|
70
|
-
- Why: Aligns with Pi's new lifecycle; prevents orphan processes on session reload
|
|
71
|
-
|
|
72
|
-
### Axis B: Discovery & Configuration (High)
|
|
73
|
-
|
|
74
|
-
**B1. JSON config overrides for agents/teams**
|
|
75
|
-
- Current: Agent frontmatter is the sole source of truth
|
|
76
|
-
- Target: `~/.pi/agent/pi-crew.json` (global) and `.pi/pi-crew.json` (project) can override `model`, `thinking`, `tools`, `skills` for any agent
|
|
77
|
-
- Why: Per-project model tuning without editing bundled agents; environment-specific tool access
|
|
78
|
-
|
|
79
|
-
**B2. Thinking level propagation**
|
|
80
|
-
- Current: Agent frontmatter has `model` but no `thinking` field
|
|
81
|
-
- Target: Add `thinking` to agent schema; propagate to child Pi via `--thinking` flag or session params
|
|
82
|
-
- Why: Aligns with Pi's thinking levels; cost control for expensive models
|
|
83
|
-
|
|
84
|
-
**B3. Parent model inheritance for bundled agents**
|
|
85
|
-
- Current: `model-fallback.ts` has a complex chain with config fallbacks
|
|
86
|
-
- Target: Simplify: agent frontmatter model → parent session model → config default
|
|
87
|
-
- Why: Reduces configuration burden; bundled agents work with whatever model the parent uses
|
|
88
|
-
|
|
89
|
-
### Axis C: Ownership & Safety (High)
|
|
90
|
-
|
|
91
|
-
**C1. Foreign-aware ownership model**
|
|
92
|
-
- Current: `cancel.ts` returns flat results array
|
|
93
|
-
- Target: `cancelOwned(runId, taskIds)` returns `{ abortedIds, missingIds, foreignIds }`; tool responses clearly distinguish "you can't abort foreign tasks"
|
|
94
|
-
- Why: Prevents confusion in multi-session scenarios; security improvement
|
|
95
|
-
|
|
96
|
-
**C2. Supervisor contact event (child→parent)**
|
|
97
|
-
- Current: Mailbox is parent→child only; child can write artifacts
|
|
98
|
-
- Target: Add `supervisor_contact` event type where child signals "I need a decision" with structured data; parent can respond via mailbox or `steer_subagent`
|
|
99
|
-
- Why: Enables interactive subagent protocol (A3); currently children are fire-and-forget
|
|
100
|
-
|
|
101
|
-
**C3. Session-scoped status filtering**
|
|
102
|
-
- Current: `run-index.ts` merges project + user scope runs
|
|
103
|
-
- Target: Default status/inspect to session-scoped; cross-scope access only via explicit `scope:` parameter
|
|
104
|
-
- Why: Prevents accidental cross-contamination; matches pi-subagents' session scoping
|
|
105
|
-
|
|
106
|
-
### Axis D: Compatibility & Polish (Medium)
|
|
107
|
-
|
|
108
|
-
**D1. Compact read rendering awareness**
|
|
109
|
-
- Current: Agent prompts reference AGENTS.md, SKILL.md, etc.
|
|
110
|
-
- Target: Ensure agent prompts are self-contained enough that collapsed reads don't lose critical instructions; add fallback descriptions in team/workflow frontmatter
|
|
111
|
-
- Why: Pi v0.72+ collapses these files in TUI; agents still receive full content via tool calls
|
|
112
|
-
|
|
113
|
-
**D2. Pi 0.65+ API alignment**
|
|
114
|
-
- Current: `child-pi.ts` uses CLI flags (`--model`, `--extension`, etc.)
|
|
115
|
-
- Target: When Pi SDK exposes `SessionManager.create()` + `session_start` event in extension API, migrate child session creation to programmatic API
|
|
116
|
-
- Why: More reliable than CLI flag parsing; better lifecycle control; Pi is moving toward SDK-first
|
|
117
|
-
|
|
118
|
-
**D3. UI simplification**
|
|
119
|
-
- Current: Full dashboard with 6 panes
|
|
120
|
-
- Target: Ensure each pane works as a standalone tool action; no pane depends on another's state. Consider adding compact/expanded modes.
|
|
121
|
-
- Why: pi-subagents removed overlays entirely; our dashboard should be usable without full TUI
|
|
122
|
-
|
|
123
|
-
### Axis E: Observability Gaps (Medium)
|
|
124
|
-
|
|
125
|
-
**E1. Overflow recovery metrics**
|
|
126
|
-
- Add `tasks_overflow_recovering` and `tasks_overflow_recovered` counters to MetricRegistry
|
|
127
|
-
|
|
128
|
-
**E2. Interactive subagent state tracking**
|
|
129
|
-
- Add `tasks_waiting` state to heartbeat/watcher; track wait duration
|
|
130
|
-
|
|
131
|
-
**E3. Foreign ownership audit logging**
|
|
132
|
-
- Log foreign access attempts with session ID; detect potential conflicts
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## 3. Priority Matrix
|
|
137
|
-
|
|
138
|
-
| Priority | Item | Axis | Effort | Impact |
|
|
139
|
-
|---|---|---|---|---|
|
|
140
|
-
| 🔴 P0 | A1: Session-aware result delivery | A | M | High — prevents result loss |
|
|
141
|
-
| 🔴 P0 | A2: Overflow recovery for child processes | A | M | High — long tasks currently fail silently |
|
|
142
|
-
| 🟡 P1 | C1: Foreign-aware ownership model | C | S | High — security + UX |
|
|
143
|
-
| 🟡 P1 | A4: Session resource cleanup alignment | A | S | Medium — aligns with Pi lifecycle |
|
|
144
|
-
| 🟡 P1 | B1: JSON config overrides | B | M | Medium — per-project customization |
|
|
145
|
-
| 🟡 P1 | B2: Thinking level propagation | B | S | Medium — cost control |
|
|
146
|
-
| 🟡 P1 | D1: Compact read rendering awareness | D | S | Medium — compatibility |
|
|
147
|
-
| 🟢 P2 | A3: Interactive subagent protocol | A | L | High — enables oracle/planner |
|
|
148
|
-
| 🟢 P2 | B3: Parent model inheritance | B | S | Low — simplification |
|
|
149
|
-
| 🟢 P2 | C2: Supervisor contact event | C | M | Medium — depends on A3 |
|
|
150
|
-
| 🟢 P2 | C3: Session-scoped status | C | S | Low — UX improvement |
|
|
151
|
-
| 🟢 P2 | D2: Pi 0.65+ API alignment | D | L | Low — future-proofing |
|
|
152
|
-
| 🟢 P2 | D3: UI simplification | D | M | Low — nice to have |
|
|
153
|
-
| 🔵 P3 | E1-E3: Observability gaps | E | S | Low — monitoring |
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## 4. Implementation Order (Proposed)
|
|
158
|
-
|
|
159
|
-
### Phase 10a: Runtime Hardening (P0 + P1)
|
|
160
|
-
1. **A1: DeliveryCoordinator** — session-aware result routing
|
|
161
|
-
2. **A2: OverflowRecoveryTracker** — detect context overflow → compaction → retry
|
|
162
|
-
3. **C1: Foreign-aware ownership** — `abortOwned()` with foreign detection
|
|
163
|
-
4. **A4: Session resource cleanup** — `registerSessionResourceCleanup()` adapter
|
|
164
|
-
|
|
165
|
-
### Phase 10b: Discovery & Configuration (P1)
|
|
166
|
-
5. **B1: JSON config overrides** — `.pi/pi-crew.json` per-project settings
|
|
167
|
-
6. **B2: Thinking level propagation** — `thinking` frontmatter field
|
|
168
|
-
7. **D1: Compact read awareness** — self-contained agent prompts
|
|
169
|
-
|
|
170
|
-
### Phase 10c: Interactive Protocol (P2)
|
|
171
|
-
8. **A3: Interactive subagent** — `waiting` state + `crew_respond`/`crew_done` pattern
|
|
172
|
-
9. **C2: Supervisor contact event** — child→parent communication channel
|
|
173
|
-
10. **B3: Parent model inheritance** — simplified resolve chain
|
|
174
|
-
|
|
175
|
-
### Phase 10d: Polish & Compatibility (P2-P3)
|
|
176
|
-
11. **C3: Session-scoped status** — default filter to session
|
|
177
|
-
12. **D3: UI compact/expanded modes** — standalone pane usability
|
|
178
|
-
13. **E1-E3: Observability gaps** — overflow, waiting, foreign metrics
|
|
179
|
-
14. **D2: Pi 0.65+ API alignment** — programmatic session creation (when SDK available)
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## 5. Key Code References
|
|
184
|
-
|
|
185
|
-
| Pattern | Source File | Lines |
|
|
186
|
-
|---|---|---|
|
|
187
|
-
| Compact read rendering | `pi-mono/packages/coding-agent/src/core/tools/read.ts` | `CompactReadClassification`, `formatCompactReadCall()` |
|
|
188
|
-
| Session resource cleanup | `pi-mono/packages/ai/src/session-resources.ts` | `registerSessionResourceCleanup()`, `cleanupSessionResources()` |
|
|
189
|
-
| Codex WS SSE fallback | `pi-mono/packages/ai/src/providers/openai-codex-responses.ts` | `isWebSocketSseFallbackActive()` |
|
|
190
|
-
| Chain directories | `pi-subagents/src/agents/agents.ts` | `getUserChainDir()`, `resolveNearestProjectChainDirs()` |
|
|
191
|
-
| Supervisor contact | `pi-subagents/src/runs/shared/supervisor-contact.ts` | `contact_supervisor` event |
|
|
192
|
-
| Thinking levels | `pi-subagents/src/agents/agents.ts` | frontmatter `thinking` field |
|
|
193
|
-
| Session scoping | `pi-subagents/src/runs/foreground/foreground-run-queue.ts` | session-scoped filtering |
|
|
194
|
-
| CrewRuntime singleton | `pi-crew-ref/extension/runtime/crew-runtime.ts` | Process-level singleton |
|
|
195
|
-
| DeliveryCoordinator | `pi-crew-ref/extension/runtime/delivery-coordinator.ts` | Owner-session routing |
|
|
196
|
-
| Ownership model | `pi-crew-ref/extension/integration/tools/crew-abort.ts` | `abortOwned()` |
|
|
197
|
-
| Interactive subagent | `pi-crew-ref/extension/runtime/subagent-state.ts` | `waiting` state |
|
|
198
|
-
| Overflow recovery | `pi-crew-ref/extension/runtime/overflow-recovery.ts` | `OverflowRecoveryTracker` |
|
|
1
|
+
# Phase 10: Source Distillation & Development Roadmap
|
|
2
|
+
|
|
3
|
+
> Synthesized from deep-reads of `pi-mono`, `pi-subagents`, and `pi-crew@melihmucuk` reference fork.
|
|
4
|
+
> Date: 2026-05-04
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Source Insights
|
|
9
|
+
|
|
10
|
+
### 1.1 pi-mono (v0.72.1)
|
|
11
|
+
|
|
12
|
+
| Insight | Impact on pi-crew |
|
|
13
|
+
|---|---|
|
|
14
|
+
| **Compact read rendering** — AGENTS.md, SKILL.md, Pi docs auto-collapsed in TUI | Our agents' prompts that reference these files still work, but users won't see full content inline. Ensure tool-call descriptions are self-contained. |
|
|
15
|
+
| **Session resource cleanup registry** — Providers register cleanup fns; `dispose()` calls all | Our `child-pi.ts` should register cleanup for child processes. Currently we handle SIGINT/beforeExit — align with Pi's new `registerSessionResourceCleanup()`. |
|
|
16
|
+
| **Codex WebSocket SSE fallback** — Transparent fallback on WS failure | No direct impact, but note: child Pi processes may switch transports mid-session. |
|
|
17
|
+
| **Xiaomi per-region token plan providers** | No impact — provider list is internal to Pi. |
|
|
18
|
+
| **Model catalog generator with overrides** | Our `model-fallback.ts` should track new models as Pi adds them. |
|
|
19
|
+
|
|
20
|
+
### 1.2 pi-subagents (v0.24.0)
|
|
21
|
+
|
|
22
|
+
| Insight | Impact on pi-crew |
|
|
23
|
+
|---|---|
|
|
24
|
+
| **Chain directories** — Dedicated `.pi/chains/` and `~/.pi/agent/chains/` | Our workflows are similar but directory-based discovery with `listMarkdownFilesRecursive` is a good pattern. |
|
|
25
|
+
| **Supervisor contact** — Children call `contact_supervisor` | Our mailbox system already serves this purpose, but subagent-initiated communication is one-directional. Consider adding `supervisor_contact` event for child→parent. |
|
|
26
|
+
| **Model thinking levels** — Respect `thinking` from agent frontmatter | We already have `model-fallback.ts` but don't propagate thinking levels to child Pi. |
|
|
27
|
+
| **Session-scoped status** — Filter status by session | Our `run-index.ts` already merges scopes, but individual run status should be session-scoped to avoid cross-contamination. |
|
|
28
|
+
| **Foreground kept alive during intercom** | Our `completion-guard.ts` handles some of this, but the pattern of pausing parent while child waits for supervisor is worth aligning. |
|
|
29
|
+
| **File-only outputs** — Some subagents only write to files | Our `task-output-context.ts` already supports file-only output extraction. Validate compatibility. |
|
|
30
|
+
| **Packaged recursive agents** — Agents can spawn sub-agents | Our task-runner already supports this via child Pi, but we should document the recursive depth guard. |
|
|
31
|
+
| **UI simplification** — Removed overlays, consolidated to tool actions | Our dashboard is more advanced but we should ensure TUI simplicity is preserved. |
|
|
32
|
+
|
|
33
|
+
### 1.3 pi-crew reference fork (melihmucuk v1.0.14)
|
|
34
|
+
|
|
35
|
+
| Insight | Impact on pi-crew |
|
|
36
|
+
|---|---|
|
|
37
|
+
| **CrewRuntime singleton** — Process-level, survives session replacement | Our `crew-agent-runtime.ts` is similar but not a true singleton. Consider hardening. |
|
|
38
|
+
| **DeliveryCoordinator** — Routes results to owner session, queues when inactive | We lack this pattern. Our result delivery goes through artifacts + notification, but not session-aware routing. |
|
|
39
|
+
| **Ownership model** — `abortOwned()` returns `{ abortedIds, missingIds, foreignIds }` | Our `cancel.ts` returns `results[]` but doesn't distinguish foreign IDs. Adopt. |
|
|
40
|
+
| **Interactive subagents** — `interactive: true` → `waiting` state, `crew_respond`/`crew_done` | We don't have this. Our agents run to completion. Interactive subagents would enable oracle/planner patterns. |
|
|
41
|
+
| **Overflow recovery** — Detect context overflow → compaction → auto_retry → recovered, with 120s timeout | We have no overflow recovery. Child Pi processes that hit context limits silently fail. |
|
|
42
|
+
| **3-tier agent discovery with JSON overrides** | Our discovery uses teams/agents/workflows with schema validation. JSON overrides for model/thinking/tools are worth adding. |
|
|
43
|
+
| **BootstrapSession** — Excludes own extension, uses `SessionManager.create().newSession()` | Our `child-pi.ts` uses `--extension` flags. Align with Pi 0.65+ `session_start` API. |
|
|
44
|
+
| **Bundled subagents inherit parent model** | Our `model-fallback.ts` resolves model chain differently. Consider simplifying. |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 2. Distilled Development Axes
|
|
49
|
+
|
|
50
|
+
### Axis A: Runtime Hardening (Critical)
|
|
51
|
+
|
|
52
|
+
**A1. Session-aware result delivery**
|
|
53
|
+
- Current: Results go to artifacts + notification router
|
|
54
|
+
- Target: Add `DeliveryCoordinator` pattern that routes results to the **owner session** specifically, queues when inactive, flushes on `session_start`
|
|
55
|
+
- Why: Prevents result loss when a session is replaced/reloaded; matches Pi's lifecycle
|
|
56
|
+
|
|
57
|
+
**A2. Overflow recovery for child processes**
|
|
58
|
+
- Current: Child Pi hitting context limits fails silently or with generic errors
|
|
59
|
+
- Target: Detect `agent_end` → `compaction_start/end` → `auto_retry_start/end` event sequence; mark task as `"overflow_recovering"` → `"recovered"` or `"failed"`
|
|
60
|
+
- Why: Long tasks with large context currently fail unrecoverably
|
|
61
|
+
|
|
62
|
+
**A3. Interactive subagent protocol**
|
|
63
|
+
- Current: All agents run to completion; no mid-run interaction
|
|
64
|
+
- Target: `interactive: true` in agent frontmatter → agent pauses after response, enters `waiting` state; parent sends `crew_respond` to continue, `crew_done` to finalize
|
|
65
|
+
- Why: Enables oracle (decision evaluation), planner (multi-turn refinement), and any agent that needs human/team guidance mid-task
|
|
66
|
+
|
|
67
|
+
**A4. Session resource cleanup alignment**
|
|
68
|
+
- Current: SIGINT + beforeExit handlers
|
|
69
|
+
- Target: Register cleanup via Pi's `registerSessionResourceCleanup()` when available; fall back to current handlers
|
|
70
|
+
- Why: Aligns with Pi's new lifecycle; prevents orphan processes on session reload
|
|
71
|
+
|
|
72
|
+
### Axis B: Discovery & Configuration (High)
|
|
73
|
+
|
|
74
|
+
**B1. JSON config overrides for agents/teams**
|
|
75
|
+
- Current: Agent frontmatter is the sole source of truth
|
|
76
|
+
- Target: `~/.pi/agent/pi-crew.json` (global) and `.pi/pi-crew.json` (project) can override `model`, `thinking`, `tools`, `skills` for any agent
|
|
77
|
+
- Why: Per-project model tuning without editing bundled agents; environment-specific tool access
|
|
78
|
+
|
|
79
|
+
**B2. Thinking level propagation**
|
|
80
|
+
- Current: Agent frontmatter has `model` but no `thinking` field
|
|
81
|
+
- Target: Add `thinking` to agent schema; propagate to child Pi via `--thinking` flag or session params
|
|
82
|
+
- Why: Aligns with Pi's thinking levels; cost control for expensive models
|
|
83
|
+
|
|
84
|
+
**B3. Parent model inheritance for bundled agents**
|
|
85
|
+
- Current: `model-fallback.ts` has a complex chain with config fallbacks
|
|
86
|
+
- Target: Simplify: agent frontmatter model → parent session model → config default
|
|
87
|
+
- Why: Reduces configuration burden; bundled agents work with whatever model the parent uses
|
|
88
|
+
|
|
89
|
+
### Axis C: Ownership & Safety (High)
|
|
90
|
+
|
|
91
|
+
**C1. Foreign-aware ownership model**
|
|
92
|
+
- Current: `cancel.ts` returns flat results array
|
|
93
|
+
- Target: `cancelOwned(runId, taskIds)` returns `{ abortedIds, missingIds, foreignIds }`; tool responses clearly distinguish "you can't abort foreign tasks"
|
|
94
|
+
- Why: Prevents confusion in multi-session scenarios; security improvement
|
|
95
|
+
|
|
96
|
+
**C2. Supervisor contact event (child→parent)**
|
|
97
|
+
- Current: Mailbox is parent→child only; child can write artifacts
|
|
98
|
+
- Target: Add `supervisor_contact` event type where child signals "I need a decision" with structured data; parent can respond via mailbox or `steer_subagent`
|
|
99
|
+
- Why: Enables interactive subagent protocol (A3); currently children are fire-and-forget
|
|
100
|
+
|
|
101
|
+
**C3. Session-scoped status filtering**
|
|
102
|
+
- Current: `run-index.ts` merges project + user scope runs
|
|
103
|
+
- Target: Default status/inspect to session-scoped; cross-scope access only via explicit `scope:` parameter
|
|
104
|
+
- Why: Prevents accidental cross-contamination; matches pi-subagents' session scoping
|
|
105
|
+
|
|
106
|
+
### Axis D: Compatibility & Polish (Medium)
|
|
107
|
+
|
|
108
|
+
**D1. Compact read rendering awareness**
|
|
109
|
+
- Current: Agent prompts reference AGENTS.md, SKILL.md, etc.
|
|
110
|
+
- Target: Ensure agent prompts are self-contained enough that collapsed reads don't lose critical instructions; add fallback descriptions in team/workflow frontmatter
|
|
111
|
+
- Why: Pi v0.72+ collapses these files in TUI; agents still receive full content via tool calls
|
|
112
|
+
|
|
113
|
+
**D2. Pi 0.65+ API alignment**
|
|
114
|
+
- Current: `child-pi.ts` uses CLI flags (`--model`, `--extension`, etc.)
|
|
115
|
+
- Target: When Pi SDK exposes `SessionManager.create()` + `session_start` event in extension API, migrate child session creation to programmatic API
|
|
116
|
+
- Why: More reliable than CLI flag parsing; better lifecycle control; Pi is moving toward SDK-first
|
|
117
|
+
|
|
118
|
+
**D3. UI simplification**
|
|
119
|
+
- Current: Full dashboard with 6 panes
|
|
120
|
+
- Target: Ensure each pane works as a standalone tool action; no pane depends on another's state. Consider adding compact/expanded modes.
|
|
121
|
+
- Why: pi-subagents removed overlays entirely; our dashboard should be usable without full TUI
|
|
122
|
+
|
|
123
|
+
### Axis E: Observability Gaps (Medium)
|
|
124
|
+
|
|
125
|
+
**E1. Overflow recovery metrics**
|
|
126
|
+
- Add `tasks_overflow_recovering` and `tasks_overflow_recovered` counters to MetricRegistry
|
|
127
|
+
|
|
128
|
+
**E2. Interactive subagent state tracking**
|
|
129
|
+
- Add `tasks_waiting` state to heartbeat/watcher; track wait duration
|
|
130
|
+
|
|
131
|
+
**E3. Foreign ownership audit logging**
|
|
132
|
+
- Log foreign access attempts with session ID; detect potential conflicts
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 3. Priority Matrix
|
|
137
|
+
|
|
138
|
+
| Priority | Item | Axis | Effort | Impact |
|
|
139
|
+
|---|---|---|---|---|
|
|
140
|
+
| 🔴 P0 | A1: Session-aware result delivery | A | M | High — prevents result loss |
|
|
141
|
+
| 🔴 P0 | A2: Overflow recovery for child processes | A | M | High — long tasks currently fail silently |
|
|
142
|
+
| 🟡 P1 | C1: Foreign-aware ownership model | C | S | High — security + UX |
|
|
143
|
+
| 🟡 P1 | A4: Session resource cleanup alignment | A | S | Medium — aligns with Pi lifecycle |
|
|
144
|
+
| 🟡 P1 | B1: JSON config overrides | B | M | Medium — per-project customization |
|
|
145
|
+
| 🟡 P1 | B2: Thinking level propagation | B | S | Medium — cost control |
|
|
146
|
+
| 🟡 P1 | D1: Compact read rendering awareness | D | S | Medium — compatibility |
|
|
147
|
+
| 🟢 P2 | A3: Interactive subagent protocol | A | L | High — enables oracle/planner |
|
|
148
|
+
| 🟢 P2 | B3: Parent model inheritance | B | S | Low — simplification |
|
|
149
|
+
| 🟢 P2 | C2: Supervisor contact event | C | M | Medium — depends on A3 |
|
|
150
|
+
| 🟢 P2 | C3: Session-scoped status | C | S | Low — UX improvement |
|
|
151
|
+
| 🟢 P2 | D2: Pi 0.65+ API alignment | D | L | Low — future-proofing |
|
|
152
|
+
| 🟢 P2 | D3: UI simplification | D | M | Low — nice to have |
|
|
153
|
+
| 🔵 P3 | E1-E3: Observability gaps | E | S | Low — monitoring |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 4. Implementation Order (Proposed)
|
|
158
|
+
|
|
159
|
+
### Phase 10a: Runtime Hardening (P0 + P1)
|
|
160
|
+
1. **A1: DeliveryCoordinator** — session-aware result routing
|
|
161
|
+
2. **A2: OverflowRecoveryTracker** — detect context overflow → compaction → retry
|
|
162
|
+
3. **C1: Foreign-aware ownership** — `abortOwned()` with foreign detection
|
|
163
|
+
4. **A4: Session resource cleanup** — `registerSessionResourceCleanup()` adapter
|
|
164
|
+
|
|
165
|
+
### Phase 10b: Discovery & Configuration (P1)
|
|
166
|
+
5. **B1: JSON config overrides** — `.pi/pi-crew.json` per-project settings
|
|
167
|
+
6. **B2: Thinking level propagation** — `thinking` frontmatter field
|
|
168
|
+
7. **D1: Compact read awareness** — self-contained agent prompts
|
|
169
|
+
|
|
170
|
+
### Phase 10c: Interactive Protocol (P2)
|
|
171
|
+
8. **A3: Interactive subagent** — `waiting` state + `crew_respond`/`crew_done` pattern
|
|
172
|
+
9. **C2: Supervisor contact event** — child→parent communication channel
|
|
173
|
+
10. **B3: Parent model inheritance** — simplified resolve chain
|
|
174
|
+
|
|
175
|
+
### Phase 10d: Polish & Compatibility (P2-P3)
|
|
176
|
+
11. **C3: Session-scoped status** — default filter to session
|
|
177
|
+
12. **D3: UI compact/expanded modes** — standalone pane usability
|
|
178
|
+
13. **E1-E3: Observability gaps** — overflow, waiting, foreign metrics
|
|
179
|
+
14. **D2: Pi 0.65+ API alignment** — programmatic session creation (when SDK available)
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 5. Key Code References
|
|
184
|
+
|
|
185
|
+
| Pattern | Source File | Lines |
|
|
186
|
+
|---|---|---|
|
|
187
|
+
| Compact read rendering | `pi-mono/packages/coding-agent/src/core/tools/read.ts` | `CompactReadClassification`, `formatCompactReadCall()` |
|
|
188
|
+
| Session resource cleanup | `pi-mono/packages/ai/src/session-resources.ts` | `registerSessionResourceCleanup()`, `cleanupSessionResources()` |
|
|
189
|
+
| Codex WS SSE fallback | `pi-mono/packages/ai/src/providers/openai-codex-responses.ts` | `isWebSocketSseFallbackActive()` |
|
|
190
|
+
| Chain directories | `pi-subagents/src/agents/agents.ts` | `getUserChainDir()`, `resolveNearestProjectChainDirs()` |
|
|
191
|
+
| Supervisor contact | `pi-subagents/src/runs/shared/supervisor-contact.ts` | `contact_supervisor` event |
|
|
192
|
+
| Thinking levels | `pi-subagents/src/agents/agents.ts` | frontmatter `thinking` field |
|
|
193
|
+
| Session scoping | `pi-subagents/src/runs/foreground/foreground-run-queue.ts` | session-scoped filtering |
|
|
194
|
+
| CrewRuntime singleton | `pi-crew-ref/extension/runtime/crew-runtime.ts` | Process-level singleton |
|
|
195
|
+
| DeliveryCoordinator | `pi-crew-ref/extension/runtime/delivery-coordinator.ts` | Owner-session routing |
|
|
196
|
+
| Ownership model | `pi-crew-ref/extension/integration/tools/crew-abort.ts` | `abortOwned()` |
|
|
197
|
+
| Interactive subagent | `pi-crew-ref/extension/runtime/subagent-state.ts` | `waiting` state |
|
|
198
|
+
| Overflow recovery | `pi-crew-ref/extension/runtime/overflow-recovery.ts` | `OverflowRecoveryTracker` |
|
|
199
199
|
| Bootstrap session | `pi-crew-ref/extension/bootstrap-session.ts` | Extension exclusion, parent model |
|