pi-crew 0.9.50 → 0.9.52
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 +150 -0
- package/README.md +216 -20
- package/dist/build-meta.json +2222 -1761
- package/dist/index.mjs +18636 -17603
- package/docs/actions-reference.md +431 -1
- package/package.json +19 -9
- package/schema.json +41 -0
- package/scripts/check-bundle-size.mjs +38 -0
- package/scripts/test-runner.mjs +11 -1
- package/skills/distill-software/SKILL.md +24 -1
- package/dist/index.mjs.map +0 -7
- package/docs/FEATURE_INTAKE.md +0 -126
- package/docs/HARNESS.md +0 -87
- package/docs/HARNESS_BACKLOG.md +0 -89
- package/docs/PROJECT_REVIEW.md +0 -270
- package/docs/PROJECT_REVIEW_FIXES.md +0 -342
- package/docs/PROJECT_REVIEW_ROUND4.md +0 -156
- package/docs/PROJECT_REVIEW_ROUND5.md +0 -86
- package/docs/REVIEW-FINDINGS-2026-06 +0 -357
- package/docs/REVIEW-FINDINGS-2026-07-CORE.md +0 -139
- package/docs/REVIEW-FINDINGS-2026-07.md +0 -125
- package/docs/TEST_MATRIX.md +0 -51
- package/docs/archive/README.md +0 -91
- package/docs/archive/followup-review-round3-2026-05-12.md +0 -342
- package/docs/archive/followup-review-round4-2026-05-13.md +0 -107
- package/docs/archive/pi-crew-bugs.md +0 -961
- package/docs/archive/pi-crew-test-final.md +0 -120
- package/docs/archive/pi-crew-test-results.md +0 -260
- package/docs/archive/pi-crew-test-round2.md +0 -136
- package/docs/archive/pi-crew-test-round4.md +0 -100
- package/docs/archive/pi-crew-test-round5.md +0 -70
- package/docs/archive/pi-crew-test-round6.md +0 -110
- package/docs/archive/pi-crew-v0.5.10-audit-fix-plan.md +0 -60
- package/docs/archive/pi-crew-v0.5.11-audit-fix-plan.md +0 -92
- package/docs/archive/pi-crew-v0.5.12-audit-fix-plan.md +0 -76
- package/docs/archive/pi-crew-v0.5.13-audit-fix-plan.md +0 -75
- package/docs/archive/pi-crew-v0.5.14-audit-fix-plan.md +0 -75
- package/docs/archive/pi-crew-v0.5.16-audit-fix-plan.md +0 -35
- package/docs/archive/pi-crew-v0.5.17-audit-fix-plan.md +0 -80
- package/docs/archive/pi-crew-v0.5.5-audit-fix-plan.md +0 -133
- package/docs/archive/pi-crew-v0.5.9-audit-fix-plan.md +0 -88
- package/docs/archive/pi-mono-opportunities.md +0 -969
- package/docs/archive/pi-mono-review.md +0 -291
- package/docs/archive/pi-subagent4-comparison.md +0 -261
- package/docs/archive/pi-subagents3-deep-analysis.md +0 -508
- package/docs/bugs/bug-021-notification-badge-counter-misleading.md +0 -293
- package/docs/bugs/bug-023-chain-windows-path-resolution.md +0 -106
- package/docs/bugs/bug-quota-display-truncation.md +0 -223
- package/docs/bugs/cross-session-notification-leakage.md +0 -82
- package/docs/code-review-2026-05-11.md +0 -592
- package/docs/coding-agent-optimization.md +0 -268
- package/docs/comparison-pi-subagents-vs-pi-crew.md +0 -303
- package/docs/decisions/0001-durable-state.md +0 -41
- package/docs/decisions/0002-child-process-for-async.md +0 -42
- package/docs/decisions/0003-depth-guard.md +0 -36
- package/docs/decisions/0004-execfile-over-exec.md +0 -34
- package/docs/decisions/0005-no-parameter-properties.md +0 -49
- package/docs/decisions/0006-publish-bundled-esm.md +0 -63
- package/docs/decisions/0007-active-run-binary-index.md +0 -54
- package/docs/decisions/0008-child-pi-warm-pool.md +0 -61
- package/docs/decisions/2026-07-21-broker-phase4-default-on.md +0 -77
- package/docs/decisions/2026-07-21-broker-windows-perms.md +0 -91
- package/docs/decisions/2026-07-22-broker-phase4-gated-on.md +0 -99
- package/docs/decisions/2026-07-24-oidc-trusted-publishing.md +0 -112
- package/docs/decisions/README.md +0 -26
- package/docs/deep-review-report.md +0 -384
- package/docs/distillation/cybersecurity-patterns.md +0 -294
- package/docs/feature-analysis-subagent4.md +0 -305
- package/docs/fix-plan-disabletools-exit-null.md +0 -219
- package/docs/fixes/BATCH_A_H1_H2.md +0 -86
- package/docs/fixes/bug-006-foreground-cancel-concurrent.md +0 -78
- package/docs/fixes/bug-007-async-notifier-stale-ctx.md +0 -112
- package/docs/fixes/bug-008-child-process-silent-timeout.md +0 -100
- package/docs/fixes/bug-009-executor-yield-limit-needs-attention.md +0 -75
- package/docs/fixes/bug-010-child-process-api-key-filtered.md +0 -109
- package/docs/fixes/bug-011-spawn-pi-enoent.md +0 -92
- package/docs/fixes/bug-012-essential-env-stripped.md +0 -89
- package/docs/fixes/bug-013-background-runner-death.md +0 -84
- package/docs/fixes/bug-014-infinite-retry-loop-needs-attention.md +0 -82
- package/docs/fixes/bug-015-background-runner-sigterm.md +0 -65
- package/docs/fixes/bug-017-background-runner-session-shutdown.md +0 -66
- package/docs/fixes/bug-017-background-runner-sigkill-double-fork.md +0 -28
- package/docs/fixes/bug-018-child-pi-worker-stdin-hang.md +0 -61
- package/docs/fixes/bug-019-phantom-runs-temp-workspace.md +0 -52
- package/docs/fixes/bug-020-infinite-retry-loop-needs-attention.md +0 -47
- package/docs/fixes/v0.9.10/locks-fix-verify.md +0 -3
- package/docs/fixes/v0.9.10/smoke-test.md +0 -12
- package/docs/followup-plan-2026-05-12.md +0 -463
- package/docs/followup-review-2026-05-12.md +0 -297
- package/docs/goals.md +0 -59
- package/docs/implementation-plan-top3.md +0 -333
- package/docs/issue-29-analysis.md +0 -189
- package/docs/live-mailbox-runtime.md +0 -36
- package/docs/migration/atomic-write-v2-migration.md +0 -299
- package/docs/next-upgrade-roadmap.md +0 -808
- package/docs/oh-my-pi-research.md +0 -509
- package/docs/optimization-plan-2026-07.md +0 -366
- package/docs/optimization-plan.md +0 -644
- package/docs/patterns/command-agent-skill.md +0 -71
- package/docs/perf/baseline-2026-05.md +0 -113
- package/docs/perf/final-report-2026-05.md +0 -206
- package/docs/perf/optimization-plan-2026-07-verified.md +0 -396
- package/docs/perf/performance-audit-report-2026-07.md +0 -948
- package/docs/perf/performance-review-2026-07.md +0 -287
- package/docs/perf/sprint-1-report.md +0 -71
- package/docs/perf/sprint-2-report.md +0 -81
- package/docs/perf/sprint-2.5-report.md +0 -53
- package/docs/perf/sprint-3-report.md +0 -36
- package/docs/perf/sprint-4-report.md +0 -47
- package/docs/perf/sprint-5-report.md +0 -51
- package/docs/perf/sprint-6-report.md +0 -94
- package/docs/perf/sprint-7-report.md +0 -74
- package/docs/perf/upgrade-plan-2026-05.md +0 -147
- package/docs/performance-optimization-execution-plan.md +0 -520
- package/docs/phase4-triage.md +0 -58
- package/docs/pi-crew-investigation-report.md +0 -411
- package/docs/product/README.md +0 -31
- package/docs/product/platform.md +0 -27
- package/docs/product/runtime-safety.md +0 -37
- package/docs/product/team-run.md +0 -39
- package/docs/product/team-tool.md +0 -37
- package/docs/runtime-analysis-child-vs-live.md +0 -171
- package/docs/runtime-migration-in-process-analysis.md +0 -250
- package/docs/skills/REFERENCE.md +0 -138
- package/docs/stories/README.md +0 -32
- package/docs/stories/US-DEPS-major-upgrade.md +0 -62
- package/docs/stories/backlog.md +0 -36
- package/docs/superpowers/plans/2026-06-09-fallow-patterns-adoption.md +0 -1270
- package/docs/templates/decision.md +0 -27
- package/docs/templates/story.md +0 -44
- package/docs/templates/validation-report.md +0 -32
- package/docs/ui-optimization-plan.md +0 -447
- package/src/adapters/claude-adapter.ts +0 -23
- package/src/adapters/codex-adapter.ts +0 -21
- package/src/adapters/cursor-adapter.ts +0 -17
- package/src/adapters/export-util.ts +0 -143
- package/src/adapters/index.ts +0 -15
- package/src/adapters/registry.ts +0 -18
- package/src/adapters/types.ts +0 -23
- package/src/agents/agent-config.ts +0 -194
- package/src/agents/agent-search.ts +0 -98
- package/src/agents/agent-serializer.ts +0 -38
- package/src/agents/discover-agents.ts +0 -623
- package/src/benchmark/benchmark-runner.ts +0 -313
- package/src/benchmark/feedback-loop.ts +0 -73
- package/src/config/config.ts +0 -1269
- package/src/config/defaults.ts +0 -193
- package/src/config/drift-detector.ts +0 -290
- package/src/config/markers.ts +0 -330
- package/src/config/resilient-parser.ts +0 -117
- package/src/config/role-tools.ts +0 -118
- package/src/config/suggestions.ts +0 -75
- package/src/config/types.ts +0 -278
- package/src/errors.ts +0 -194
- package/src/extension/action-suggestions.ts +0 -117
- package/src/extension/async-notifier.ts +0 -179
- package/src/extension/autonomous-policy.ts +0 -209
- package/src/extension/command-completions.ts +0 -120
- package/src/extension/context-status-injection.ts +0 -185
- package/src/extension/crew-autocomplete.ts +0 -131
- package/src/extension/crew-cleanup.ts +0 -168
- package/src/extension/crew-input-router.ts +0 -93
- package/src/extension/crew-shortcuts.ts +0 -87
- package/src/extension/crew-vibes/cat-frames.ts +0 -18
- package/src/extension/crew-vibes/config.ts +0 -195
- package/src/extension/crew-vibes/figures.ts +0 -101
- package/src/extension/crew-vibes/font-detect.ts +0 -71
- package/src/extension/crew-vibes/footer.ts +0 -292
- package/src/extension/crew-vibes/index.ts +0 -432
- package/src/extension/crew-vibes/provider-usage.ts +0 -396
- package/src/extension/crew-vibes/render.ts +0 -206
- package/src/extension/crew-vibes/speed.ts +0 -286
- package/src/extension/cross-extension-rpc.ts +0 -350
- package/src/extension/help.ts +0 -62
- package/src/extension/import-index.ts +0 -74
- package/src/extension/knowledge-injection.ts +0 -402
- package/src/extension/management.ts +0 -571
- package/src/extension/message-renderers.ts +0 -108
- package/src/extension/notification-router.ts +0 -152
- package/src/extension/notification-sink.ts +0 -54
- package/src/extension/pi-api.ts +0 -56
- package/src/extension/plan-orchestrate.ts +0 -302
- package/src/extension/project-init.ts +0 -170
- package/src/extension/register.ts +0 -113
- package/src/extension/registration/artifact-cleanup.ts +0 -20
- package/src/extension/registration/command-registration.ts +0 -58
- package/src/extension/registration/command-utils.ts +0 -58
- package/src/extension/registration/commands.ts +0 -1228
- package/src/extension/registration/compaction-guard.ts +0 -333
- package/src/extension/registration/context-builder.ts +0 -135
- package/src/extension/registration/crash-recovery-cache.ts +0 -54
- package/src/extension/registration/foreground-run-controller.ts +0 -238
- package/src/extension/registration/hook-registration.ts +0 -119
- package/src/extension/registration/lazy-configurers.ts +0 -124
- package/src/extension/registration/lifecycle-handlers.ts +0 -923
- package/src/extension/registration/lifecycle.ts +0 -259
- package/src/extension/registration/observability.ts +0 -322
- package/src/extension/registration/registration-types.ts +0 -158
- package/src/extension/registration/runtime-cleanup.ts +0 -230
- package/src/extension/registration/subagent-helpers.ts +0 -125
- package/src/extension/registration/subagent-manager-setup.ts +0 -330
- package/src/extension/registration/subagent-tools.ts +0 -456
- package/src/extension/registration/team-tool.ts +0 -220
- package/src/extension/registration/tool-registration.ts +0 -50
- package/src/extension/registration/ui.ts +0 -172
- package/src/extension/registration/viewers.ts +0 -121
- package/src/extension/registration/wire-cross-extension.ts +0 -37
- package/src/extension/result-watcher.ts +0 -139
- package/src/extension/rpc-hmac.ts +0 -256
- package/src/extension/run-bundle-schema.ts +0 -104
- package/src/extension/run-export.ts +0 -97
- package/src/extension/run-import.ts +0 -168
- package/src/extension/run-index.ts +0 -131
- package/src/extension/run-maintenance.ts +0 -190
- package/src/extension/session-summary.ts +0 -18
- package/src/extension/team-manager-command.ts +0 -153
- package/src/extension/team-onboard.ts +0 -177
- package/src/extension/team-recommendation.ts +0 -288
- package/src/extension/team-tool/anchor.ts +0 -172
- package/src/extension/team-tool/api.ts +0 -1244
- package/src/extension/team-tool/auto-summarize.ts +0 -142
- package/src/extension/team-tool/cache-control.ts +0 -19
- package/src/extension/team-tool/cancel.ts +0 -337
- package/src/extension/team-tool/chain-dispatch.ts +0 -95
- package/src/extension/team-tool/chain-executor.ts +0 -379
- package/src/extension/team-tool/config-patch.ts +0 -50
- package/src/extension/team-tool/context.ts +0 -149
- package/src/extension/team-tool/destructive-gate.ts +0 -52
- package/src/extension/team-tool/doctor.ts +0 -431
- package/src/extension/team-tool/explain.ts +0 -282
- package/src/extension/team-tool/failure-patterns.ts +0 -118
- package/src/extension/team-tool/goal-wrap.ts +0 -330
- package/src/extension/team-tool/goal.ts +0 -556
- package/src/extension/team-tool/handle-schedule.ts +0 -332
- package/src/extension/team-tool/handle-settings.ts +0 -520
- package/src/extension/team-tool/health-monitor.ts +0 -481
- package/src/extension/team-tool/inspect.ts +0 -88
- package/src/extension/team-tool/intent-policy.ts +0 -45
- package/src/extension/team-tool/lifecycle-actions.ts +0 -615
- package/src/extension/team-tool/orchestrate.ts +0 -98
- package/src/extension/team-tool/parallel-dispatch.ts +0 -183
- package/src/extension/team-tool/plan.ts +0 -50
- package/src/extension/team-tool/respond.ts +0 -150
- package/src/extension/team-tool/run-not-found.ts +0 -49
- package/src/extension/team-tool/run.ts +0 -1035
- package/src/extension/team-tool/status.ts +0 -260
- package/src/extension/team-tool/workflow-manage.ts +0 -261
- package/src/extension/team-tool-types.ts +0 -26
- package/src/extension/team-tool.ts +0 -1116
- package/src/extension/tool-result.ts +0 -16
- package/src/extension/validate-resources.ts +0 -108
- package/src/hooks/registry.ts +0 -200
- package/src/hooks/types.ts +0 -69
- package/src/i18n.ts +0 -212
- package/src/observability/correlation.ts +0 -50
- package/src/observability/event-bus.ts +0 -86
- package/src/observability/event-to-metric.ts +0 -170
- package/src/observability/exporters/adapter.ts +0 -27
- package/src/observability/exporters/otlp-exporter.ts +0 -356
- package/src/observability/exporters/prometheus-exporter.ts +0 -54
- package/src/observability/metric-registry.ts +0 -100
- package/src/observability/metric-retention.ts +0 -64
- package/src/observability/metric-sink.ts +0 -99
- package/src/observability/metrics-primitives.ts +0 -219
- package/src/plugins/plugin-define.ts +0 -6
- package/src/plugins/plugin-registry.ts +0 -32
- package/src/plugins/plugins/index.ts +0 -3
- package/src/plugins/plugins/nextjs.ts +0 -19
- package/src/plugins/plugins/vite.ts +0 -10
- package/src/plugins/plugins/vitest.ts +0 -9
- package/src/prompt/prompt-runtime.ts +0 -380
- package/src/runtime/adaptive-plan.ts +0 -563
- package/src/runtime/agent-control.ts +0 -215
- package/src/runtime/agent-memory.ts +0 -81
- package/src/runtime/agent-observability.ts +0 -122
- package/src/runtime/anchor-manager.ts +0 -475
- package/src/runtime/async-marker.ts +0 -32
- package/src/runtime/async-runner.ts +0 -381
- package/src/runtime/attention-events.ts +0 -28
- package/src/runtime/auto-summarize.ts +0 -344
- package/src/runtime/background-runner.ts +0 -837
- package/src/runtime/batch-barrier.ts +0 -147
- package/src/runtime/broker-issuer.ts +0 -37
- package/src/runtime/cancellation-token.ts +0 -99
- package/src/runtime/cancellation.ts +0 -99
- package/src/runtime/capability-inventory.ts +0 -137
- package/src/runtime/chain-parser.ts +0 -237
- package/src/runtime/chain-runner.ts +0 -606
- package/src/runtime/checkpoint.ts +0 -291
- package/src/runtime/child-pi-constants.ts +0 -42
- package/src/runtime/child-pi-kill.ts +0 -180
- package/src/runtime/child-pi-pool.ts +0 -68
- package/src/runtime/child-pi-spawn.ts +0 -287
- package/src/runtime/child-pi-steering.ts +0 -128
- package/src/runtime/child-pi-streams.ts +0 -296
- package/src/runtime/child-pi-transcript.ts +0 -169
- package/src/runtime/child-pi.ts +0 -1105
- package/src/runtime/coalesce-tasks.ts +0 -268
- package/src/runtime/code-summary.ts +0 -292
- package/src/runtime/command-trace.ts +0 -105
- package/src/runtime/compact-pipeline.ts +0 -56
- package/src/runtime/compact-stages/ansi-strip-stage.ts +0 -25
- package/src/runtime/compact-stages/blank-collapse-stage.ts +0 -31
- package/src/runtime/compact-stages/deduplicate-stage.ts +0 -34
- package/src/runtime/compact-stages/head-snap-stage.ts +0 -57
- package/src/runtime/compact-stages/index.ts +0 -23
- package/src/runtime/compact-stages/tail-capture-stage.ts +0 -77
- package/src/runtime/compact-stages/truncation-stage.ts +0 -74
- package/src/runtime/compaction-summary.ts +0 -278
- package/src/runtime/completion-guard.ts +0 -207
- package/src/runtime/concurrency.ts +0 -58
- package/src/runtime/crash-classification.ts +0 -229
- package/src/runtime/crash-recovery.ts +0 -577
- package/src/runtime/crew-agent-records.ts +0 -593
- package/src/runtime/crew-agent-runtime.ts +0 -62
- package/src/runtime/crew-broker-child.ts +0 -88
- package/src/runtime/crew-broker-client.ts +0 -673
- package/src/runtime/crew-broker-tokens.ts +0 -84
- package/src/runtime/crew-broker.ts +0 -1276
- package/src/runtime/crew-hooks.ts +0 -227
- package/src/runtime/cross-extension-rpc.ts +0 -143
- package/src/runtime/custom-tools/irc-tool.ts +0 -282
- package/src/runtime/custom-tools/submit-result-tool.ts +0 -102
- package/src/runtime/deadletter.ts +0 -47
- package/src/runtime/delivery-coordinator.ts +0 -211
- package/src/runtime/delta-conflict.ts +0 -348
- package/src/runtime/deterministic-ast.ts +0 -161
- package/src/runtime/diagnostic-export.ts +0 -171
- package/src/runtime/direct-run.ts +0 -45
- package/src/runtime/dwf-state-store.ts +0 -102
- package/src/runtime/dynamic-workflow-context.ts +0 -1016
- package/src/runtime/dynamic-workflow-runner.ts +0 -310
- package/src/runtime/effectiveness.ts +0 -90
- package/src/runtime/errors/crew-errors.ts +0 -162
- package/src/runtime/event-stream-bridge.ts +0 -98
- package/src/runtime/foreground-control.ts +0 -193
- package/src/runtime/foreground-watchdog.ts +0 -132
- package/src/runtime/global-worker-cap.ts +0 -96
- package/src/runtime/goal-achievement.ts +0 -148
- package/src/runtime/goal-evaluator.ts +0 -361
- package/src/runtime/goal-loop-runner.ts +0 -828
- package/src/runtime/goal-state-store.ts +0 -219
- package/src/runtime/green-contract.ts +0 -55
- package/src/runtime/group-join.ts +0 -267
- package/src/runtime/handoff-manager.ts +0 -598
- package/src/runtime/heartbeat-gradient.ts +0 -36
- package/src/runtime/heartbeat-watcher.ts +0 -239
- package/src/runtime/hidden-handoff.ts +0 -407
- package/src/runtime/important-line-classifier.ts +0 -140
- package/src/runtime/intercom-bridge.ts +0 -187
- package/src/runtime/iteration-hooks.ts +0 -305
- package/src/runtime/live-agent-control.ts +0 -136
- package/src/runtime/live-agent-manager.ts +0 -704
- package/src/runtime/live-control-realtime.ts +0 -56
- package/src/runtime/live-extension-bridge.ts +0 -148
- package/src/runtime/live-irc.ts +0 -97
- package/src/runtime/live-session-health.ts +0 -108
- package/src/runtime/live-session-runtime.ts +0 -1139
- package/src/runtime/loop-gates.ts +0 -128
- package/src/runtime/manifest-cache.ts +0 -375
- package/src/runtime/mcp-proxy.ts +0 -105
- package/src/runtime/metric-parser.ts +0 -36
- package/src/runtime/model-fallback.ts +0 -409
- package/src/runtime/model-resolver.ts +0 -126
- package/src/runtime/model-scope.ts +0 -158
- package/src/runtime/orphan-worker-registry.ts +0 -465
- package/src/runtime/output-validator.ts +0 -202
- package/src/runtime/overflow-recovery.ts +0 -206
- package/src/runtime/parallel-research.ts +0 -68
- package/src/runtime/parallel-utils.ts +0 -160
- package/src/runtime/parent-guard.ts +0 -134
- package/src/runtime/path-overlap.ts +0 -150
- package/src/runtime/peer-dep.ts +0 -292
- package/src/runtime/per-write-validator.ts +0 -181
- package/src/runtime/phase-progress.ts +0 -217
- package/src/runtime/phase-tracker.ts +0 -385
- package/src/runtime/pi-args.ts +0 -655
- package/src/runtime/pi-json-output.ts +0 -170
- package/src/runtime/pi-spawn.ts +0 -273
- package/src/runtime/pipeline-runner.ts +0 -523
- package/src/runtime/plan-templates.ts +0 -201
- package/src/runtime/policy-engine.ts +0 -115
- package/src/runtime/post-checks.ts +0 -142
- package/src/runtime/post-exit-stdio-guard.ts +0 -104
- package/src/runtime/process-lifecycle.ts +0 -491
- package/src/runtime/process-status.ts +0 -154
- package/src/runtime/progress-event-coalescer.ts +0 -44
- package/src/runtime/progress-tracker.ts +0 -124
- package/src/runtime/prose-compressor.ts +0 -162
- package/src/runtime/recovery-recipes.ts +0 -203
- package/src/runtime/replace.ts +0 -570
- package/src/runtime/resilient-edit.ts +0 -153
- package/src/runtime/result-extractor.ts +0 -213
- package/src/runtime/retry-executor.ts +0 -100
- package/src/runtime/retry-runner.ts +0 -336
- package/src/runtime/role-permission.ts +0 -59
- package/src/runtime/run-coalesced-task-group.ts +0 -308
- package/src/runtime/run-drift.ts +0 -219
- package/src/runtime/run-tracker.ts +0 -116
- package/src/runtime/runtime-policy.ts +0 -29
- package/src/runtime/runtime-resolver.ts +0 -172
- package/src/runtime/runtime-warmup.ts +0 -160
- package/src/runtime/scheduler.ts +0 -353
- package/src/runtime/semaphore.ts +0 -141
- package/src/runtime/sensitive-paths.ts +0 -93
- package/src/runtime/session-resources.ts +0 -25
- package/src/runtime/session-snapshot.ts +0 -59
- package/src/runtime/session-usage.ts +0 -79
- package/src/runtime/settings-store.ts +0 -155
- package/src/runtime/sidechain-output.ts +0 -35
- package/src/runtime/single-agent-compose.ts +0 -84
- package/src/runtime/skill-effectiveness.ts +0 -524
- package/src/runtime/skill-instructions.ts +0 -391
- package/src/runtime/stale-reconciler.ts +0 -680
- package/src/runtime/stream-preview.ts +0 -184
- package/src/runtime/streaming-output.ts +0 -50
- package/src/runtime/subagent-manager.ts +0 -561
- package/src/runtime/subprocess-tool-registry.ts +0 -70
- package/src/runtime/supervisor-contact.ts +0 -64
- package/src/runtime/task-display.ts +0 -52
- package/src/runtime/task-graph-scheduler.ts +0 -227
- package/src/runtime/task-graph.ts +0 -290
- package/src/runtime/task-health.ts +0 -83
- package/src/runtime/task-id.ts +0 -161
- package/src/runtime/task-output-context.ts +0 -602
- package/src/runtime/task-packet.ts +0 -268
- package/src/runtime/task-quality.ts +0 -199
- package/src/runtime/task-runner/capabilities.ts +0 -78
- package/src/runtime/task-runner/context-retrieval.ts +0 -163
- package/src/runtime/task-runner/live-executor.ts +0 -227
- package/src/runtime/task-runner/output-splitter.ts +0 -152
- package/src/runtime/task-runner/progress.ts +0 -157
- package/src/runtime/task-runner/prompt-builder.ts +0 -278
- package/src/runtime/task-runner/prompt-pipeline.ts +0 -88
- package/src/runtime/task-runner/result-utils.ts +0 -16
- package/src/runtime/task-runner/retrieval-orchestrator.ts +0 -310
- package/src/runtime/task-runner/run-projection.ts +0 -125
- package/src/runtime/task-runner/state-helpers.ts +0 -176
- package/src/runtime/task-runner/tail-read.ts +0 -34
- package/src/runtime/task-runner.ts +0 -1420
- package/src/runtime/team-runner-artifacts.ts +0 -13
- package/src/runtime/team-runner.ts +0 -1993
- package/src/runtime/tool-output-pruner.ts +0 -333
- package/src/runtime/tool-progress.ts +0 -278
- package/src/runtime/usage-tracker.ts +0 -73
- package/src/runtime/verification-gates.ts +0 -571
- package/src/runtime/verification-integrity.ts +0 -105
- package/src/runtime/verification-worktree.ts +0 -186
- package/src/runtime/worker-heartbeat.ts +0 -25
- package/src/runtime/worker-startup.ts +0 -83
- package/src/runtime/workflow-state.ts +0 -195
- package/src/runtime/workspace-lock.ts +0 -443
- package/src/runtime/workspace-tree.ts +0 -312
- package/src/runtime/yield-handler.ts +0 -224
- package/src/runtime/zombie-scanner.ts +0 -298
- package/src/schema/config-schema.ts +0 -327
- package/src/schema/team-tool-schema.ts +0 -415
- package/src/schema/validation-types.ts +0 -159
- package/src/skills/discover-skills.ts +0 -197
- package/src/skills/skill-templates.ts +0 -456
- package/src/skills/validate.ts +0 -285
- package/src/state/active-run-registry.ts +0 -439
- package/src/state/artifact-store.ts +0 -176
- package/src/state/atomic-write.ts +0 -903
- package/src/state/blob-store.ts +0 -308
- package/src/state/contracts.ts +0 -158
- package/src/state/crew-init.ts +0 -269
- package/src/state/decision-ledger.ts +0 -345
- package/src/state/event-log-rotation.ts +0 -342
- package/src/state/event-log.ts +0 -1311
- package/src/state/event-reconstructor.ts +0 -229
- package/src/state/gitignore-manager.ts +0 -46
- package/src/state/health-store.ts +0 -79
- package/src/state/hook-instinct-bridge.ts +0 -94
- package/src/state/hook-integrations.ts +0 -51
- package/src/state/instinct-store.ts +0 -275
- package/src/state/jsonl-writer.ts +0 -107
- package/src/state/locks.ts +0 -562
- package/src/state/mailbox.ts +0 -916
- package/src/state/observation-store.ts +0 -176
- package/src/state/run-cache.ts +0 -193
- package/src/state/run-graph.ts +0 -183
- package/src/state/run-metrics.ts +0 -165
- package/src/state/schedule.ts +0 -166
- package/src/state/session-state-map.ts +0 -51
- package/src/state/state-store.ts +0 -958
- package/src/state/task-claims.ts +0 -61
- package/src/state/tiered-eval.ts +0 -480
- package/src/state/types-eval.ts +0 -58
- package/src/state/types.ts +0 -440
- package/src/state/usage.ts +0 -138
- package/src/state/worker-atomic-writer.ts +0 -194
- package/src/subagents/async-entry.ts +0 -1
- package/src/subagents/index.ts +0 -3
- package/src/subagents/live/control.ts +0 -1
- package/src/subagents/live/manager.ts +0 -1
- package/src/subagents/live/realtime.ts +0 -1
- package/src/subagents/live/session-runtime.ts +0 -1
- package/src/subagents/manager.ts +0 -1
- package/src/subagents/spawn.ts +0 -1
- package/src/teams/discover-teams.ts +0 -187
- package/src/teams/team-config.ts +0 -27
- package/src/teams/team-serializer.ts +0 -38
- package/src/tools/safe-bash-extension.ts +0 -54
- package/src/tools/safe-bash.ts +0 -505
- package/src/types/diff.d.ts +0 -18
- package/src/types/new-api-types.ts +0 -35
- package/src/ui/agent-management-overlay.ts +0 -160
- package/src/ui/card-colors.ts +0 -139
- package/src/ui/crew-footer.ts +0 -102
- package/src/ui/crew-select-list.ts +0 -111
- package/src/ui/dashboard-panes/agents-pane.ts +0 -164
- package/src/ui/dashboard-panes/cancellation-pane.ts +0 -66
- package/src/ui/dashboard-panes/capability-pane.ts +0 -77
- package/src/ui/dashboard-panes/health-pane.ts +0 -31
- package/src/ui/dashboard-panes/mailbox-pane.ts +0 -35
- package/src/ui/dashboard-panes/metrics-pane.ts +0 -37
- package/src/ui/dashboard-panes/progress-pane.ts +0 -38
- package/src/ui/dashboard-panes/transcript-pane.ts +0 -10
- package/src/ui/deploy-bundled-themes.ts +0 -71
- package/src/ui/dwf-phase-display.ts +0 -151
- package/src/ui/dynamic-border.ts +0 -35
- package/src/ui/heartbeat-aggregator.ts +0 -74
- package/src/ui/key-utils.ts +0 -42
- package/src/ui/keybinding-map.ts +0 -248
- package/src/ui/layout-primitives.ts +0 -106
- package/src/ui/live-conversation-overlay.ts +0 -183
- package/src/ui/live-duration.ts +0 -55
- package/src/ui/live-run-sidebar.ts +0 -301
- package/src/ui/loaders.ts +0 -176
- package/src/ui/mascot.ts +0 -436
- package/src/ui/overlays/agent-picker-overlay.ts +0 -65
- package/src/ui/overlays/confirm-overlay.ts +0 -60
- package/src/ui/overlays/help-overlay.ts +0 -177
- package/src/ui/overlays/mailbox-compose-overlay.ts +0 -181
- package/src/ui/overlays/mailbox-compose-preview.ts +0 -78
- package/src/ui/overlays/mailbox-detail-overlay.ts +0 -154
- package/src/ui/pi-ui-compat.ts +0 -68
- package/src/ui/powerbar-publisher.ts +0 -459
- package/src/ui/render-coalescer.ts +0 -101
- package/src/ui/render-diff.ts +0 -160
- package/src/ui/render-scheduler.ts +0 -224
- package/src/ui/run-action-dispatcher.ts +0 -182
- package/src/ui/run-dashboard.ts +0 -913
- package/src/ui/run-event-bus.ts +0 -381
- package/src/ui/run-snapshot-cache.ts +0 -1057
- package/src/ui/settings-overlay.ts +0 -1067
- package/src/ui/snapshot-types.ts +0 -90
- package/src/ui/spinner.ts +0 -17
- package/src/ui/status-colors.ts +0 -143
- package/src/ui/syntax-highlight.ts +0 -136
- package/src/ui/terminal-status.ts +0 -269
- package/src/ui/theme-adapter.ts +0 -271
- package/src/ui/theme-discovery.ts +0 -199
- package/src/ui/tool-progress-formatter.ts +0 -93
- package/src/ui/tool-render.ts +0 -453
- package/src/ui/tool-renderers/brief-mode.ts +0 -225
- package/src/ui/tool-renderers/index.ts +0 -726
- package/src/ui/transcript-cache.ts +0 -128
- package/src/ui/transcript-entries.ts +0 -256
- package/src/ui/transcript-viewer.ts +0 -424
- package/src/ui/widget/index.ts +0 -357
- package/src/ui/widget/widget-formatters.ts +0 -182
- package/src/ui/widget/widget-model.ts +0 -110
- package/src/ui/widget/widget-renderer.ts +0 -182
- package/src/ui/widget/widget-types.ts +0 -36
- package/src/utils/bm25-search.ts +0 -235
- package/src/utils/completion-dedupe.ts +0 -63
- package/src/utils/conflict-detect.ts +0 -668
- package/src/utils/env-allowlist.ts +0 -30
- package/src/utils/env-filter.ts +0 -155
- package/src/utils/file-coalescer.ts +0 -98
- package/src/utils/fingerprint.ts +0 -180
- package/src/utils/frontmatter.ts +0 -70
- package/src/utils/fs-watch.ts +0 -37
- package/src/utils/gh-protocol.ts +0 -556
- package/src/utils/git.ts +0 -260
- package/src/utils/guards.ts +0 -107
- package/src/utils/ids.ts +0 -24
- package/src/utils/incremental-reader.ts +0 -220
- package/src/utils/internal-error.ts +0 -10
- package/src/utils/names.ts +0 -36
- package/src/utils/ndjson.ts +0 -115
- package/src/utils/paths.ts +0 -227
- package/src/utils/project-detector.ts +0 -160
- package/src/utils/redaction.ts +0 -347
- package/src/utils/resolve-shell.ts +0 -36
- package/src/utils/run-watcher-registry.ts +0 -152
- package/src/utils/safe-paths.ts +0 -383
- package/src/utils/scan-cache.ts +0 -144
- package/src/utils/session-utils.ts +0 -110
- package/src/utils/sleep.ts +0 -54
- package/src/utils/socket-path.ts +0 -127
- package/src/utils/sse-parser.ts +0 -129
- package/src/utils/task-name-generator.ts +0 -337
- package/src/utils/timings.ts +0 -33
- package/src/utils/token-counter.ts +0 -200
- package/src/utils/visual.ts +0 -207
- package/src/workflows/cost-estimator.ts +0 -34
- package/src/workflows/discover-workflows.ts +0 -290
- package/src/workflows/intermediate-store.ts +0 -166
- package/src/workflows/preflight-validator.ts +0 -168
- package/src/workflows/topology-analyzer.ts +0 -203
- package/src/workflows/validate-workflow.ts +0 -50
- package/src/workflows/workflow-config.ts +0 -70
- package/src/workflows/workflow-serializer.ts +0 -32
- package/src/worktree/branch-freshness.ts +0 -112
- package/src/worktree/cleanup.ts +0 -341
- package/src/worktree/worktree-manager.ts +0 -1200
|
@@ -1,411 +0,0 @@
|
|
|
1
|
-
# pi-crew v0.2.20 — Investigation Results and Analysis
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-05-19
|
|
4
|
-
**Environment:** linux/x64, Node v22.22.0, Pi CLI v0.75.3
|
|
5
|
-
**Models:** zai/glm-5.1 (planner, executor, test-engineer), minimax/MiniMax-M2.7-highspeed (explorer, analyst, reviewer, verifier, writer, critic)
|
|
6
|
-
**pi-crew version:** 0.2.20
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## 1. pi-crew architecture overview
|
|
11
|
-
|
|
12
|
-
### 1.1 Source code structure
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
pi-crew/src/
|
|
16
|
-
├── adapters/ — Adapters for external systems
|
|
17
|
-
├── agents/ — Agent discovery & config (10 agents)
|
|
18
|
-
├── config/ — Configuration, defaults, drift detection
|
|
19
|
-
├── extension/ — Pi extension registration
|
|
20
|
-
├── hooks/ — Lifecycle hooks (before_run_start, before_task_start, task_result, etc.)
|
|
21
|
-
├── observability/ — Metrics, correlation, exporters (OTLP, Prometheus)
|
|
22
|
-
├── prompt/ — Prompt runtime & pipeline
|
|
23
|
-
├── runtime/ — Core runtime (~30+ files)
|
|
24
|
-
│ ├── async-runner.ts — Background process spawning with jiti loader
|
|
25
|
-
│ ├── background-runner.ts — Background entry point, team execution
|
|
26
|
-
│ ├── child-pi.ts — Child Pi process lifecycle, stdout capture, timeout
|
|
27
|
-
│ ├── child-pi-pool.ts — Warm pool skeleton (disabled, size=0)
|
|
28
|
-
│ ├── live-session-runtime.ts — Live-session (reuses the parent Pi)
|
|
29
|
-
│ ├── team-runner.ts — Main team run orchestrator
|
|
30
|
-
│ ├── worker-heartbeat.ts — Heartbeat state tracking
|
|
31
|
-
│ ├── worker-startup.ts — Startup failure classification
|
|
32
|
-
│ ├── pi-spawn.ts — Pi binary resolution & spawn command
|
|
33
|
-
│ ├── pi-args.ts — Build args for child Pi workers
|
|
34
|
-
│ ├── runtime-resolver.ts — Resolve live-session vs child-process
|
|
35
|
-
│ ├── crash-recovery.ts — Crash recovery logic
|
|
36
|
-
│ ├── deadletter.ts — Dead letter queue
|
|
37
|
-
│ └── ...
|
|
38
|
-
├── schema/ — Config & team-tool schema validation
|
|
39
|
-
├── skills/ — Built-in skills
|
|
40
|
-
├── state/ — State store, manifests, event logs
|
|
41
|
-
├── subagents/ — Subagent index, spawn, manager
|
|
42
|
-
├── teams/ — Team discovery (6 teams)
|
|
43
|
-
├── types/ — Shared TypeScript types
|
|
44
|
-
├── ui/ — TUI: widgets, overlays, dashboard, powerbar
|
|
45
|
-
├── utils/ — Utilities (sleep, shell resolve, redaction, env-filter)
|
|
46
|
-
├── workflows/ — Workflow discovery (6 workflows)
|
|
47
|
-
└── worktree/ — Git worktree isolation
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### 1.2 Resource inventory
|
|
51
|
-
|
|
52
|
-
| Resource | Count | Details |
|
|
53
|
-
|---|---|---|
|
|
54
|
-
| **Teams** | 6 | default, fast-fix, implementation, parallel-research, research, review |
|
|
55
|
-
| **Workflows** | 6 | default, fast-fix, implementation, parallel-research, research, review |
|
|
56
|
-
| **Agents** | 10 | explorer, planner, analyst, critic, executor, reviewer, security-reviewer, test-engineer, verifier, writer |
|
|
57
|
-
| **Skills** | 27 | async-worker-recovery, child-pi-spawning, orchestration, systematic-debugging, verification-before-done, ... |
|
|
58
|
-
| **Hooks** | 5+ | before_run_start, before_task_start, before_retry, task_result, ... |
|
|
59
|
-
|
|
60
|
-
### 1.3 Runtime modes
|
|
61
|
-
|
|
62
|
-
pi-crew supports 2 runtime modes:
|
|
63
|
-
|
|
64
|
-
| Mode | Description | Pros | Cons |
|
|
65
|
-
|---|---|---|---|
|
|
66
|
-
| **live-session** | Reuses the current Pi session | Fast, shares the provider connection | Cannot run async/background |
|
|
67
|
-
| **child-process** | Spawns a new Pi process | Can run background/async | Needs its own provider connection |
|
|
68
|
-
|
|
69
|
-
**Runtime resolution flow:**
|
|
70
|
-
```
|
|
71
|
-
team action='run' + async=true
|
|
72
|
-
→ runtime-resolver.ts: resolveCrewRuntime()
|
|
73
|
-
→ live-session available? NO (background cannot use live-session)
|
|
74
|
-
→ Fallback: child-process
|
|
75
|
-
→ spawn new Pi via jiti loader
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## 2. Comprehensive test results
|
|
81
|
-
|
|
82
|
-
### 2.1 Summary table
|
|
83
|
-
|
|
84
|
-
| Category | Tests | Pass | Fail | Partial |
|
|
85
|
-
|---|---|---|---|---|
|
|
86
|
-
| Resource Discovery (list, get, recommend) | 5 | ✅ 5 | 0 | 0 |
|
|
87
|
-
| Subagent Lifecycle (Agent, crew_agent) | 4 | 0 | ❌ 4 | 0 |
|
|
88
|
-
| Team Run Lifecycle (run, cancel, retry) | 4 | ✅ 1 | ❌ 2 | ⚠️ 1 |
|
|
89
|
-
| Planning (plan) | 1 | ✅ 1 | 0 | 0 |
|
|
90
|
-
| State Management (status, events, artifacts, summary, prune) | 6 | ✅ 6 | 0 | 0 |
|
|
91
|
-
| Diagnostics (doctor, validate, help) | 3 | ✅ 3 | 0 | 0 |
|
|
92
|
-
| Portability (export, import) | 2 | ✅ 2 | 0 | 0 |
|
|
93
|
-
| Configuration (settings, autonomy) | 2 | ✅ 2 | 0 | 0 |
|
|
94
|
-
| **Total** | **27** | **20** | **6** | **1** |
|
|
95
|
-
|
|
96
|
-
### 2.2 Per-test details
|
|
97
|
-
|
|
98
|
-
#### ✅ Resource Discovery — 5/5 PASS
|
|
99
|
-
|
|
100
|
-
| Test | Input | Output | Result |
|
|
101
|
-
|---|---|---|---|
|
|
102
|
-
| `team list` | List all resources | 6 teams, 6 workflows, 10 agents | ✅ |
|
|
103
|
-
| `team get` team | Get team=default | 4 roles (explorer→planner→executor→verifier) | ✅ |
|
|
104
|
-
| `team get` workflow | Get workflow for implementation | Implementation workflow steps | ✅ |
|
|
105
|
-
| `team get` agent | Get agent=explorer | Full profile: model, description, instructions | ✅ |
|
|
106
|
-
| `team recommend` | goal="test all features" | Recommended implementation team, high confidence | ✅ |
|
|
107
|
-
|
|
108
|
-
#### ✅ Diagnostics — 3/3 PASS
|
|
109
|
-
|
|
110
|
-
| Test | Input | Output | Result |
|
|
111
|
-
|---|---|---|---|
|
|
112
|
-
| `team doctor` | Full diagnostics | 17/17 checks OK (runtime, filesystem, discovery, validation, drift, schema, async, worktrees) | ✅ |
|
|
113
|
-
| `team validate` | Validate all resources | 10 agents, 6 teams, 6 workflows, 0 issues | ✅ |
|
|
114
|
-
| `team help` | Show help | Full command reference (core, inspection, maintenance, portability, diagnostics) | ✅ |
|
|
115
|
-
|
|
116
|
-
Detailed doctor checks:
|
|
117
|
-
- Runtime: cwd, platform, node, pi, git, config, model — all OK
|
|
118
|
-
- Filesystem: user state, project state, artifacts — all OK
|
|
119
|
-
- Discovery: 10 agents, 6 teams, 6 workflows, 10 model hints — all OK
|
|
120
|
-
- Drift: no config drift detected
|
|
121
|
-
- Schema: strict-provider schema compatible
|
|
122
|
-
- Async: fs.watch with polling fallback, completion notifications enabled
|
|
123
|
-
- Worktrees: leader repository OK, dirty worktrees preserved policy
|
|
124
|
-
|
|
125
|
-
#### ✅ State Management — 6/6 PASS
|
|
126
|
-
|
|
127
|
-
| Test | Input | Output | Result |
|
|
128
|
-
|---|---|---|---|
|
|
129
|
-
| `team status` | Check run state | Detailed: task graph, events, artifacts, policy decisions | ✅ |
|
|
130
|
-
| `team events` | Get event log | 20+ events from run.created → task.failed with timestamps | ✅ |
|
|
131
|
-
| `team artifacts` | List artifacts | 14 artifacts (prompts, results, metadata, logs, shared) | ✅ |
|
|
132
|
-
| `team summary` | Run overview | Status, goal, tasks, usage summary | ✅ |
|
|
133
|
-
| `team prune` | keep=2, confirm=true | 9 runs pruned, 2 kept, audit trail in prune.jsonl | ✅ |
|
|
134
|
-
| `team worktrees` | Without runId | Correctly required runId parameter | ✅ |
|
|
135
|
-
|
|
136
|
-
#### ✅ Portability — 2/2 PASS
|
|
137
|
-
|
|
138
|
-
| Test | Input | Output | Result |
|
|
139
|
-
|---|---|---|---|
|
|
140
|
-
| `team export` | Export completed run | run-export.json + run-export.md created | ✅ |
|
|
141
|
-
| `team import` | Import exported bundle | Bundle imported to .crew/imports/ with README.md | ✅ |
|
|
142
|
-
|
|
143
|
-
#### ✅ Configuration — 2/2 PASS
|
|
144
|
-
|
|
145
|
-
| Test | Input | Output | Result |
|
|
146
|
-
|---|---|---|---|
|
|
147
|
-
| `team settings` | Show effective settings | Complete: agent overrides, UI config, autonomous mode | ✅ |
|
|
148
|
-
| `team autonomy` | Show autonomy profile | Profile=suggested, enabled=true, inject policy=true | ✅ |
|
|
149
|
-
|
|
150
|
-
#### ✅ Planning — 1/1 PASS
|
|
151
|
-
|
|
152
|
-
| Test | Input | Output | Result |
|
|
153
|
-
|---|---|---|---|
|
|
154
|
-
| `team plan` | goal="Add health-check endpoint" | 4-step plan: explore → plan → execute → verify | ✅ |
|
|
155
|
-
|
|
156
|
-
#### ❌ Subagent Lifecycle — 0/4 FAIL
|
|
157
|
-
|
|
158
|
-
| Test | Agent ID | Type | Duration | Output | Result |
|
|
159
|
-
|---|---|---|---|---|---|
|
|
160
|
-
| Agent(explorer) | agent_mpc423rq_1 | explorer | 305s | Empty | ❌ |
|
|
161
|
-
| Agent(planner) | agent_mpc423rv_2 | planner | 305s | Empty | ❌ |
|
|
162
|
-
| Agent(analyst) | agent_mpc423rw_3 | analyst | 305s | Empty | ❌ |
|
|
163
|
-
| crew_agent(explorer) | agent_mpc423rw_4 | explorer | 305s | Empty | ❌ |
|
|
164
|
-
|
|
165
|
-
All of them: spawn successfully (PID exists) → zero output → 305s heartbeat timeout → failed.
|
|
166
|
-
|
|
167
|
-
#### ❌ Team Run Lifecycle — 1 PASS, 2 FAIL, 1 PARTIAL
|
|
168
|
-
|
|
169
|
-
| Test | Team | Runtime | Result | Details |
|
|
170
|
-
|---|---|---|---|---|
|
|
171
|
-
| implementation async | implementation | child-process | ❌ FAIL | 01_assess heartbeat dead after 300s |
|
|
172
|
-
| `team retry` | — | — | ✅ PASS | Task re-queued successfully |
|
|
173
|
-
| fast-fix foreground | fast-fix | live-session | ⚠️ PARTIAL | 01_explore completed, run cancelled before execute |
|
|
174
|
-
| `team cancel` | — | — | ✅ PASS | Run successfully cancelled |
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## 3. Critical issue: `pi --print` hangs
|
|
179
|
-
|
|
180
|
-
### 3.1 Description
|
|
181
|
-
|
|
182
|
-
**All 6 background worker failures share the same root cause:** `pi --print` (non-interactive mode) hangs indefinitely.
|
|
183
|
-
|
|
184
|
-
### 3.2 Reproduce
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
$ timeout 10 pi --print "say hi"
|
|
188
|
-
[context-mode] WARNING: skipping MCP bridge — CONTEXT_MODE_BRIDGE_DEPTH=1 indicates recursion
|
|
189
|
-
# ... hangs indefinitely ...
|
|
190
|
-
EXIT_CODE: 124 (timeout)
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
Result: **100% reproducible**. The Pi CLI starts (prints the context-mode warning) but blocks on the provider/model call.
|
|
194
|
-
|
|
195
|
-
### 3.3 Chain of failure
|
|
196
|
-
|
|
197
|
-
```
|
|
198
|
-
pi-crew background run
|
|
199
|
-
→ runtime-resolver.ts: fallback to child-process
|
|
200
|
-
→ async-runner.ts: resolve jiti-register.mjs
|
|
201
|
-
→ spawn("pi", [...args], { cwd, env })
|
|
202
|
-
→ Pi CLI starts, prints "[pi-crew] background loader=jiti"
|
|
203
|
-
→ Pi tries to connect to the model provider
|
|
204
|
-
→ BLOCKS INDEFINITELY — no stdout, no stderr, no error
|
|
205
|
-
→ 300,000ms (5 min) heartbeat timeout
|
|
206
|
-
→ worker.response_timeout: "No output for 300000ms"
|
|
207
|
-
→ task.failed → run.failed
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
### 3.4 Why does live-session still work?
|
|
211
|
-
|
|
212
|
-
| Aspect | Live-session | Child-process |
|
|
213
|
-
|---|---|---|
|
|
214
|
-
| Provider connection | **Reuses** the parent Pi's connection | Creates a new connection |
|
|
215
|
-
| Auth context | Shared with parent | Must set up itself |
|
|
216
|
-
| Startup time | Fast (no new process) | Slow (spawn + init) |
|
|
217
|
-
| Background capable | ❌ No | ✅ Yes (if the provider works) |
|
|
218
|
-
|
|
219
|
-
### 3.5 Possible causes
|
|
220
|
-
|
|
221
|
-
| # | Cause | Likelihood | How to verify |
|
|
222
|
-
|---|---|---|---|
|
|
223
|
-
| 1 | **API key not inherited** by the child process env | High | Check whether `sanitizeEnvSecrets()` filters too aggressively |
|
|
224
|
-
| 2 | **Provider endpoint unreachable** from the child process | Medium | `curl` to the provider API from the child env |
|
|
225
|
-
| 3 | **Provider rate limiting** (parent + child concurrent) | Medium | Check provider response headers |
|
|
226
|
-
| 4 | **jiti loader stall** — TS compilation hangs | Low | jiti import succeeded (log confirmed) |
|
|
227
|
-
|
|
228
|
-
### 3.6 Related key files
|
|
229
|
-
|
|
230
|
-
```
|
|
231
|
-
pi-crew/src/runtime/
|
|
232
|
-
├── async-runner.ts — resolveTypeScriptLoader(), spawn args with --import jiti-register.mjs
|
|
233
|
-
├── child-pi.ts — runChildPi(), response timeout, stdout capture
|
|
234
|
-
│ buildChildPiSpawnOptions() → { cwd, env: sanitizeEnvSecrets(env) }
|
|
235
|
-
├── background-runner.ts — Background entry point
|
|
236
|
-
├── pi-spawn.ts — getPiSpawnCommand() → { command: "pi", args }
|
|
237
|
-
├── pi-args.ts — buildPiWorkerArgs() → args array
|
|
238
|
-
└── worker-heartbeat.ts — Heartbeat stale check (5 min default)
|
|
239
|
-
|
|
240
|
-
pi-crew/src/config/defaults.ts
|
|
241
|
-
└── DEFAULT_CHILD_PI.responseTimeoutMs = 5 * 60_000 (300s)
|
|
242
|
-
|
|
243
|
-
pi-crew/src/utils/env-filter.ts
|
|
244
|
-
└── sanitizeEnvSecrets() — Filter secret env vars (possibly too aggressive?)
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
### 3.7 Recommended fix
|
|
248
|
-
|
|
249
|
-
1. **Immediate:** Run `pi --print "test"` in a terminal to confirm the provider connection issue
|
|
250
|
-
2. **Check `sanitizeEnvSecrets()`:** Verify that API keys (GOOGLE_API_KEY, MINIMAX_API_KEY, ZAI_API_KEY, etc.) are not filtered out
|
|
251
|
-
3. **Add error logging:** Capture stderr from the child Pi process into background.log
|
|
252
|
-
4. **Add a connection timeout:** The Pi CLI should time out after ~30s if the provider does not respond, instead of blocking indefinitely
|
|
253
|
-
5. **Test workaround:** Set `PI_TEAMS_MOCK_CHILD_PI=success` to bypass the provider call and verify pi-crew logic in isolation
|
|
254
|
-
|
|
255
|
-
---
|
|
256
|
-
|
|
257
|
-
## 4. Secondary issue: Stale heartbeat notifications after prune
|
|
258
|
-
|
|
259
|
-
### 4.1 Description
|
|
260
|
-
|
|
261
|
-
After running `team prune`, the background watcher still emits "Task heartbeat dead" notifications for removed runs.
|
|
262
|
-
|
|
263
|
-
### 4.2 Pattern
|
|
264
|
-
|
|
265
|
-
```
|
|
266
|
-
team prune --keep=0 --confirm=true → 9 runs removed
|
|
267
|
-
→ Notification: "agent_mpc423rq_1 heartbeat dead" (pruned run)
|
|
268
|
-
→ Notification: "agent_mpc423rv_2 heartbeat dead" (pruned run)
|
|
269
|
-
→ Notification: "agent_mpc423rw_3 heartbeat dead" (pruned run)
|
|
270
|
-
→ Notification: "agent_mpc423rw_4 heartbeat dead" (pruned run)
|
|
271
|
-
→ ... (6+ stale notifications total)
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
### 4.3 Cause
|
|
275
|
-
|
|
276
|
-
The background watcher maintains a queue of worker health checks. When runs are pruned, the watcher does not deregister immediately — notifications already in the queue are still emitted.
|
|
277
|
-
|
|
278
|
-
### 4.4 Severity: LOW (cosmetic)
|
|
279
|
-
|
|
280
|
-
### 4.5 Recommendation
|
|
281
|
-
|
|
282
|
-
- The background watcher should check run existence before emitting heartbeat alerts
|
|
283
|
-
- Or: the watcher should deregister workers when runs are pruned
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## 5. Secondary issue: Live-session run cancelled mid-execution
|
|
288
|
-
|
|
289
|
-
### 5.1 Description
|
|
290
|
-
|
|
291
|
-
A fast-fix team ran in a live-session; task `01_explore` completed successfully but the run was cancelled before `02_execute` started.
|
|
292
|
-
|
|
293
|
-
### 5.2 Events
|
|
294
|
-
|
|
295
|
-
```
|
|
296
|
-
04:12:20 live-session.prompt_start 01_explore
|
|
297
|
-
04:12:51 live-session.prompt_done 01_explore
|
|
298
|
-
04:12:51 live_agent.terminated 01_explore (status=cancelled)
|
|
299
|
-
04:12:51 task.completed 01_explore
|
|
300
|
-
04:12:51 run.cancelled: "This operation was aborted"
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
### 5.3 Possible causes
|
|
304
|
-
|
|
305
|
-
- Session concurrency limit (only 1 active live-session)
|
|
306
|
-
- User-initiated cancellation
|
|
307
|
-
- Conflict with concurrent test operations
|
|
308
|
-
|
|
309
|
-
### 5.4 Severity: MEDIUM
|
|
310
|
-
|
|
311
|
-
---
|
|
312
|
-
|
|
313
|
-
## 6. Features working stably
|
|
314
|
-
|
|
315
|
-
A list of features that have been tested and work correctly:
|
|
316
|
-
|
|
317
|
-
### Resource Discovery
|
|
318
|
-
- ✅ `team list` — Lists teams, workflows, agents, recent runs
|
|
319
|
-
- ✅ `team get` — Details of team/workflow/agent
|
|
320
|
-
- ✅ `team recommend` — Suggests a suitable team based on a goal
|
|
321
|
-
- ✅ `team validate` — Validates all resources
|
|
322
|
-
|
|
323
|
-
### Diagnostics
|
|
324
|
-
- ✅ `team doctor` — 17 checks (runtime, filesystem, discovery, drift, schema, async, worktrees)
|
|
325
|
-
- ✅ `team help` — Full command reference
|
|
326
|
-
|
|
327
|
-
### State Management
|
|
328
|
-
- ✅ `team status` — Run state with task graph, events, policy decisions
|
|
329
|
-
- ✅ `team events` — Detailed chronological event log
|
|
330
|
-
- ✅ `team artifacts` — Lists artifact files (prompts, results, metadata, logs)
|
|
331
|
-
- ✅ `team summary` — Concise run overview
|
|
332
|
-
- ✅ `team prune` — Cleanup runs with audit trail (prune.jsonl)
|
|
333
|
-
- ✅ `team cancel` — Cancel running/queued runs
|
|
334
|
-
|
|
335
|
-
### Portability
|
|
336
|
-
- ✅ `team export` — Export a run to JSON + Markdown
|
|
337
|
-
- ✅ `team import` — Import a run bundle, create a README.md summary
|
|
338
|
-
|
|
339
|
-
### Configuration
|
|
340
|
-
- ✅ `team settings` — Show effective settings (agent overrides, UI, autonomous)
|
|
341
|
-
- ✅ `team autonomy` — Show/set the autonomous mode profile
|
|
342
|
-
|
|
343
|
-
### Planning
|
|
344
|
-
- ✅ `team plan` — Create an execution plan with structured steps
|
|
345
|
-
|
|
346
|
-
### Retry
|
|
347
|
-
- ✅ `team retry` — Re-queue failed tasks
|
|
348
|
-
|
|
349
|
-
---
|
|
350
|
-
|
|
351
|
-
## 7. Current configuration
|
|
352
|
-
|
|
353
|
-
### Autonomous Mode
|
|
354
|
-
```
|
|
355
|
-
Profile: suggested
|
|
356
|
-
Enabled: true
|
|
357
|
-
Inject policy: true
|
|
358
|
-
Prefer async for long tasks: false
|
|
359
|
-
Allow worktree suggestion: true
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
### Agent Model Overrides
|
|
363
|
-
| Agent | Model | Thinking |
|
|
364
|
-
|---|---|---|
|
|
365
|
-
| explorer | minimax/MiniMax-M2.7-highspeed | off |
|
|
366
|
-
| writer | minimax/MiniMax-M2.7-highspeed | off |
|
|
367
|
-
| planner | zai/glm-5.1 | medium |
|
|
368
|
-
| analyst | minimax/MiniMax-M2.7-highspeed | off |
|
|
369
|
-
| critic | minimax/MiniMax-M2.7 | low |
|
|
370
|
-
| executor | zai/glm-5.1 | medium |
|
|
371
|
-
| reviewer | minimax/MiniMax-M2.7 | off |
|
|
372
|
-
| security-reviewer | minimax/MiniMax-M2.7 | medium |
|
|
373
|
-
| test-engineer | zai/glm-5.1 | low |
|
|
374
|
-
| verifier | minimax/MiniMax-M2.7 | off |
|
|
375
|
-
|
|
376
|
-
### Timeouts
|
|
377
|
-
```
|
|
378
|
-
DEFAULT_CHILD_PI.responseTimeoutMs = 300,000 (5 min)
|
|
379
|
-
DEFAULT_LIVE_SESSION.responseTimeoutMs = 600,000 (10 min)
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
## 8. Related files
|
|
385
|
-
|
|
386
|
-
| File | Description |
|
|
387
|
-
|---|---|
|
|
388
|
-
| `/home/bom/source/my_pi/pi-crew-test-results.md` | Detailed test report |
|
|
389
|
-
| `/home/bom/.pi/agent/pi-crew.json` | pi-crew config |
|
|
390
|
-
| `/home/bom/.pi/agent/agents/explorer.md` | Explorer agent config |
|
|
391
|
-
| `/home/bom/.pi/agent/agents/security-reviewer.md` | Security reviewer config |
|
|
392
|
-
| `/home/bom/.pi/agent/agents/test-engineer.md` | Test engineer config |
|
|
393
|
-
| `/home/bom/.pi/agent/agents/verifier.md` | Verifier config |
|
|
394
|
-
| `/home/bom/source/my_pi/.crew/audit/prune.jsonl` | Prune audit trail (381 entries) |
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
|
-
## 9. Next Steps
|
|
399
|
-
|
|
400
|
-
### High priority
|
|
401
|
-
1. **Fix `pi --print` hangs:** Investigate the provider connection in the child process
|
|
402
|
-
2. **Check `sanitizeEnvSecrets()`:** Verify it does not filter out necessary API keys
|
|
403
|
-
3. **Add stderr logging:** background.log should capture stderr from the child Pi
|
|
404
|
-
|
|
405
|
-
### Medium priority
|
|
406
|
-
4. **Test a foreground team to completion:** Verify the full workflow lifecycle (explore→plan→execute→verify)
|
|
407
|
-
5. **Stale notification fix:** Background watcher deregister on prune
|
|
408
|
-
|
|
409
|
-
### Low priority
|
|
410
|
-
6. **Configurable heartbeat timeout:** Replace the hardcoded 300s with a config value
|
|
411
|
-
7. **Warm pool implementation:** Currently disabled (size=0), needs Pi-side support
|
package/docs/product/README.md
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# Product Docs
|
|
2
|
-
|
|
3
|
-
Product documentation for pi-crew. Each file describes a product domain —
|
|
4
|
-
what it does, how it behaves, and what contracts it maintains.
|
|
5
|
-
|
|
6
|
-
## Update Rule
|
|
7
|
-
|
|
8
|
-
When behavior changes:
|
|
9
|
-
1. Update the affected product doc
|
|
10
|
-
2. Update or create the story packet
|
|
11
|
-
3. Update `docs/TEST_MATRIX.md`
|
|
12
|
-
4. Record a decision if it affects architecture, scope, risk, or settled rules
|
|
13
|
-
|
|
14
|
-
## Domain Index
|
|
15
|
-
|
|
16
|
-
| File | Domain | Description |
|
|
17
|
-
|------|--------|-------------|
|
|
18
|
-
| `team-run.md` | Core | Team run lifecycle: start, execute, complete |
|
|
19
|
-
| `team-tool.md` | API | Team tool actions: run, status, list, plan |
|
|
20
|
-
| `child-process.md` | Runtime | Child Pi process spawning and management |
|
|
21
|
-
| `live-session.md` | Runtime | In-process agent execution |
|
|
22
|
-
| `async-runner.md` | Runtime | Background/async run execution |
|
|
23
|
-
| `state.md` | State | Durable state: manifests, tasks, events |
|
|
24
|
-
| `worktree.md` | Isolation | Git worktree isolation for parallel work |
|
|
25
|
-
| `group-join.md` | Coordination | Agent result grouping and delivery |
|
|
26
|
-
| `model-fallback.md` | Runtime | Model selection and fallback chain |
|
|
27
|
-
| `conflict-detect.md` | Utils | Merge conflict detection in file edits |
|
|
28
|
-
| `crash-recovery.md` | Reliability | Crash recovery and stale reconciliation |
|
|
29
|
-
| `effectiveness.md` | Quality | Effectiveness guard for worker activity |
|
|
30
|
-
| `platform.md` | Platform | Cross-platform considerations (Windows) |
|
|
31
|
-
| `runtime-safety.md` | Safety | Runtime safety: depth guard, resource limits |
|
package/docs/product/platform.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Platform (Cross-Platform)
|
|
2
|
-
|
|
3
|
-
## Behavior
|
|
4
|
-
|
|
5
|
-
pi-crew runs on Windows, macOS, and Linux. Primary development is on Windows.
|
|
6
|
-
|
|
7
|
-
### Windows Considerations
|
|
8
|
-
|
|
9
|
-
- **EBUSY/EPERM**: Files locked by antivirus, shell, or indexer
|
|
10
|
-
- `rmSyncRetry()` with exponential backoff (50ms, 100ms, 200ms, 400ms)
|
|
11
|
-
- `existsSync` check before cleanup in finally blocks
|
|
12
|
-
- **Path separators**: Use `path.join()` everywhere, never hardcoded `/`
|
|
13
|
-
- **Shell**: `resolve-shell.ts` handles `cmd.exe` vs `bash` detection
|
|
14
|
-
- **Case sensitivity**: Windows is case-insensitive for file paths
|
|
15
|
-
|
|
16
|
-
### Unix Considerations
|
|
17
|
-
|
|
18
|
-
- `unref()` on timers to prevent blocking process exit
|
|
19
|
-
- POSIX shell compatibility in any shell scripts
|
|
20
|
-
- Signal handling (SIGTERM, SIGINT) for graceful shutdown
|
|
21
|
-
|
|
22
|
-
### CI Matrix
|
|
23
|
-
|
|
24
|
-
All changes validated on:
|
|
25
|
-
- `ubuntu-latest` / Node 22
|
|
26
|
-
- `windows-latest` / Node 22
|
|
27
|
-
- `macos-latest` / Node 22
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Runtime Safety
|
|
2
|
-
|
|
3
|
-
## Behavior
|
|
4
|
-
|
|
5
|
-
pi-crew enforces multiple safety layers to prevent resource leaks, crashes,
|
|
6
|
-
and runaway execution.
|
|
7
|
-
|
|
8
|
-
### Depth Guard
|
|
9
|
-
|
|
10
|
-
- Tracks `PI_CREW_SESSION_DEPTH` environment variable
|
|
11
|
-
- Depth >= 2 forces `child-process` mode instead of `live-session`
|
|
12
|
-
- Prevents stack overflow from nested team runs
|
|
13
|
-
|
|
14
|
-
### Resource Limits
|
|
15
|
-
|
|
16
|
-
- Memory cap on live-session agents
|
|
17
|
-
- Prompt timeout for agent responses
|
|
18
|
-
- Tool count restoration after session error
|
|
19
|
-
|
|
20
|
-
### Process Cleanup
|
|
21
|
-
|
|
22
|
-
- `cleanupTempDir()` with `existsSync` guard against double cleanup
|
|
23
|
-
- `safeDisposeLiveSession()` for clean resource teardown
|
|
24
|
-
- `removeLiveAgentHandle()` for registry cleanup
|
|
25
|
-
|
|
26
|
-
### Error Handling
|
|
27
|
-
|
|
28
|
-
- `try/catch` around all I/O operations in UI code
|
|
29
|
-
- `rmSyncRetry()` with exponential backoff for Windows EBUSY
|
|
30
|
-
- `rejectRunPromise` (not `resolveRunPromise`) in error paths
|
|
31
|
-
|
|
32
|
-
### State Integrity
|
|
33
|
-
|
|
34
|
-
- `withRunLockSync` for all state mutations
|
|
35
|
-
- Atomic write helpers (`writeJsonAtomic`, `appendJsonAtomic`)
|
|
36
|
-
- `markActiveTasksAndAgentsFailed()` for crash recovery
|
|
37
|
-
- Event log append-only for audit trail
|
package/docs/product/team-run.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Team Run
|
|
2
|
-
|
|
3
|
-
## Behavior
|
|
4
|
-
|
|
5
|
-
A team run executes a workflow with multiple agents, tracking progress through
|
|
6
|
-
durable state on disk.
|
|
7
|
-
|
|
8
|
-
### Lifecycle
|
|
9
|
-
|
|
10
|
-
1. User invokes `team action='run'` with a goal
|
|
11
|
-
2. Team runner creates a manifest, resolves team/workflow
|
|
12
|
-
3. Task graph is built from workflow steps
|
|
13
|
-
4. Tasks execute (parallel or sequential per workflow)
|
|
14
|
-
5. Results are collected, artifacts written
|
|
15
|
-
6. Run completes with final status
|
|
16
|
-
|
|
17
|
-
### Statuses
|
|
18
|
-
|
|
19
|
-
| Status | Meaning |
|
|
20
|
-
|--------|---------|
|
|
21
|
-
| pending | Manifest created, not yet executing |
|
|
22
|
-
| running | Tasks executing |
|
|
23
|
-
| completed | All tasks finished successfully |
|
|
24
|
-
| failed | One or more tasks failed |
|
|
25
|
-
| cancelled | User cancelled the run |
|
|
26
|
-
| partial | Some tasks completed, others still pending |
|
|
27
|
-
|
|
28
|
-
### Concurrency
|
|
29
|
-
|
|
30
|
-
- Tasks without dependencies run in parallel (up to concurrency limit)
|
|
31
|
-
- Tasks with `dependsOn` wait for predecessors
|
|
32
|
-
- Workflow phases enforce ordering
|
|
33
|
-
|
|
34
|
-
### Artifacts
|
|
35
|
-
|
|
36
|
-
- `results/{taskId}.txt` — task output
|
|
37
|
-
- `logs/{taskId}.log` — full transcript
|
|
38
|
-
- `metadata/` — task metadata files
|
|
39
|
-
- `shared/` — inter-agent shared context
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Team Tool API
|
|
2
|
-
|
|
3
|
-
## Behavior
|
|
4
|
-
|
|
5
|
-
The `team` tool is the primary interface for users to interact with pi-crew.
|
|
6
|
-
|
|
7
|
-
### Actions
|
|
8
|
-
|
|
9
|
-
| Action | Description |
|
|
10
|
-
|--------|-------------|
|
|
11
|
-
| `run` | Start a team run |
|
|
12
|
-
| `plan` | Create a plan without executing |
|
|
13
|
-
| `status` | Check run/task status |
|
|
14
|
-
| `list` | List teams, agents, workflows |
|
|
15
|
-
| `get` | Get resource details |
|
|
16
|
-
| `cancel` | Cancel a running task/run |
|
|
17
|
-
| `resume` | Resume a paused run |
|
|
18
|
-
| `respond` | Respond to a waiting task |
|
|
19
|
-
| `recommend` | Get team/workflow recommendations |
|
|
20
|
-
| `create/update/delete` | Manage resources |
|
|
21
|
-
| `doctor` | Diagnose configuration issues |
|
|
22
|
-
|
|
23
|
-
### Parameters
|
|
24
|
-
|
|
25
|
-
- `action` (required): The action to perform
|
|
26
|
-
- `team`: Team name for run operations
|
|
27
|
-
- `goal`: High-level objective
|
|
28
|
-
- `runId`: Run ID for status/cancel/resume
|
|
29
|
-
- `taskId`: Task ID for respond operations
|
|
30
|
-
- `confirm: true`: Required for destructive actions
|
|
31
|
-
|
|
32
|
-
### Safety Rules
|
|
33
|
-
|
|
34
|
-
- Delete operations require `confirm: true`
|
|
35
|
-
- Referenced resources blocked unless `force: true`
|
|
36
|
-
- Cancel requires explicit run ID
|
|
37
|
-
- Respond requires task ID + message
|