pi-maestro-teammate 2.4.0 → 2.5.0
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/agents/planner.md
CHANGED
|
@@ -59,7 +59,8 @@ Return only Markdown for the Plan, with no preface, commentary, interview log, o
|
|
|
59
59
|
Dependencies must form an executable DAG and identify safe parallel work. A task is a verifiable outcome, not a command or activity log.
|
|
60
60
|
8. `## Validation`: specify exact commands or observable checks, expected results, requirement coverage, and relevant regression or integration boundaries.
|
|
61
61
|
9. `## Risks and Recovery`: state concrete risks, mitigations, and rollback or recovery behavior.
|
|
62
|
-
10. `##
|
|
62
|
+
10. `## Knowledge Outcome`: require an end-of-execution assessment after implementation and verification. Name plausible candidate topics only when the work may produce a reusable non-obvious pitfall, failure lesson, trade-off, or prescriptive constraint; otherwise write `None expected` with a concrete reason. This section predicts what to assess—it must not fabricate knowledge in advance. Actual staging happens after approval in Act/Run mode, and the executor must explicitly report zero candidates when no result meets the project's knowledge quality bar.
|
|
63
|
+
11. `## Open Decisions`: list unresolved user-owned decisions. Write `None` only after evidence-based review; a Plan with unresolved decisions is not confirmation-ready.
|
|
63
64
|
|
|
64
65
|
Execution ownership: after the Plan is approved, implementation defaults to the project's `general-executor` agent (fallback: `general` when that role is not discovered). State this default in the Plan's Execution Plan section when it helps, and shape each task so a generic executor can consume it without rediscovery — concrete outcome, bounded scope, named files, acceptance criteria, and verification commands. Do not assume a workflow-task pipeline (`.task/TASK-*.json`) exists; the Plan must be executable by `general-executor` from the Plan text alone.
|
|
65
66
|
|
package/package.json
CHANGED
|
@@ -381,7 +381,7 @@ interface ChildCompactionStateEvent {
|
|
|
381
381
|
type: "teammate_compaction_state";
|
|
382
382
|
recoveryId: string;
|
|
383
383
|
generation: number;
|
|
384
|
-
phase: "pending" | "continuation" | "completed" | "failed";
|
|
384
|
+
phase: "pending" | "continuation" | "completed" | "failed" | "cancelled";
|
|
385
385
|
reason?: string;
|
|
386
386
|
}
|
|
387
387
|
|
|
@@ -392,7 +392,8 @@ function childCompactionStateEvent(message: Record<string, unknown>): ChildCompa
|
|
|
392
392
|
|| (message.phase !== "pending"
|
|
393
393
|
&& message.phase !== "continuation"
|
|
394
394
|
&& message.phase !== "completed"
|
|
395
|
-
&& message.phase !== "failed"
|
|
395
|
+
&& message.phase !== "failed"
|
|
396
|
+
&& message.phase !== "cancelled")) return undefined;
|
|
396
397
|
return {
|
|
397
398
|
type: "teammate_compaction_state",
|
|
398
399
|
recoveryId: message.recoveryId,
|
|
@@ -1364,6 +1365,17 @@ export async function runSingleAttempt(
|
|
|
1364
1365
|
const eventKey = compactionRecoveryKey(event);
|
|
1365
1366
|
if (closedCompactionRecoveries.has(eventKey)) return;
|
|
1366
1367
|
const active = state.compactionRecovery;
|
|
1368
|
+
if (event.phase === "cancelled") {
|
|
1369
|
+
if (active && (active.generation !== event.generation || active.recoveryId !== event.recoveryId)) return;
|
|
1370
|
+
closedCompactionRecoveries.add(eventKey);
|
|
1371
|
+
state.compactionRecovery = undefined;
|
|
1372
|
+
compactionSettlementSwallowed = false;
|
|
1373
|
+
if (timers.compactionRecovery) {
|
|
1374
|
+
clearTimeout(timers.compactionRecovery);
|
|
1375
|
+
timers.compactionRecovery = undefined;
|
|
1376
|
+
}
|
|
1377
|
+
return;
|
|
1378
|
+
}
|
|
1367
1379
|
const phaseRank = { pending: 0, completed: 1, continuation: 2 } as const;
|
|
1368
1380
|
let phaseAdvanced = false;
|
|
1369
1381
|
if (active) {
|