@agent-plan/core 0.4.7 → 0.4.9

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.
@@ -562,6 +562,18 @@ export declare class PlanStore {
562
562
  createAcceptedDecision(owner: AcceptedDecisionOwner, input: AcceptedDecisionCreateInput, acceptedAt?: string): Promise<AcceptedDecision>;
563
563
  updateAcceptedDecision(owner: AcceptedDecisionOwner, decisionId: string, input: AcceptedDecisionUpdateInput): Promise<AcceptedDecision>;
564
564
  deleteAcceptedDecision(owner: AcceptedDecisionOwner, decisionId: string): Promise<AcceptedDecision>;
565
+ /** Record the local process behind an opaque harness session for explicit recovery. */
566
+ registerSession(sessionId: string): Promise<void>;
567
+ /** Claim/start against canonical state under the root lock, never overwrite another owner. */
568
+ claimTask(phaseId: string, taskId: string, ownerSessionId: string, timestamp?: string): Promise<{
569
+ task: Task;
570
+ alreadyStarted: boolean;
571
+ }>;
572
+ /** Explicitly transfer a stopped caller's whole focus/return stack without changing lifecycle state. */
573
+ recoverSessionForTask(phaseId: string, taskId: string, sessionId: string, confirmed: boolean): Promise<{
574
+ taskIds: string[];
575
+ deviationIds: string[];
576
+ }>;
565
577
  /** Save a durable resume checkpoint without introducing a separate canonical task status. */
566
578
  pauseTask(phaseId: string, taskId: string, input: TaskPauseSnapshot): Promise<Task>;
567
579
  /** Resume a checkpointed task without resetting its original startedAt. */
@@ -1 +1 @@
1
- {"version":3,"file":"plan-store.d.ts","sourceRoot":"","sources":["../src/plan-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-store.d.ts","sourceRoot":"","sources":["../src/plan-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { access, copyFile, lstat, mkdir, readdir, readFile, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
2
2
  import { basename, dirname, join, resolve, sep } from "node:path";
3
3
  import { randomUUID } from "node:crypto";
4
+ import { hostname } from "node:os";
4
5
  import { z, ZodError } from "zod";
5
6
  /** Canonical `.planner/.gitignore` content (P042 spec): ignore the `.local/`
6
7
  * transient root, legacy `*.bak` crash backups, `*.tmp.*` atomic-write temp
@@ -15,7 +16,7 @@ const PLANNER_GITIGNORE = [
15
16
  "",
16
17
  ].join("\n");
17
18
  import { CodebaseProfileSchema, FeatureSchema, FeaturesDocumentSchema, FeatureDeletionTombstonesSchema, ManifestSchema, PhaseSchema, TaskSchema, TaskPauseSnapshotSchema, ProjectSchema, AcceptedDecisionSchema, RequirementSchema, RequirementsDocumentSchema, IdeaSchema, IdeasDocumentSchema, ResumeFocusSchema, ActivityLogSchema, TimestampSchema, WorkDeviationSchema, ResumeSessionsSchema, } from "./schema.js";
18
- import { deviationsForSession, pruneResumeSessions } from "./session-focus.js";
19
+ import { deviationsForSession, pruneResumeSessions, taskOwnershipConflict } from "./session-focus.js";
19
20
  import { createFeatureId, createIdeaId, createPhaseId, createRequirementId, createShortId, createStatusLogEntryId, createTaskId, formatFeatureRef, formatIdeaRef, formatPhaseRef, formatThreeDigitNumber, isLegacyPhaseId } from "./naming.js";
20
21
  import { deriveParentDisplay, fromCanonicalStatus } from "./display-status.js";
21
22
  import { buildHierarchicalDescriptionFreshness } from "./description-freshness.js";
@@ -3099,6 +3100,137 @@ export class PlanStore {
3099
3100
  });
3100
3101
  return deleted;
3101
3102
  }
3103
+ /** Record the local process behind an opaque harness session for explicit recovery. */
3104
+ async registerSession(sessionId) {
3105
+ if (!sessionId.trim())
3106
+ throw new PlanStoreError("Session identity must not be empty.");
3107
+ const path = join(this.localRoot(), "sessions", `${Buffer.from(sessionId).toString("base64url")}.json`);
3108
+ await mkdir(dirname(path), { recursive: true });
3109
+ await atomicWriteJson(path, { pid: process.pid, hostname: hostname() }, this.root);
3110
+ }
3111
+ /** Claim/start against canonical state under the root lock, never overwrite another owner. */
3112
+ async claimTask(phaseId, taskId, ownerSessionId, timestamp = nowISO()) {
3113
+ return this.runBatch(async () => {
3114
+ const phases = await this.loadAllPhases();
3115
+ const task = phases.find((phase) => phase.id === phaseId)?.tasks.find((entry) => entry.id === taskId);
3116
+ if (!task)
3117
+ throw new PlanStoreError("Task not found.", undefined, { errorCode: "TASK_NOT_FOUND", taskId });
3118
+ const owner = ownerSessionId.trim();
3119
+ if (taskOwnershipConflict(task, await this.listAllWorkDeviations(), owner)) {
3120
+ throw new PlanStoreError("Task belongs to another session. Use explicit session recovery after its owner has stopped.", undefined, { errorCode: "TASK_OWNED_BY_ANOTHER_SESSION", taskId });
3121
+ }
3122
+ const anotherActive = phases.flatMap((phase) => phase.tasks).find((entry) => entry.id !== taskId && entry.status === "in-progress" && (!owner || entry.activeOwnerSession === owner));
3123
+ if (anotherActive)
3124
+ throw new PlanStoreError("This session already owns another active task.", undefined, { errorCode: "ACTIVE_TASK_CONFLICT", taskId });
3125
+ if (task.status === "done" || task.status === "canceled" || task.status === "rejected") {
3126
+ throw new PlanStoreError(`Task cannot be started from ${task.status}.`, undefined, { errorCode: task.status === "done" ? "TASK_DONE" : "START_NOT_ALLOWED", taskId });
3127
+ }
3128
+ const alreadyStarted = task.status === "in-progress";
3129
+ if (alreadyStarted && task.activeOwnerSession === owner)
3130
+ return { task, alreadyStarted };
3131
+ let claimed;
3132
+ if (task.pauseSnapshot) {
3133
+ claimed = await this.resumeTask(phaseId, taskId, timestamp, owner);
3134
+ }
3135
+ else {
3136
+ claimed = (await this.updateTask(phaseId, taskId, (current) => ({
3137
+ ...current, status: "in-progress", activeOwnerSession: owner,
3138
+ startedAt: current.startedAt || timestamp, updatedAt: timestamp,
3139
+ statusLog: alreadyStarted ? current.statusLog : [...current.statusLog, {
3140
+ id: createStatusLogEntryId(), date: timestamp, fromStatus: current.status, toStatus: "in-progress",
3141
+ title: `${current.status} → in-progress`, description: "",
3142
+ }],
3143
+ }))).task;
3144
+ }
3145
+ const persisted = (await this.loadPhase(phaseId)).tasks.find((entry) => entry.id === taskId);
3146
+ if (persisted?.status !== "in-progress" || persisted.activeOwnerSession !== owner) {
3147
+ throw new PlanStoreError("Task ownership persistence verification failed.", undefined, { errorCode: "PERSISTENCE_VERIFICATION_FAILED", taskId });
3148
+ }
3149
+ return { task: claimed, alreadyStarted };
3150
+ });
3151
+ }
3152
+ /** Explicitly transfer a stopped caller's whole focus/return stack without changing lifecycle state. */
3153
+ async recoverSessionForTask(phaseId, taskId, sessionId, confirmed) {
3154
+ if (!confirmed)
3155
+ throw new PlanStoreError("Confirm that the previous caller has stopped before recovering its work.", undefined, { errorCode: "SESSION_RECOVERY_CONFIRMATION_REQUIRED" });
3156
+ if (!sessionId.trim())
3157
+ throw new PlanStoreError("Recovery requires a caller session.");
3158
+ return this.runBatch(async () => {
3159
+ const phases = await this.loadAllPhases();
3160
+ const task = phases.find((phase) => phase.id === phaseId)?.tasks.find((entry) => entry.id === taskId);
3161
+ if (!task)
3162
+ throw new PlanStoreError("Task not found.", undefined, { errorCode: "TASK_NOT_FOUND" });
3163
+ const deviations = await this.listAllWorkDeviations();
3164
+ const pending = deviations.filter((entry) => entry.state !== "resumed" && entry.state !== "canceled");
3165
+ const owners = new Set([task.activeOwnerSession, ...pending
3166
+ .filter((entry) => entry.resumeTaskId === taskId || entry.temporaryTaskId === taskId)
3167
+ .map((entry) => entry.ownerSession)].filter(Boolean));
3168
+ if (owners.size !== 1)
3169
+ throw new PlanStoreError("The task does not identify one recoverable session.", undefined, { errorCode: "SESSION_RECOVERY_AMBIGUOUS" });
3170
+ const previous = [...owners][0];
3171
+ if (previous === sessionId)
3172
+ return { taskIds: [], deviationIds: [] };
3173
+ const ownerPath = join(this.localRoot(), "sessions", `${Buffer.from(previous).toString("base64url")}.json`);
3174
+ let ownerRecord;
3175
+ try {
3176
+ ownerRecord = await readJson(ownerPath, z.object({ pid: z.number().int().positive(), hostname: z.string().min(1) }));
3177
+ }
3178
+ catch (error) {
3179
+ if (!(error instanceof PlanStoreError) || error.cause?.code !== "ENOENT")
3180
+ throw error;
3181
+ }
3182
+ if (ownerRecord) {
3183
+ if (ownerRecord.hostname !== hostname())
3184
+ throw new PlanStoreError("The previous process is on another host; its exit cannot be verified.", undefined, { errorCode: "SESSION_OWNER_UNVERIFIED" });
3185
+ let alive = true;
3186
+ try {
3187
+ process.kill(ownerRecord.pid, 0);
3188
+ }
3189
+ catch (error) {
3190
+ if (error.code === "ESRCH")
3191
+ alive = false;
3192
+ }
3193
+ if (alive)
3194
+ throw new PlanStoreError("The previous session process is still active.", undefined, { errorCode: "SESSION_OWNER_ACTIVE" });
3195
+ }
3196
+ if (phases.some((phase) => phase.tasks.some((entry) => entry.activeOwnerSession === sessionId))
3197
+ || pending.some((entry) => entry.ownerSession === sessionId)) {
3198
+ throw new PlanStoreError("The caller already has work; recover into a fresh connection.", undefined, { errorCode: "SESSION_RECOVERY_CONFLICT" });
3199
+ }
3200
+ const oldSessions = await this.loadResumeSessions();
3201
+ const previousFocus = oldSessions[previous] ?? await this.loadResume(previous);
3202
+ const taskIds = phases.flatMap((phase) => phase.tasks.filter((entry) => entry.activeOwnerSession === previous).map((entry) => entry.id));
3203
+ const deviationIds = deviations.filter((entry) => entry.ownerSession === previous).map((entry) => entry.id);
3204
+ const changedPhases = phases.filter((phase) => phase.tasks.some((entry) => entry.activeOwnerSession === previous));
3205
+ try {
3206
+ for (const phase of changedPhases)
3207
+ await this.updatePhase(phase.id, (current) => ({ ...current, tasks: current.tasks.map((entry) => entry.activeOwnerSession === previous ? { ...entry, activeOwnerSession: sessionId } : entry) }));
3208
+ await this.saveWorkDeviations(deviations.map((entry) => entry.ownerSession === previous ? { ...entry, ownerSession: sessionId } : entry));
3209
+ await this.updateResumeSessions((sessions) => {
3210
+ const next = { ...sessions };
3211
+ delete next[previous];
3212
+ if (previousFocus)
3213
+ next[sessionId] = { ...previousFocus, guardBypassUntil: "" };
3214
+ return next;
3215
+ });
3216
+ await this.refreshResume(undefined, undefined, sessionId);
3217
+ const recoveredTasks = (await this.loadAllPhases()).flatMap((phase) => phase.tasks);
3218
+ const recoveredDeviations = await this.listAllWorkDeviations();
3219
+ if (taskIds.some((id) => recoveredTasks.find((entry) => entry.id === id)?.activeOwnerSession !== sessionId)
3220
+ || deviationIds.some((id) => recoveredDeviations.find((entry) => entry.id === id)?.ownerSession !== sessionId)) {
3221
+ throw new PlanStoreError("Session recovery persistence verification failed.", undefined, { errorCode: "SESSION_RECOVERY_VERIFICATION_FAILED" });
3222
+ }
3223
+ }
3224
+ catch (error) {
3225
+ for (const phase of changedPhases)
3226
+ await this.updatePhase(phase.id, () => phase);
3227
+ await this.saveWorkDeviations(deviations);
3228
+ await this.updateResumeSessions(() => oldSessions);
3229
+ throw error;
3230
+ }
3231
+ return { taskIds, deviationIds };
3232
+ });
3233
+ }
3102
3234
  /** Save a durable resume checkpoint without introducing a separate canonical task status. */
3103
3235
  async pauseTask(phaseId, taskId, input) {
3104
3236
  const snapshot = TaskPauseSnapshotSchema.parse(input);
@@ -3150,6 +3282,9 @@ export class PlanStore {
3150
3282
  if (task.status === "done" || task.status === "canceled" || task.status === "rejected") {
3151
3283
  throw new PlanStoreError(`Task ${taskId} cannot be resumed from ${task.status}.`);
3152
3284
  }
3285
+ if (task.activeOwnerSession && ownerSessionId.trim() !== task.activeOwnerSession) {
3286
+ throw new PlanStoreError("Task belongs to another session.", undefined, { errorCode: "TASK_OWNED_BY_ANOTHER_SESSION", taskId });
3287
+ }
3153
3288
  const snapshot = task.pauseSnapshot;
3154
3289
  resumed = {
3155
3290
  ...task,
@@ -11,7 +11,9 @@
11
11
  * A caller with no session id (the web UI, scripts) sees the whole project, as
12
12
  * before.
13
13
  */
14
- import type { ResumeSessions, WorkDeviation } from "./schema.js";
14
+ import type { ResumeSessions, WorkDeviation, Task } from "./schema.js";
15
+ /** Ownership includes a live return-stack reservation, even while a task is paused. */
16
+ export declare function taskOwnershipConflict(task: Pick<Task, "id" | "activeOwnerSession">, deviations: readonly WorkDeviation[], sessionId: string): boolean;
15
17
  /** How many per-session resume entries are kept; the least recently updated are dropped. */
16
18
  export declare const RESUME_SESSION_LIMIT = 20;
17
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-focus.d.ts","sourceRoot":"","sources":["../src/session-focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAChF,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,CAAC,EAAE,CAGL;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,GAAE,MAA6B,GAAG,cAAc,CAKlH"}
1
+ {"version":3,"file":"session-focus.d.ts","sourceRoot":"","sources":["../src/session-focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEvE,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB,CAAC,EAAE,UAAU,EAAE,SAAS,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAKrJ;AAED,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAChF,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,CAAC,EAAE,CAGL;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,GAAE,MAA6B,GAAG,cAAc,CAKlH"}
@@ -11,6 +11,13 @@
11
11
  * A caller with no session id (the web UI, scripts) sees the whole project, as
12
12
  * before.
13
13
  */
14
+ /** Ownership includes a live return-stack reservation, even while a task is paused. */
15
+ export function taskOwnershipConflict(task, deviations, sessionId) {
16
+ return Boolean(task.activeOwnerSession && task.activeOwnerSession !== sessionId)
17
+ || deviations.some((entry) => entry.ownerSession !== "" && entry.ownerSession !== sessionId
18
+ && entry.state !== "resumed" && entry.state !== "canceled"
19
+ && (entry.resumeTaskId === task.id || entry.temporaryTaskId === task.id));
20
+ }
14
21
  /** How many per-session resume entries are kept; the least recently updated are dropped. */
15
22
  export const RESUME_SESSION_LIMIT = 20;
16
23
  /**
@@ -64,6 +64,7 @@ export interface ExplicitTaskStartEligibility {
64
64
  eligible: boolean;
65
65
  reason: string;
66
66
  }
67
+ export declare function isStartableTaskStatus(status: string): boolean;
67
68
  /**
68
69
  * Validate an explicitly requested task start. Priority and existing active
69
70
  * work remain advisory for explicit user choices; availability and dependency
@@ -1 +1 @@
1
- {"version":3,"file":"task-selection.d.ts","sourceRoot":"","sources":["../src/task-selection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-selection.d.ts","sourceRoot":"","sources":["../src/task-selection.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,29 @@ const buildRecommendationClaims = (selection, evidence = {}, dependencyReadyCand
116
116
  }
117
117
  return claims.slice(0, RECOMMENDATION_CLAIM_LIMIT);
118
118
  };
119
+ /**
120
+ * Statuses a task can be started from directly. `planned` is ordinary work.
121
+ * `waiting`, `blocked` and `deferred` are parked work: the planner already
122
+ * tracks it as on hold and flags it "may be ready" (on-hold.ts), so starting it
123
+ * must be possible without first editing its status.
124
+ */
125
+ const PARKED_TASK_STATUSES = new Set(["waiting", "blocked", "deferred"]);
126
+ export function isStartableTaskStatus(status) {
127
+ return status === "planned" || PARKED_TASK_STATUSES.has(status);
128
+ }
129
+ /**
130
+ * Why a task in this status cannot be started, and the exact way out. Every
131
+ * adapter shows this text, so it is worded once, here.
132
+ */
133
+ function startRefusalReason(status) {
134
+ if (status === "done") {
135
+ return "Task is done. Reopen it with planner-task-reopen (explicit confirmation) to work on it again.";
136
+ }
137
+ if (status === "canceled" || status === "rejected") {
138
+ return `Task is ${status}, which was a deliberate decision. To work on it again, set it to planned with a motivation (planner-task-update status=planned), then start it.`;
139
+ }
140
+ return `Task is not startable from ${status}.`;
141
+ }
119
142
  /**
120
143
  * Validate an explicitly requested task start. Priority and existing active
121
144
  * work remain advisory for explicit user choices; availability and dependency
@@ -129,12 +152,17 @@ export function checkExplicitTaskStart(features, phases, taskId, deviations = []
129
152
  return { eligible: false, reason: "Requested task no longer exists." };
130
153
  const isTemporaryOverride = deviations.some((deviation) => (deviation.state === "approved" || deviation.state === "active")
131
154
  && deviation.temporaryTaskId === taskId);
132
- const startableStatus = candidate.task.status === "planned"
133
- || (candidate.task.status === "waiting" && isTemporaryOverride);
134
- if (!startableStatus)
135
- return { eligible: false, reason: `Task is not startable from ${candidate.task.status}.` };
136
- const parentHasHardBlock = hardUnavailable.has(candidate.phase.status)
137
- || (candidate.feature && hardUnavailable.has(candidate.feature.status));
155
+ if (!isStartableTaskStatus(candidate.task.status))
156
+ return { eligible: false, reason: startRefusalReason(candidate.task.status) };
157
+ // A phase or feature status is derived from its children. When every open task is
158
+ // parked, the parent derives blocked or deferred from those very tasks, so it must not
159
+ // refuse to start one of them (that would make parked work impossible to resume).
160
+ // canceled and rejected parents cannot be derived while a parked child is open.
161
+ const isParkedCandidate = PARKED_TASK_STATUSES.has(candidate.task.status);
162
+ const blocksStart = (parentStatus) => hardUnavailable.has(parentStatus)
163
+ && !(isParkedCandidate && (parentStatus === "blocked" || parentStatus === "deferred"));
164
+ const parentHasHardBlock = blocksStart(candidate.phase.status)
165
+ || (candidate.feature && blocksStart(candidate.feature.status));
138
166
  if (parentHasHardBlock) {
139
167
  return { eligible: false, reason: "Task belongs to an unavailable phase or feature." };
140
168
  }
@@ -1,5 +1,5 @@
1
1
  import type { ContextReadEligibility, ProjectGuidelinesReadState, RequiredContextRead } from "./read-tracking.js";
2
- export declare const TASK_START_ERROR_CODES: readonly ["PLAN_NOT_FOUND", "TASK_NOT_FOUND", "TASK_DONE", "PROJECT_GUIDELINES_READ_REQUIRED", "CONTEXT_READ_REQUIRED", "REQUIREMENTS_READ_REQUIRED", "START_NOT_ALLOWED", "ACTIVE_TASK_CONFLICT", "PERSISTENCE_VERIFICATION_FAILED"];
2
+ export declare const TASK_START_ERROR_CODES: readonly ["PLAN_NOT_FOUND", "TASK_NOT_FOUND", "TASK_DONE", "TASK_OWNED_BY_ANOTHER_SESSION", "PROJECT_GUIDELINES_READ_REQUIRED", "CONTEXT_READ_REQUIRED", "REQUIREMENTS_READ_REQUIRED", "START_NOT_ALLOWED", "ACTIVE_TASK_CONFLICT", "PERSISTENCE_VERIFICATION_FAILED"];
3
3
  export type TaskStartErrorCode = (typeof TASK_START_ERROR_CODES)[number];
4
4
  export interface TaskStartDeniedOutcome {
5
5
  started: false;
@@ -1 +1 @@
1
- {"version":3,"file":"task-start-outcome.d.ts","sourceRoot":"","sources":["../src/task-start-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAElH,eAAO,MAAM,sBAAsB,uOAUzB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,GAAG,yBAAyB,CAAC;AAElF,wBAAgB,eAAe,CAC7B,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GAC3D,sBAAsB,CASxB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,yBAAyB,CAEpG;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,sBAAsB,EAC1C,sBAAsB,EAAE,sBAAsB,EAC9C,0BAA0B,EAAE,0BAA0B,GACrD,kBAAkB,CASpB;AAED,4FAA4F;AAC5F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAWvE"}
1
+ {"version":3,"file":"task-start-outcome.d.ts","sourceRoot":"","sources":["../src/task-start-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAElH,eAAO,MAAM,sBAAsB,wQAWzB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,GAAG,yBAAyB,CAAC;AAElF,wBAAgB,eAAe,CAC7B,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GAC3D,sBAAsB,CASxB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,yBAAyB,CAEpG;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,sBAAsB,EAC1C,sBAAsB,EAAE,sBAAsB,EAC9C,0BAA0B,EAAE,0BAA0B,GACrD,kBAAkB,CASpB;AAED,4FAA4F;AAC5F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAWvE"}
@@ -2,6 +2,7 @@ export const TASK_START_ERROR_CODES = [
2
2
  "PLAN_NOT_FOUND",
3
3
  "TASK_NOT_FOUND",
4
4
  "TASK_DONE",
5
+ "TASK_OWNED_BY_ANOTHER_SESSION",
5
6
  "PROJECT_GUIDELINES_READ_REQUIRED",
6
7
  "CONTEXT_READ_REQUIRED",
7
8
  "REQUIREMENTS_READ_REQUIRED",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-plan/core",
3
- "version": "0.4.7",
3
+ "version": "0.4.9",
4
4
  "private": false,
5
5
  "description": "Harness-agnostic core for Agent Plan: schemas, persistence, ordering, status rollups, and markdown rendering.",
6
6
  "license": "MIT",
package/planner-skill.md CHANGED
@@ -78,6 +78,9 @@ A decision has exactly one owner: the project when it is project-wide, a feature
78
78
 
79
79
  ## Task execution
80
80
 
81
+ - Task start claims ownership atomically; `started: true` for already-active work applies only to the owning caller. Another caller receives `TASK_OWNED_BY_ANOTHER_SESSION`.
82
+ - A stdio MCP restart creates a fresh caller. After explicitly confirming the old caller has stopped, use `planner-session-recover` (`task`, `confirmed=true`) or Pi `session_recover` (`taskId`, `confirmed=true`) with its old active task or a pending return task. This transfers the complete owned work, return stack and focus without changing task statuses/checkpoints. Registered live processes and callers already owning work are refused; older sessions without process records rely on that explicit confirmation. Then reread context and start normally. Never invent client-side owner-ID mappings or recover another live caller.
83
+
81
84
  - Create rich feature, phase, and task descriptions with current state, concrete goals, relevant systems, file/symbol references, behaviors to preserve, and edge cases.
82
85
  - Use one task with checklist items for implementation steps. Do not create child tasks merely to scatter the same execution context.
83
86
  - Add, remove, and toggle checklist items granularly. Do not encode completion by adding `DONE` to checklist titles.
@@ -211,6 +214,8 @@ Pause, switch, deviation, requirement, and decision operations are available thr
211
214
 
212
215
  ## MCP tool inventory
213
216
 
217
+ - Session recovery: `planner-session-recover`.
218
+
214
219
  The MCP adapter publishes these tools:
215
220
 
216
221
  - Core: `planner-version`, `planner-init`, `planner-show`, `planner-description-freshness`, `planner-repair`, `planner-cleanup-orphan-phases`, `planner-export`, `planner-authorize-bypass`, `planner-clear-bypass`, `planner-load`, `planner-disable`, `planner-web`.
@@ -223,6 +228,8 @@ The MCP adapter publishes these tools:
223
228
 
224
229
  ## Pi tool inventory
225
230
 
231
+ - Session recovery: `session_recover`.
232
+
226
233
  The Pi adapter registers these tools:
227
234
 
228
235
  - Ideas: `idea_list`, `idea_show`, `idea_create`, `idea_update`, `idea_delete`, `idea_promotion_begin`, `idea_promotion_finalize`.