taskplane 0.9.2 → 0.10.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.
@@ -170,13 +170,15 @@ export function syncTaskOutcomesFromMonitor(
170
170
  }
171
171
 
172
172
  // Completed tasks => succeeded
173
+ // Use existing endTime if already set — prevents changed=true on every
174
+ // poll tick (lastPollTime differs each tick, causing persist log spam).
173
175
  for (const taskId of lane.completedTasks) {
174
176
  const existing = outcomes.find(o => o.taskId === taskId);
175
177
  changed = upsertTaskOutcome(outcomes, {
176
178
  taskId,
177
179
  status: "succeeded",
178
180
  startTime: existing?.startTime ?? null,
179
- endTime: monitorState.lastPollTime,
181
+ endTime: existing?.endTime ?? monitorState.lastPollTime,
180
182
  exitReason: existing?.exitReason || ".DONE file created by task-runner",
181
183
  sessionName: existing?.sessionName || lane.sessionName,
182
184
  doneFileFound: true,
@@ -193,7 +195,7 @@ export function syncTaskOutcomesFromMonitor(
193
195
  taskId,
194
196
  status: "failed",
195
197
  startTime: existing?.startTime ?? null,
196
- endTime: monitorState.lastPollTime,
198
+ endTime: existing?.endTime ?? monitorState.lastPollTime,
197
199
  exitReason: existing?.exitReason || "Task failed or stalled",
198
200
  sessionName: existing?.sessionName || lane.sessionName,
199
201
  doneFileFound: false,
@@ -1952,6 +1952,29 @@ Read it now before doing anything else. It is your primary reference.
1952
1952
 
1953
1953
  ${guardrailsSection}
1954
1954
 
1955
+ ## Available Orchestrator Tools
1956
+
1957
+ You can invoke these tools directly — no need to ask the operator or use slash commands:
1958
+
1959
+ - **orch_status()** — Check current batch status (phase, wave progress, task counts, elapsed time)
1960
+ - **orch_pause()** — Pause the running batch (current tasks finish, no new tasks start)
1961
+ - **orch_resume(force?)** — Resume a paused or interrupted batch. Use \`force=true\` for stuck batches.
1962
+ - **orch_abort(hard?)** — Abort the running batch. Use \`hard=true\` for immediate kill.
1963
+ - **orch_integrate(mode?, force?, branch?)** — Integrate completed batch into working branch.
1964
+ Modes: \`"fast-forward"\` (default), \`"merge"\`, \`"pr"\`.
1965
+
1966
+ ### When to Use These Tools
1967
+
1968
+ Use tools **proactively** when the situation calls for it:
1969
+ - Operator asks "how's it going?" → call \`orch_status()\` first, then summarize
1970
+ - Batch paused due to a failure you diagnosed and fixed → call \`orch_resume()\`
1971
+ - Batch completed successfully → offer to call \`orch_integrate(mode="pr")\` or the operator's preferred mode
1972
+ - Batch is stuck or failing repeatedly → call \`orch_status()\` to diagnose, then \`orch_abort()\` if needed
1973
+ - Need to investigate before more tasks launch → call \`orch_pause()\` first
1974
+
1975
+ These tools are preferred over reading batch-state.json directly because they handle
1976
+ disk fallback, in-memory state, and all edge cases automatically.
1977
+
1955
1978
  ## Startup Checklist
1956
1979
 
1957
1980
  Now that you've activated:
@@ -2168,6 +2191,17 @@ Use these to:
2168
2191
  - Run \`gh\` CLI commands for GitHub integration (issues, branch protection)
2169
2192
  - Create task folders and PROMPT.md files
2170
2193
 
2194
+ ### Orchestrator Tools
2195
+
2196
+ You also have orchestrator tools available for batch management:
2197
+ - **orch_status()** — Check batch status
2198
+ - **orch_resume(force?)** — Resume a paused batch
2199
+ - **orch_integrate(mode?, force?, branch?)** — Integrate completed batch (modes: "fast-forward", "merge", "pr")
2200
+ - **orch_pause()** — Pause running batch
2201
+ - **orch_abort(hard?)** — Abort running batch
2202
+
2203
+ Use these when the conversation leads to batch operations (e.g., integrating a completed batch).
2204
+
2171
2205
  ## Operational Knowledge
2172
2206
 
2173
2207
  **IMPORTANT:** Read \`${primerPath}\` for your complete operational runbook.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskplane",
3
- "version": "0.9.2",
3
+ "version": "0.10.0",
4
4
  "description": "AI agent orchestration for pi — parallel task execution with checkpoint discipline",
5
5
  "keywords": [
6
6
  "pi-package",