@planu/cli 1.7.0 → 1.9.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.
Files changed (32) hide show
  1. package/dist/config/license-plans.json +1 -0
  2. package/dist/engine/claude-config-auditor/settings-auditor.d.ts.map +1 -1
  3. package/dist/engine/claude-config-auditor/settings-auditor.js +18 -0
  4. package/dist/engine/claude-config-auditor/settings-auditor.js.map +1 -1
  5. package/dist/engine/session-handoff-generator.d.ts +10 -0
  6. package/dist/engine/session-handoff-generator.d.ts.map +1 -0
  7. package/dist/engine/session-handoff-generator.js +80 -0
  8. package/dist/engine/session-handoff-generator.js.map +1 -0
  9. package/dist/tools/git/branch-ops.d.ts +6 -3
  10. package/dist/tools/git/branch-ops.d.ts.map +1 -1
  11. package/dist/tools/git/branch-ops.js +35 -7
  12. package/dist/tools/git/branch-ops.js.map +1 -1
  13. package/dist/tools/register-session-tools.d.ts.map +1 -1
  14. package/dist/tools/register-session-tools.js +11 -2
  15. package/dist/tools/register-session-tools.js.map +1 -1
  16. package/dist/tools/schemas/session.d.ts +4 -0
  17. package/dist/tools/schemas/session.d.ts.map +1 -1
  18. package/dist/tools/schemas/session.js +8 -0
  19. package/dist/tools/schemas/session.js.map +1 -1
  20. package/dist/tools/session-handoff.d.ts +3 -0
  21. package/dist/tools/session-handoff.d.ts.map +1 -0
  22. package/dist/tools/session-handoff.js +51 -0
  23. package/dist/tools/session-handoff.js.map +1 -0
  24. package/dist/tools/status-handler.d.ts.map +1 -1
  25. package/dist/tools/status-handler.js +15 -2
  26. package/dist/tools/status-handler.js.map +1 -1
  27. package/dist/types/session-checkpoint.d.ts +21 -0
  28. package/dist/types/session-checkpoint.d.ts.map +1 -1
  29. package/dist/types/session-checkpoint.js +1 -1
  30. package/dist/types/session-checkpoint.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/config/license-plans.json +1 -0
@@ -74,6 +74,7 @@
74
74
  "search_specs",
75
75
  "search_suggestions",
76
76
  "session_checkpoint",
77
+ "session_handoff",
77
78
  "set_locale",
78
79
  "set_work_mode",
79
80
  "skill_install",
@@ -1 +1 @@
1
- {"version":3,"file":"settings-auditor.d.ts","sourceRoot":"","sources":["../../../src/engine/claude-config-auditor/settings-auditor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,sBAAsB,CAAC;AAsGxE,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAgCjF"}
1
+ {"version":3,"file":"settings-auditor.d.ts","sourceRoot":"","sources":["../../../src/engine/claude-config-auditor/settings-auditor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,sBAAsB,CAAC;AAsHxE,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAoCjF"}
@@ -87,6 +87,20 @@ function auditSingleSettings(data, label) {
87
87
  }
88
88
  return findings;
89
89
  }
90
+ function auditCompactWindow() {
91
+ const val = process.env.CLAUDE_CODE_AUTO_COMPACT_WINDOW;
92
+ if (val === undefined || val === '') {
93
+ return {
94
+ area: 'settings',
95
+ severity: 'info',
96
+ code: 'COMPACT_WINDOW_MISSING',
97
+ message: 'CLAUDE_CODE_AUTO_COMPACT_WINDOW is not set — long sessions consume more tokens',
98
+ suggestion: 'Set CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 in your shell profile to cap context window size and reduce token costs.',
99
+ docsRef: DOCS_REF,
100
+ };
101
+ }
102
+ return null;
103
+ }
90
104
  export async function auditSettings(projectPath) {
91
105
  const findings = [];
92
106
  const pairs = [
@@ -117,6 +131,10 @@ export async function auditSettings(projectPath) {
117
131
  docsRef: DOCS_REF,
118
132
  });
119
133
  }
134
+ const compactWindowFinding = auditCompactWindow();
135
+ if (compactWindowFinding !== null) {
136
+ findings.push(compactWindowFinding);
137
+ }
120
138
  return findings;
121
139
  }
122
140
  //# sourceMappingURL=settings-auditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-auditor.js","sourceRoot":"","sources":["../../../src/engine/claude-config-auditor/settings-auditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-auditor.js","sourceRoot":"","sources":["../../../src/engine/claude-config-auditor/settings-auditor.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,QAAQ,GAAG,0CAA0C,CAAC;AAC5D,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAkB;IAC5C,MAAM,UAAU,GACd,IAGD,CAAC,KAAK,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/B,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC1F,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAkB,EAAE,KAAa;IAC5D,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;IAChD,KAAK,MAAM,OAAO,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,GAAG,KAAK,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,qCAAqC,OAAO,GAAG;gBAC/F,UAAU,EAAE,mDAAmD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpF,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,GAAG,KAAK,yDAAyD;YAC1E,UAAU,EAAE,0DAA0D;YACtE,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;IAClD,IACE,CAAC,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,aAAa,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,WAAW,KAAK,SAAS,EACxC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,GAAG,KAAK,iCAAiC,WAAW,0CAA0C;YACvG,UAAU,EACR,qGAAqG;YACvG,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE,GAAG,KAAK,uFAAuF;YACxG,UAAU,EACR,mGAAmG;YACrG,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,GAAG,KAAK,wCAAwC;YACzD,UAAU,EACR,uFAAuF;gBACvF,qDAAqD;YACvD,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;IACxD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,gFAAgF;YACzF,UAAU,EACR,qHAAqH;YACvH,OAAO,EAAE,QAAQ;SAClB,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG;QACZ,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE;QAC/E,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,qBAAqB,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE;KAC5F,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,oCAAoC;YAC7C,UAAU,EAAE,iFAAiF;YAC7F,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,mCAAmC;YAC5C,UAAU,EACR,oFAAoF;YACtF,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,oBAAoB,GAAG,kBAAkB,EAAE,CAAC;IAClD,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { HandoffData } from '../types/index.js';
2
+ /** Parse pending (unchecked) acceptance criteria from spec.md content. */
3
+ export declare function extractPendingCriteria(specMd: string, max: number): string[];
4
+ /** Compute age in minutes from a savedAt ISO string. */
5
+ export declare function computeSessionAgeMinutes(savedAt: string): number;
6
+ /** Format the handoff packet from pre-fetched data. Output ≤MAX_CHARS. */
7
+ export declare function buildHandoffText(data: HandoffData): string;
8
+ /** Find and read pending criteria from a spec's spec.md file. */
9
+ export declare function fetchPendingCriteria(projectPath: string, specId: string, max: number): Promise<string[]>;
10
+ //# sourceMappingURL=session-handoff-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-handoff-generator.d.ts","sourceRoot":"","sources":["../../src/engine/session-handoff-generator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrD,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAc5E;AAED,wDAAwD;AACxD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAgC1D;AAMD,iEAAiE;AACjE,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB"}
@@ -0,0 +1,80 @@
1
+ // engine/session-handoff-generator.ts — SPEC-398: Pure helpers for session handoff packet.
2
+ // No storage imports — all data is passed in. Storage fetching is done by the tool handler.
3
+ import { readFile } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ import { glob } from 'glob';
6
+ /** ≤200 tokens budget — ~4 chars/token. Leave buffer for whitespace. */
7
+ const MAX_CHARS = 720;
8
+ // ---------------------------------------------------------------------------
9
+ // Pure helpers (no I/O)
10
+ // ---------------------------------------------------------------------------
11
+ /** Parse pending (unchecked) acceptance criteria from spec.md content. */
12
+ export function extractPendingCriteria(specMd, max) {
13
+ const pending = [];
14
+ for (const line of specMd.split('\n')) {
15
+ if (line.includes('- [ ]')) {
16
+ const text = line.replace(/^.*-\s*\[\s*\]\s*/, '').trim();
17
+ if (text) {
18
+ pending.push(text.slice(0, 65));
19
+ if (pending.length >= max) {
20
+ break;
21
+ }
22
+ }
23
+ }
24
+ }
25
+ return pending;
26
+ }
27
+ /** Compute age in minutes from a savedAt ISO string. */
28
+ export function computeSessionAgeMinutes(savedAt) {
29
+ return Math.floor((Date.now() - new Date(savedAt).getTime()) / 60_000);
30
+ }
31
+ /** Format the handoff packet from pre-fetched data. Output ≤MAX_CHARS. */
32
+ export function buildHandoffText(data) {
33
+ const lines = ['=== PLANU HANDOFF ==='];
34
+ if (data.activeSpec !== null) {
35
+ lines.push(`ACTIVE ${data.activeSpec.id} — ${data.activeSpec.title.slice(0, 45)}`);
36
+ for (const c of data.pendingCriteria) {
37
+ lines.push(` [ ] ${c}`);
38
+ }
39
+ }
40
+ else {
41
+ lines.push('ACTIVE (none)');
42
+ }
43
+ if (data.nextSpec !== null) {
44
+ lines.push(`NEXT ${data.nextSpec.id} — ${data.nextSpec.title.slice(0, 45)}`);
45
+ }
46
+ if (data.gitBranch !== null) {
47
+ const dirtyTag = data.gitStaged > 0 || data.gitModified > 0
48
+ ? ` (${String(data.gitStaged)} staged, ${String(data.gitModified)} modified)`
49
+ : '';
50
+ lines.push(`GIT ${data.gitBranch.slice(0, 45)}${dirtyTag}`);
51
+ }
52
+ if (data.nextStep !== null) {
53
+ lines.push(`STEP ${data.nextStep.slice(0, 80)}`);
54
+ }
55
+ lines.push('=== PASTE AT NEW SESSION START ===');
56
+ const text = lines.join('\n');
57
+ return text.length > MAX_CHARS ? `${text.slice(0, MAX_CHARS)}...` : text;
58
+ }
59
+ // ---------------------------------------------------------------------------
60
+ // I/O helpers (no storage — only filesystem & git)
61
+ // ---------------------------------------------------------------------------
62
+ /** Find and read pending criteria from a spec's spec.md file. */
63
+ export async function fetchPendingCriteria(projectPath, specId, max) {
64
+ try {
65
+ const files = await glob(`planu/specs/${specId}-*/spec.md`, { cwd: projectPath });
66
+ if (files.length === 0) {
67
+ return [];
68
+ }
69
+ const specFile = files[0];
70
+ if (specFile === undefined) {
71
+ return [];
72
+ }
73
+ const content = await readFile(join(projectPath, specFile), 'utf-8');
74
+ return extractPendingCriteria(content, max);
75
+ }
76
+ catch {
77
+ return [];
78
+ }
79
+ }
80
+ //# sourceMappingURL=session-handoff-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-handoff-generator.js","sourceRoot":"","sources":["../../src/engine/session-handoff-generator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import type { ToolResult, GitConfig } from '../../types/index.js';
2
2
  /**
3
- * SPEC-176: Auto-mark implementing specs as done when their git branch is merged to develop.
4
- * Scans all specs in "implementing" status and checks if their gitBranch appears in
5
- * `git branch --merged develop`. Safe to call as best-effort (caller should .catch(() => [])).
3
+ * SPEC-176 / SPEC-399: Auto-mark specs as done when their git branch is merged.
4
+ * Checks both "implementing" and "approved" specs. Matches by:
5
+ * 1. Exact spec.gitBranch (set via MCP create-branch)
6
+ * 2. Pattern: any merged branch containing /SPEC-{id}-/ or /SPEC-{id}$ (manual branches)
7
+ * Falls back to 'main' if 'develop' does not exist.
8
+ * Safe to call best-effort — caller should .catch(() => []).
6
9
  */
7
10
  export declare function autoCompleteSpecs(projectId: string, projectPath: string): Promise<string[]>;
8
11
  export declare function handleCreateBranch(projectId: string, specId: string | undefined, config?: GitConfig): Promise<ToolResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"branch-ops.d.ts","sourceRoot":"","sources":["../../../src/tools/git/branch-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAoC,MAAM,sBAAsB,CAAC;AAkCpG;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBjG;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CA8DrB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CAsDrB;AAQD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CAuHrB;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,UAAU,CA0BZ;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqD/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,UAAU,CAoBZ"}
1
+ {"version":3,"file":"branch-ops.d.ts","sourceRoot":"","sources":["../../../src/tools/git/branch-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAoC,MAAM,sBAAsB,CAAC;AAkCpG;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4CjG;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CA8DrB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CAsDrB;AAQD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CAuHrB;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,UAAU,CA0BZ;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqD/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,UAAU,CAoBZ"}
@@ -19,20 +19,48 @@ function randomSuffix() {
19
19
  .padStart(8, '0');
20
20
  }
21
21
  /**
22
- * SPEC-176: Auto-mark implementing specs as done when their git branch is merged to develop.
23
- * Scans all specs in "implementing" status and checks if their gitBranch appears in
24
- * `git branch --merged develop`. Safe to call as best-effort (caller should .catch(() => [])).
22
+ * SPEC-176 / SPEC-399: Auto-mark specs as done when their git branch is merged.
23
+ * Checks both "implementing" and "approved" specs. Matches by:
24
+ * 1. Exact spec.gitBranch (set via MCP create-branch)
25
+ * 2. Pattern: any merged branch containing /SPEC-{id}-/ or /SPEC-{id}$ (manual branches)
26
+ * Falls back to 'main' if 'develop' does not exist.
27
+ * Safe to call best-effort — caller should .catch(() => []).
25
28
  */
26
29
  export async function autoCompleteSpecs(projectId, projectPath) {
27
- const { stdout } = await git(projectPath, ['branch', '--merged', 'develop']);
28
- const merged = new Set(stdout.split('\n').map((b) => b.replace(/^\*?\s+/, '').trim()));
29
- const specs = (await specStore.listSpecs(projectId)).filter((s) => s.status === 'implementing' && s.gitBranch && merged.has(s.gitBranch));
30
+ // Try develop first, fall back to main
31
+ let mergedOut;
32
+ try {
33
+ const r = await git(projectPath, ['branch', '--merged', 'develop']);
34
+ mergedOut = r.stdout;
35
+ }
36
+ catch {
37
+ const r = await git(projectPath, ['branch', '--merged', 'main']);
38
+ mergedOut = r.stdout;
39
+ }
40
+ const mergedList = mergedOut
41
+ .split('\n')
42
+ .map((b) => b.replace(/^\*?\s+/, '').trim())
43
+ .filter(Boolean);
44
+ const mergedSet = new Set(mergedList);
45
+ /** Returns true if the spec's branch (exact or by ID pattern) appears in merged branches. */
46
+ function isMerged(specId, gitBranch) {
47
+ if (gitBranch && mergedSet.has(gitBranch)) {
48
+ return true;
49
+ }
50
+ const num = /SPEC-(\d+)/i.exec(specId)?.[1];
51
+ if (!num) {
52
+ return false;
53
+ }
54
+ const pat = new RegExp(`[/\\-]SPEC-${num}([/\\-]|$)`, 'i');
55
+ return mergedList.some((b) => pat.test(b));
56
+ }
57
+ const specs = (await specStore.listSpecs(projectId)).filter((s) => (s.status === 'implementing' || s.status === 'approved') && isMerged(s.id, s.gitBranch));
30
58
  const completed = [];
31
59
  for (const spec of specs) {
32
60
  const existingNotes = spec.reviewNotes ?? [];
33
61
  await specStore.updateSpec(projectId, spec.id, {
34
62
  status: 'done',
35
- reviewNotes: [...existingNotes, 'Auto-completed: branch merged to develop'],
63
+ reviewNotes: [...existingNotes, 'Auto-completed: branch merged'],
36
64
  });
37
65
  completed.push(spec.id);
38
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"branch-ops.js","sourceRoot":"","sources":["../../../src/tools/git/branch-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-ops.js","sourceRoot":"","sources":["../../../src/tools/git/branch-ops.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-session-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-session-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0C5D"}
1
+ {"version":3,"file":"register-session-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-session-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwD5D"}
@@ -1,11 +1,20 @@
1
1
  // tools/register-session-tools.ts — Registers session persistence tools (SPEC-081)
2
2
  // Tools: restore_session, list_sessions, export_session
3
- import { RestoreSessionSchema, ListSessionsSchema, ExportSessionSchema, } from './schemas/session.js';
3
+ import { SessionHandoffSchema, RestoreSessionSchema, ListSessionsSchema, ExportSessionSchema, } from './schemas/session.js';
4
+ import { handleSessionHandoff } from './session-handoff.js';
4
5
  import { handleRestoreSession } from './restore-session.js';
5
6
  import { handleListSessions } from './list-sessions.js';
6
7
  import { handleExportSession } from './export-session.js';
7
- import { safeLicensed } from './safe-handler.js';
8
+ import { safeLicensed, safeTracked } from './safe-handler.js';
8
9
  export function registerSessionTools(server) {
10
+ // session_handoff (SPEC-398)
11
+ server.registerTool('session_handoff', {
12
+ description: 'Generate a compact (≤200-token) session handoff packet to paste at the start of a fresh Claude session. ' +
13
+ 'Shows active spec + pending criteria, next queued spec, git branch state, and the next action step. ' +
14
+ 'Use before closing a session that has been inactive for ~1 hour to avoid expensive context resumption.',
15
+ inputSchema: SessionHandoffSchema,
16
+ annotations: { readOnlyHint: true },
17
+ }, safeTracked('session_handoff', async (args) => handleSessionHandoff(args)));
9
18
  // restore_session (AC-05)
10
19
  server.registerTool('restore_session', {
11
20
  description: 'Restore a previous session to recover context (active specs, decisions, modified files). ' +
@@ -1 +1 @@
1
- {"version":3,"file":"register-session-tools.js","sourceRoot":"","sources":["../../src/tools/register-session-tools.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wDAAwD;AAGxD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,2FAA2F;YAC3F,iEAAiE;YACjE,8DAA8D;QAChE,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAC5E,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,wDAAwD;YACxD,4EAA4E;YAC5E,+BAA+B;QACjC,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CACxE,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,oFAAoF;YACpF,wFAAwF;YACxF,+DAA+D;QACjE,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"register-session-tools.js","sourceRoot":"","sources":["../../src/tools/register-session-tools.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wDAAwD;AAGxD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,0GAA0G;YAC1G,sGAAsG;YACtG,wGAAwG;QAC1G,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,WAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAC3E,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,2FAA2F;YAC3F,iEAAiE;YACjE,8DAA8D;QAChE,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAC5E,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,wDAAwD;YACxD,4EAA4E;YAC5E,+BAA+B;QACjC,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CACxE,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,oFAAoF;YACpF,wFAAwF;YACxF,+DAA+D;QACjE,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC"}
@@ -3,6 +3,10 @@ export declare const SessionFormatEnum: z.ZodEnum<{
3
3
  markdown: "markdown";
4
4
  json: "json";
5
5
  }>;
6
+ export declare const SessionHandoffSchema: {
7
+ readonly projectPath: z.ZodString;
8
+ readonly projectId: z.ZodOptional<z.ZodString>;
9
+ };
6
10
  export declare const RestoreSessionSchema: {
7
11
  readonly projectPath: z.ZodString;
8
12
  readonly sessionId: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;EAEe,CAAC;AAE9C,eAAO,MAAM,oBAAoB;;;CAOvB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;CAUtB,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;EAEe,CAAC;AAE9C,eAAO,MAAM,oBAAoB;;;CAOvB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;CAOvB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;CAUtB,CAAC"}
@@ -3,6 +3,14 @@ import { z } from 'zod';
3
3
  export const SessionFormatEnum = z
4
4
  .enum(['markdown', 'json'])
5
5
  .describe('Export format: markdown | json');
6
+ export const SessionHandoffSchema = {
7
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root'),
8
+ projectId: z
9
+ .string()
10
+ .max(500)
11
+ .optional()
12
+ .describe('Project ID hash. Derived from projectPath if omitted.'),
13
+ };
6
14
  export const RestoreSessionSchema = {
7
15
  projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root'),
8
16
  sessionId: z
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/tools/schemas/session.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KAC1B,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;CAC1E,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpE,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC3C,mDAAmD,CACpD;CACO,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/tools/schemas/session.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KAC1B,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;CAC5D,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;CAC1E,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpE,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC3C,mDAAmD,CACpD;CACO,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolResult, SessionHandoffInput } from '../types/index.js';
2
+ export declare function handleSessionHandoff(args: SessionHandoffInput): Promise<ToolResult>;
3
+ //# sourceMappingURL=session-handoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-handoff.d.ts","sourceRoot":"","sources":["../../src/tools/session-handoff.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAe,MAAM,mBAAmB,CAAC;AAiCtF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CA4BzF"}
@@ -0,0 +1,51 @@
1
+ import { hashProjectPath } from '../storage/base-store.js';
2
+ import { listSpecs } from '../storage/spec-store.js';
3
+ import { loadSessionState } from '../storage/session-state-store.js';
4
+ import { buildHandoffText, fetchPendingCriteria } from '../engine/session-handoff-generator.js';
5
+ import { execFile as execFileCb } from 'node:child_process';
6
+ import { promisify } from 'node:util';
7
+ const execFile = promisify(execFileCb);
8
+ async function getGitInfo(projectPath) {
9
+ try {
10
+ const [statusResult, branchResult] = await Promise.all([
11
+ execFile('git', ['status', '--short'], { cwd: projectPath }),
12
+ execFile('git', ['rev-parse', '--abbrev-ref', 'HEAD'], { cwd: projectPath }),
13
+ ]);
14
+ const lines = statusResult.stdout.trim().split('\n').filter(Boolean);
15
+ const staged = lines.filter((l) => {
16
+ const ch = l[0];
17
+ return ch !== ' ' && ch !== '?';
18
+ }).length;
19
+ const modified = lines.filter((l) => {
20
+ const ch = l[1];
21
+ return ch !== ' ' && ch !== '?';
22
+ }).length;
23
+ return { branch: branchResult.stdout.trim(), staged, modified };
24
+ }
25
+ catch {
26
+ return { branch: null, staged: 0, modified: 0 };
27
+ }
28
+ }
29
+ export async function handleSessionHandoff(args) {
30
+ const projectId = args.projectId ?? hashProjectPath(args.projectPath);
31
+ const [specs, sessionState, gitInfo] = await Promise.all([
32
+ /* v8 ignore next */ listSpecs(projectId).catch(() => []),
33
+ /* v8 ignore next */ loadSessionState(args.projectPath).catch(() => null),
34
+ getGitInfo(args.projectPath),
35
+ ]);
36
+ const activeSpec = specs.find((s) => s.status === 'implementing' || s.status === 'review') ?? null;
37
+ const nextSpec = specs.find((s) => s.status === 'approved') ?? null;
38
+ const pendingCriteria = activeSpec !== null ? await fetchPendingCriteria(args.projectPath, activeSpec.id, 3) : [];
39
+ const data = {
40
+ activeSpec: activeSpec !== null ? { id: activeSpec.id, title: activeSpec.title } : null,
41
+ nextSpec: nextSpec !== null ? { id: nextSpec.id, title: nextSpec.title } : null,
42
+ pendingCriteria,
43
+ gitBranch: gitInfo.branch,
44
+ gitStaged: gitInfo.staged,
45
+ gitModified: gitInfo.modified,
46
+ nextStep: sessionState?.nextSteps[0] ?? null,
47
+ };
48
+ const text = buildHandoffText(data);
49
+ return { content: [{ type: 'text', text }] };
50
+ }
51
+ //# sourceMappingURL=session-handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-handoff.js","sourceRoot":"","sources":["../../src/tools/session-handoff.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status-handler.d.ts","sourceRoot":"","sources":["../../src/tools/status-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAoN3B,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAkDjF"}
1
+ {"version":3,"file":"status-handler.d.ts","sourceRoot":"","sources":["../../src/tools/status-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AA4N3B,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA+DjF"}
@@ -6,6 +6,8 @@ import { join } from 'node:path';
6
6
  import { readFile } from 'node:fs/promises';
7
7
  import { shouldSuggestBtw, buildBtwHint } from '../engine/context-advisor/btw-advisor.js';
8
8
  import { autoCompleteSpecs } from './git/branch-ops.js';
9
+ import { computeSessionAgeMinutes } from '../engine/session-handoff-generator.js';
10
+ import { loadSessionState } from '../storage/session-state-store.js';
9
11
  import { consumeUpdateBanner } from '../engine/update-notifier.js';
10
12
  import { getPolicy, getRecords } from '../storage/approval-store.js';
11
13
  import { calculateSLAStatus } from '../engine/approval-workflow.js';
@@ -118,7 +120,7 @@ function buildSuggestion(snapshot) {
118
120
  // Output builder
119
121
  // ---------------------------------------------------------------------------
120
122
  function buildOutput(params) {
121
- const { snapshot, git, ci, slaBreaches, workMode, updateBanner, autoCompleted } = params;
123
+ const { snapshot, git, ci, slaBreaches, workMode, updateBanner, autoCompleted, sessionTip } = params;
122
124
  const lines = ['Planu Status', '━━━━━━━━━━━━━━━'];
123
125
  if (snapshot.active !== null) {
124
126
  const title = snapshot.active.title.slice(0, 40);
@@ -150,6 +152,9 @@ function buildOutput(params) {
150
152
  if (autoCompleted !== undefined && autoCompleted.length > 0) {
151
153
  lines.push(`AUTO-DONE ${autoCompleted.join(', ')} (branch merged to develop)`);
152
154
  }
155
+ if (sessionTip !== undefined) {
156
+ lines.push(`SESSION TIP ${sessionTip}`);
157
+ }
153
158
  lines.push(`SUGGEST ${buildSuggestion(snapshot)}`);
154
159
  if (workMode !== undefined) {
155
160
  lines.push(`WORK MODE ${workMode}`);
@@ -166,14 +171,20 @@ function buildOutput(params) {
166
171
  export async function handlePlanStatus(args) {
167
172
  const projectId = args.projectId ?? hashProjectPath(args.projectPath);
168
173
  const planuConfigPath = join(args.projectPath, 'planu.json');
169
- const [snapshot, git, ci, slaBreaches, planuConfig, autoCompleted] = await Promise.all([
174
+ const [snapshot, git, ci, slaBreaches, planuConfig, autoCompleted, sessionState] = await Promise.all([
170
175
  getStatusSpecSnapshot(projectId),
171
176
  getGitState(args.projectPath),
172
177
  getCiState(args.projectPath),
173
178
  getSLABreaches(projectId),
174
179
  readPlanuConfig(planuConfigPath, readFile),
175
180
  autoCompleteSpecs(projectId, args.projectPath).catch(() => []),
181
+ loadSessionState(args.projectPath).catch(() => null),
176
182
  ]);
183
+ const sessionAgeMinutes = sessionState !== null ? computeSessionAgeMinutes(sessionState.savedAt) : null;
184
+ const SESSION_TIP_THRESHOLD_MIN = 60;
185
+ const sessionTip = sessionAgeMinutes !== null && sessionAgeMinutes > SESSION_TIP_THRESHOLD_MIN
186
+ ? `Last checkpoint ${String(sessionAgeMinutes)}min ago — run session_handoff then start a fresh session to cut token costs`
187
+ : undefined;
177
188
  const workMode = planuConfig?.workMode;
178
189
  const updateBanner = consumeUpdateBanner() ?? undefined;
179
190
  const text = buildOutput({
@@ -184,6 +195,7 @@ export async function handlePlanStatus(args) {
184
195
  workMode,
185
196
  updateBanner,
186
197
  autoCompleted,
198
+ sessionTip,
187
199
  });
188
200
  // SPEC-256: Always show /btw hint as educational tip (no context percent available from MCP layer)
189
201
  const DEMO_CONTEXT_PERCENT = 65;
@@ -203,6 +215,7 @@ export async function handlePlanStatus(args) {
203
215
  slaBreaches: slaBreaches.length > 0 ? slaBreaches : undefined,
204
216
  workMode: workMode ?? 'standard',
205
217
  ...(autoCompleted.length > 0 ? { autoCompleted } : {}),
218
+ ...(sessionTip !== undefined ? { sessionTip } : {}),
206
219
  ...(btwHint !== undefined ? { btw_hint: btwHint } : {}),
207
220
  ...(updateBanner !== undefined ? { update_banner: updateBanner } : {}),
208
221
  },
@@ -1 +1 @@
1
- {"version":3,"file":"status-handler.js","sourceRoot":"","sources":["../../src/tools/status-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-handler.js","sourceRoot":"","sources":["../../src/tools/status-handler.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,24 @@
1
+ /** Data required to build a session handoff packet (SPEC-398). */
2
+ export interface HandoffData {
3
+ activeSpec: {
4
+ id: string;
5
+ title: string;
6
+ } | null;
7
+ nextSpec: {
8
+ id: string;
9
+ title: string;
10
+ } | null;
11
+ pendingCriteria: string[];
12
+ gitBranch: string | null;
13
+ gitStaged: number;
14
+ gitModified: number;
15
+ nextStep: string | null;
16
+ }
17
+ /** Input for the session_handoff tool (SPEC-398). */
18
+ export interface SessionHandoffInput {
19
+ projectPath: string;
20
+ projectId?: string;
21
+ }
1
22
  /** Input for the session_checkpoint tool. */
2
23
  export interface SessionCheckpointInput {
3
24
  projectPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"session-checkpoint.d.ts","sourceRoot":"","sources":["../../src/types/session-checkpoint.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"session-checkpoint.d.ts","sourceRoot":"","sources":["../../src/types/session-checkpoint.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -1,3 +1,3 @@
1
- // types/session-checkpoint.ts — Session checkpoint state types (SPEC-220).
1
+ // types/session-checkpoint.ts — Session checkpoint state types (SPEC-220, SPEC-398).
2
2
  export {};
3
3
  //# sourceMappingURL=session-checkpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-checkpoint.js","sourceRoot":"","sources":["../../src/types/session-checkpoint.ts"],"names":[],"mappings":"AAAA,2EAA2E"}
1
+ {"version":3,"file":"session-checkpoint.js","sourceRoot":"","sources":["../../src/types/session-checkpoint.ts"],"names":[],"mappings":"AAAA,qFAAqF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planu/cli",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "Planu — MCP Server for Spec Driven Development. Manages specs, estimations, reverse engineering, and auto-learning across any language/framework.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -74,6 +74,7 @@
74
74
  "search_specs",
75
75
  "search_suggestions",
76
76
  "session_checkpoint",
77
+ "session_handoff",
77
78
  "set_locale",
78
79
  "set_work_mode",
79
80
  "skill_install",