@slope-dev/slope 1.63.0 → 1.64.1

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 (152) hide show
  1. package/dist/cli/commands/claim.d.ts.map +1 -1
  2. package/dist/cli/commands/claim.js +57 -1
  3. package/dist/cli/commands/claim.js.map +1 -1
  4. package/dist/cli/commands/guard.d.ts.map +1 -1
  5. package/dist/cli/commands/guard.js +43 -14
  6. package/dist/cli/commands/guard.js.map +1 -1
  7. package/dist/cli/commands/init.d.ts.map +1 -1
  8. package/dist/cli/commands/init.js +3 -2
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/commands/now.d.ts.map +1 -1
  11. package/dist/cli/commands/now.js +5 -2
  12. package/dist/cli/commands/now.js.map +1 -1
  13. package/dist/cli/commands/pr.d.ts +10 -3
  14. package/dist/cli/commands/pr.d.ts.map +1 -1
  15. package/dist/cli/commands/pr.js +45 -5
  16. package/dist/cli/commands/pr.js.map +1 -1
  17. package/dist/cli/commands/retro.d.ts.map +1 -1
  18. package/dist/cli/commands/retro.js +31 -4
  19. package/dist/cli/commands/retro.js.map +1 -1
  20. package/dist/cli/commands/review.d.ts +13 -1
  21. package/dist/cli/commands/review.d.ts.map +1 -1
  22. package/dist/cli/commands/review.js +99 -8
  23. package/dist/cli/commands/review.js.map +1 -1
  24. package/dist/cli/commands/roadmap.d.ts.map +1 -1
  25. package/dist/cli/commands/roadmap.js +75 -22
  26. package/dist/cli/commands/roadmap.js.map +1 -1
  27. package/dist/cli/commands/session.d.ts.map +1 -1
  28. package/dist/cli/commands/session.js +81 -15
  29. package/dist/cli/commands/session.js.map +1 -1
  30. package/dist/cli/commands/sprint.d.ts.map +1 -1
  31. package/dist/cli/commands/sprint.js +24 -6
  32. package/dist/cli/commands/sprint.js.map +1 -1
  33. package/dist/cli/commands/standup.d.ts.map +1 -1
  34. package/dist/cli/commands/standup.js +68 -0
  35. package/dist/cli/commands/standup.js.map +1 -1
  36. package/dist/cli/commands/status.d.ts.map +1 -1
  37. package/dist/cli/commands/status.js +25 -0
  38. package/dist/cli/commands/status.js.map +1 -1
  39. package/dist/cli/commands/transcript.d.ts.map +1 -1
  40. package/dist/cli/commands/transcript.js +15 -4
  41. package/dist/cli/commands/transcript.js.map +1 -1
  42. package/dist/cli/commands/validate.d.ts +11 -0
  43. package/dist/cli/commands/validate.d.ts.map +1 -1
  44. package/dist/cli/commands/validate.js +45 -5
  45. package/dist/cli/commands/validate.js.map +1 -1
  46. package/dist/cli/guards/claim-area.d.ts +27 -0
  47. package/dist/cli/guards/claim-area.d.ts.map +1 -0
  48. package/dist/cli/guards/claim-area.js +44 -0
  49. package/dist/cli/guards/claim-area.js.map +1 -0
  50. package/dist/cli/guards/claim-required.d.ts.map +1 -1
  51. package/dist/cli/guards/claim-required.js +41 -14
  52. package/dist/cli/guards/claim-required.js.map +1 -1
  53. package/dist/cli/guards/docs.d.ts.map +1 -1
  54. package/dist/cli/guards/docs.js +7 -0
  55. package/dist/cli/guards/docs.js.map +1 -1
  56. package/dist/cli/guards/phase-boundary.d.ts.map +1 -1
  57. package/dist/cli/guards/phase-boundary.js +34 -1
  58. package/dist/cli/guards/phase-boundary.js.map +1 -1
  59. package/dist/cli/guards/plan-analysis.d.ts +2 -2
  60. package/dist/cli/guards/plan-analysis.d.ts.map +1 -1
  61. package/dist/cli/guards/plan-analysis.js +16 -2
  62. package/dist/cli/guards/plan-analysis.js.map +1 -1
  63. package/dist/cli/guards/pr-review.d.ts +0 -8
  64. package/dist/cli/guards/pr-review.d.ts.map +1 -1
  65. package/dist/cli/guards/pr-review.js +31 -0
  66. package/dist/cli/guards/pr-review.js.map +1 -1
  67. package/dist/cli/guards/scope-drift.d.ts.map +1 -1
  68. package/dist/cli/guards/scope-drift.js +2 -4
  69. package/dist/cli/guards/scope-drift.js.map +1 -1
  70. package/dist/cli/guards/shell-write.d.ts +23 -0
  71. package/dist/cli/guards/shell-write.d.ts.map +1 -0
  72. package/dist/cli/guards/shell-write.js +81 -0
  73. package/dist/cli/guards/shell-write.js.map +1 -0
  74. package/dist/cli/guards/sprint-completion.js +11 -5
  75. package/dist/cli/guards/sprint-completion.js.map +1 -1
  76. package/dist/cli/guards/workflow-step-gate.d.ts.map +1 -1
  77. package/dist/cli/guards/workflow-step-gate.js +28 -3
  78. package/dist/cli/guards/workflow-step-gate.js.map +1 -1
  79. package/dist/cli/guards/worktree-check.d.ts.map +1 -1
  80. package/dist/cli/guards/worktree-check.js +86 -52
  81. package/dist/cli/guards/worktree-check.js.map +1 -1
  82. package/dist/cli/index.js +2 -1
  83. package/dist/cli/index.js.map +1 -1
  84. package/dist/cli/loop/workflow-adapter.d.ts.map +1 -1
  85. package/dist/cli/loop/workflow-adapter.js +3 -0
  86. package/dist/cli/loop/workflow-adapter.js.map +1 -1
  87. package/dist/cli/registry.d.ts.map +1 -1
  88. package/dist/cli/registry.js +2 -0
  89. package/dist/cli/registry.js.map +1 -1
  90. package/dist/cli/roadmap-source-store.d.ts +27 -1
  91. package/dist/cli/roadmap-source-store.d.ts.map +1 -1
  92. package/dist/cli/roadmap-source-store.js +213 -22
  93. package/dist/cli/roadmap-source-store.js.map +1 -1
  94. package/dist/cli/session-scope.d.ts +35 -0
  95. package/dist/cli/session-scope.d.ts.map +1 -0
  96. package/dist/cli/session-scope.js +79 -0
  97. package/dist/cli/session-scope.js.map +1 -0
  98. package/dist/cli/session-state.d.ts.map +1 -1
  99. package/dist/cli/session-state.js +5 -2
  100. package/dist/cli/session-state.js.map +1 -1
  101. package/dist/cli/sprint-rollover.d.ts +17 -2
  102. package/dist/cli/sprint-rollover.d.ts.map +1 -1
  103. package/dist/cli/sprint-rollover.js +163 -40
  104. package/dist/cli/sprint-rollover.js.map +1 -1
  105. package/dist/cli/sprint-state.d.ts +18 -0
  106. package/dist/cli/sprint-state.d.ts.map +1 -1
  107. package/dist/cli/sprint-state.js +26 -0
  108. package/dist/cli/sprint-state.js.map +1 -1
  109. package/dist/cli/template-generator.d.ts.map +1 -1
  110. package/dist/cli/template-generator.js +1 -0
  111. package/dist/cli/template-generator.js.map +1 -1
  112. package/dist/cli/workflow-resync.d.ts +5 -2
  113. package/dist/cli/workflow-resync.d.ts.map +1 -1
  114. package/dist/cli/workflow-resync.js +28 -0
  115. package/dist/cli/workflow-resync.js.map +1 -1
  116. package/dist/core/config.d.ts +3 -0
  117. package/dist/core/config.d.ts.map +1 -1
  118. package/dist/core/config.js.map +1 -1
  119. package/dist/core/formatter.js +4 -4
  120. package/dist/core/formatter.js.map +1 -1
  121. package/dist/core/guard.d.ts +1 -1
  122. package/dist/core/guard.d.ts.map +1 -1
  123. package/dist/core/guard.js +9 -0
  124. package/dist/core/guard.js.map +1 -1
  125. package/dist/core/index.d.ts +7 -3
  126. package/dist/core/index.d.ts.map +1 -1
  127. package/dist/core/index.js +4 -2
  128. package/dist/core/index.js.map +1 -1
  129. package/dist/core/roadmap-source-patch.d.ts +26 -0
  130. package/dist/core/roadmap-source-patch.d.ts.map +1 -0
  131. package/dist/core/roadmap-source-patch.js +172 -0
  132. package/dist/core/roadmap-source-patch.js.map +1 -0
  133. package/dist/core/roadmap-sources.d.ts +44 -0
  134. package/dist/core/roadmap-sources.d.ts.map +1 -1
  135. package/dist/core/roadmap-sources.js +235 -37
  136. package/dist/core/roadmap-sources.js.map +1 -1
  137. package/dist/core/roadmap.d.ts +50 -1
  138. package/dist/core/roadmap.d.ts.map +1 -1
  139. package/dist/core/roadmap.js +72 -6
  140. package/dist/core/roadmap.js.map +1 -1
  141. package/dist/core/sprint-id.d.ts +29 -0
  142. package/dist/core/sprint-id.d.ts.map +1 -0
  143. package/dist/core/sprint-id.js +86 -0
  144. package/dist/core/sprint-id.js.map +1 -0
  145. package/dist/core/standup.d.ts +18 -0
  146. package/dist/core/standup.d.ts.map +1 -1
  147. package/dist/core/standup.js +23 -1
  148. package/dist/core/standup.js.map +1 -1
  149. package/package.json +4 -2
  150. package/templates/claude-code/commands/wrap-session.md +36 -0
  151. package/templates/codex/plugins/slope/.codex-plugin/plugin.json +1 -1
  152. package/templates/pi/skills/wrap-session.md +41 -0
@@ -13,16 +13,42 @@ export interface RoadmapSourceStore {
13
13
  export declare function resolveRoadmapSourceManifest(cwd: string, sourceFlag?: string): string;
14
14
  export declare function hasModularRoadmapSources(cwd: string, sourceFlag?: string): boolean;
15
15
  export declare function loadRoadmapSourceStore(cwd: string, sourceFlag?: string): RoadmapSourceStore;
16
- export declare function writeRoadmapSourceProjection(store: RoadmapSourceStore): 'written' | 'unchanged';
16
+ export interface WriteRoadmapProjectionOptions {
17
+ /** Overwrite even when the on-disk projection holds content no source produces. */
18
+ force?: boolean;
19
+ }
20
+ export declare function writeRoadmapSourceProjection(store: RoadmapSourceStore, options?: WriteRoadmapProjectionOptions): 'written' | 'unchanged';
21
+ /**
22
+ * Refuse to silently discard authored content that exists only in the projection.
23
+ *
24
+ * `slope validate` regenerated the projection as a side effect and reported
25
+ * success, so a phase, six sprints and 26 tickets edited into the generated file
26
+ * vanished with no error, no warning and no diff — and it reproduced across
27
+ * operators, because nothing in the file said it was generated (GH #637).
28
+ */
29
+ export declare function assertNoProjectionContentLoss(store: RoadmapSourceStore, existing: string): void;
17
30
  export interface CompleteRoadmapSourceSprintResult {
18
31
  source: string;
19
32
  projection: 'written' | 'unchanged';
20
33
  changed: boolean;
34
+ /** True when the source could not be patched surgically and was rewritten in canonical style. */
35
+ reformatted?: boolean;
36
+ /**
37
+ * Set when the sprint holds a scorecard but its authored status is a deliberate
38
+ * non-complete disposition (absorbed, blocked, ...). Reconciliation refuses to
39
+ * overwrite it — a scorecard records how a sprint was played, not whether it
40
+ * completed (GH #660). The authored status is reported so the caller can surface
41
+ * the mismatch; nothing is written.
42
+ */
43
+ skipped?: 'status_conflict';
44
+ /** The authored status that blocked auto-promotion, when skipped. */
45
+ authoredStatus?: string;
21
46
  }
22
47
  export declare function completeRoadmapSourceSprint(cwd: string, sprint: number, options?: {
23
48
  sourceFlag?: string;
24
49
  scorecardPath?: string;
25
50
  dryRun?: boolean;
51
+ force?: boolean;
26
52
  }): CompleteRoadmapSourceSprintResult;
27
53
  /**
28
54
  * Compare a checked-out generated projection with canonical generated bytes.
@@ -1 +1 @@
1
- {"version":3,"file":"roadmap-source-store.d.ts","sourceRoot":"","sources":["../../src/cli/roadmap-source-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAUL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EACnC,MAAM,kBAAkB,CAAC;AAI1B,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAsBD,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAErF;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAkC3F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,GAAG,WAAW,CAgB/F;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,SAAS,GAAG,WAAW,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9E,iCAAiC,CAmDnC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,MAAM,WAAW,mCAAmC;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,mCAAwC,GAChD,6BAA6B,CAsF/B;AAWD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAgBD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,GACd,wBAAwB,CA8E1B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,wBAAwB,GAC7B,IAAI,CAuCN"}
1
+ {"version":3,"file":"roadmap-source-store.d.ts","sourceRoot":"","sources":["../../src/cli/roadmap-source-store.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,24 @@
1
1
  import { existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, statSync, unlinkSync } from 'node:fs';
2
2
  import { basename, dirname, isAbsolute, join, relative, resolve } from 'node:path';
3
3
  import { stringify } from 'yaml';
4
- import { compileRoadmapSources, normalizeDiagnosticPath, parseRoadmapSourceDocument, parseRoadmapSourceProject, parseSprintNumber, roadmapSprintOrderValue, RoadmapSourceError, serializeRoadmapProjection, validateRoadmapSourceFederation, } from '../core/index.js';
4
+ import { compileRoadmapSources, formatRoadmapSprintLabel, normalizeDiagnosticPath, normalizeRoadmapSourcePath, parseRoadmapSourceDocument, parseRoadmapSourceProject, parseSprintNumber, roadmapSprintOrderValue, RoadmapSourceError, serializeRoadmapProjection, findRoadmapProjectionDivergence, withRoadmapProjectionMarker, stripRoadmapProjectionMarker, validateRoadmapSourceFederation, } from '../core/index.js';
5
5
  import { atomicWriteFileSync, withFileLockSync } from './atomic-write.js';
6
6
  import { loadConfig } from './config.js';
7
+ import { patchRoadmapSourceSprintText } from '../core/roadmap-source-patch.js';
8
+ /** Deterministic JSON with sorted keys, for order-insensitive semantic comparison. */
9
+ function stableJson(value) {
10
+ return JSON.stringify(sortKeysDeep(value));
11
+ }
12
+ function sortKeysDeep(value) {
13
+ if (Array.isArray(value))
14
+ return value.map(sortKeysDeep);
15
+ if (value && typeof value === 'object') {
16
+ return Object.fromEntries(Object.entries(value)
17
+ .sort(([a], [b]) => a.localeCompare(b))
18
+ .map(([key, entry]) => [key, sortKeysDeep(entry)]));
19
+ }
20
+ return value;
21
+ }
7
22
  export const DEFAULT_ROADMAP_SOURCE_MANIFEST = 'docs/roadmap/project.yaml';
8
23
  function ensureWithin(root, path, label) {
9
24
  const resolvedRoot = resolve(root);
@@ -61,7 +76,7 @@ export function loadRoadmapSourceStore(cwd, sourceFlag) {
61
76
  const projection = serializeRoadmapProjection(roadmap);
62
77
  return { cwd, manifestPath, sourceRoot, outputPath, project, sources, roadmap, projection };
63
78
  }
64
- export function writeRoadmapSourceProjection(store) {
79
+ export function writeRoadmapSourceProjection(store, options = {}) {
65
80
  const federationLock = join(store.sourceRoot, '.federation');
66
81
  return withFileLockSync(federationLock, () => {
67
82
  const fresh = loadRoadmapSourceStore(store.cwd, relative(store.cwd, store.manifestPath));
@@ -73,43 +88,205 @@ export function writeRoadmapSourceProjection(store) {
73
88
  ].join('\n'));
74
89
  }
75
90
  const existing = existsSync(fresh.outputPath) ? readFileSync(fresh.outputPath, 'utf8') : null;
76
- if (existing != null && roadmapProjectionMatches(existing, fresh.projection))
91
+ const desired = projectionBytesForWrite(fresh);
92
+ // Compare the exact bytes we would write, not marker-stripped content. A file
93
+ // whose content is current but whose marker is missing — one written by the
94
+ // migration path, or before the marker existed — must still be rewritten so
95
+ // it gains the warning (GH #644).
96
+ if (existing != null && existing.replace(/\r\n/g, '\n') === desired.replace(/\r\n/g, '\n')) {
77
97
  return 'unchanged';
78
- atomicWriteFileSync(fresh.outputPath, fresh.projection);
98
+ }
99
+ if (existing != null && !options.force)
100
+ assertNoProjectionContentLoss(fresh, existing);
101
+ atomicWriteFileSync(fresh.outputPath, desired);
79
102
  return 'written';
80
103
  });
81
104
  }
105
+ /**
106
+ * Refuse to silently discard authored content that exists only in the projection.
107
+ *
108
+ * `slope validate` regenerated the projection as a side effect and reported
109
+ * success, so a phase, six sprints and 26 tickets edited into the generated file
110
+ * vanished with no error, no warning and no diff — and it reproduced across
111
+ * operators, because nothing in the file said it was generated (GH #637).
112
+ */
113
+ export function assertNoProjectionContentLoss(store, existing) {
114
+ const divergence = findRoadmapProjectionDivergence(existing, store.roadmap);
115
+ if (!divergence)
116
+ return;
117
+ const target = normalizeDiagnosticPath(relative(store.cwd, store.outputPath));
118
+ const manifest = normalizeDiagnosticPath(relative(store.cwd, store.manifestPath));
119
+ const lines = [
120
+ `Refusing to overwrite ${target}: it contains planning work that no roadmap source produces.`,
121
+ `${target} is a GENERATED projection of ${manifest}. Rewriting it would discard:`,
122
+ ];
123
+ if (divergence.phases.length > 0) {
124
+ lines.push(` phases: ${divergence.phases.join(', ')}`);
125
+ }
126
+ if (divergence.sprints.length > 0) {
127
+ lines.push(` sprints: ${divergence.sprints.map(id => `S${id}`).join(', ')}`);
128
+ }
129
+ lines.push('', 'Move this work into the modular sources under docs/roadmap/, then re-run', '`slope roadmap compile`. To discard it deliberately, re-run with --force.');
130
+ const error = new RoadmapSourceError(lines.join('\n'));
131
+ error.projectionContentLoss = true;
132
+ throw error;
133
+ }
134
+ /**
135
+ * Statuses from which a scorecard legitimately means "now complete" — the normal
136
+ * closeout path (a planned/active sprint gets run and scored). Every other status
137
+ * is a deliberate disposition (absorbed, blocked, deferred, superseded, cancelled,
138
+ * skipped) that a scorecard must never override (GH #660).
139
+ */
140
+ const PROMOTABLE_TO_COMPLETE = new Set(['', 'planned', 'active', 'in_progress', 'ready_for_pr']);
141
+ /**
142
+ * Normalize a scorecard reference the same way the source parser will, so the
143
+ * post-patch invariant compares like with like (e.g. `./docs/x.json` becomes
144
+ * `docs/x.json` on reparse). Paths the parser would reject keep their
145
+ * diagnostic form; post-write federation validation reports them.
146
+ */
147
+ function normalizeScorecardRef(path) {
148
+ const diagnostic = normalizeDiagnosticPath(path);
149
+ try {
150
+ return normalizeRoadmapSourcePath(diagnostic, 'scorecard path');
151
+ }
152
+ catch {
153
+ return diagnostic;
154
+ }
155
+ }
156
+ /**
157
+ * Resolve a sprint number to the single source entry that owns it, comparing
158
+ * by canonical sprint label so legacy encoded ids (235 ~ S23.5) still match
159
+ * while decimal neighbours (458.1 vs 458.2) never do. Label comparison is
160
+ * string-exact, so float representation drift cannot widen the match. (#618)
161
+ */
162
+ function findRoadmapSourceSprint(store, sprint) {
163
+ const targetLabel = formatRoadmapSprintLabel(store.roadmap, sprint);
164
+ const matches = [];
165
+ for (const source of store.sources) {
166
+ for (const item of source.document.sprints) {
167
+ if (formatRoadmapSprintLabel(store.roadmap, item.id) === targetLabel) {
168
+ matches.push({ source, storedId: item.id, status: item.status });
169
+ }
170
+ }
171
+ }
172
+ if (matches.length === 0) {
173
+ // Name the cause: the projection is generated, so a sprint present only there
174
+ // is invisible to reconciliation and will be dropped on the next compile. The
175
+ // bare "not found" wording read as a per-sprint nit rather than a data warning
176
+ // (GH #644, #637 fix 4).
177
+ throw new RoadmapSourceError(`Sprint ${targetLabel} was not found in modular roadmap sources. `
178
+ + 'The compiled roadmap projection is generated from these sources, so a sprint that exists only in the projection is not tracked and will be dropped on the next compile. Add it under docs/roadmap/.', store.manifestPath);
179
+ }
180
+ if (matches.length > 1) {
181
+ const locations = matches.map(match => `${match.source.entry.path} (id: ${match.storedId})`).join(', ');
182
+ throw new RoadmapSourceError(`Sprint ${targetLabel} resolves to ${matches.length} roadmap source entries (${locations}); refusing to reconcile an ambiguous identity.`, store.manifestPath);
183
+ }
184
+ return matches[0];
185
+ }
82
186
  export function completeRoadmapSourceSprint(cwd, sprint, options = {}) {
83
187
  const initial = loadRoadmapSourceStore(cwd, options.sourceFlag);
84
- const owner = initial.sources.find(source => source.document.sprints.some(item => item.id === sprint));
85
- if (!owner) {
86
- throw new RoadmapSourceError(`Sprint S${sprint} was not found in modular roadmap sources.`, initial.manifestPath);
87
- }
188
+ const initialMatch = findRoadmapSourceSprint(initial, sprint);
189
+ const owner = initialMatch.source;
88
190
  const sourceLabel = normalizeDiagnosticPath(relative(cwd, owner.absolutePath ?? owner.entry.path));
89
- const changed = owner.document.sprints.some(item => item.id === sprint && item.status !== 'complete')
90
- || Boolean(options.scorecardPath && owner.document.scorecards?.[String(sprint)] !== normalizeDiagnosticPath(options.scorecardPath));
191
+ const authoredStatus = initialMatch.status ?? '';
192
+ // A scorecard records how a sprint was played, not whether it should be marked
193
+ // complete. Auto-promotion is only legitimate from an in-flight status; every
194
+ // other status is a deliberate disposition (absorbed, blocked, deferred,
195
+ // superseded, cancelled, skipped) that reconciliation must never overwrite
196
+ // (GH #660). `slope roadmap complete` passes force to intentionally override.
197
+ if (!options.force
198
+ && authoredStatus !== 'complete'
199
+ && !PROMOTABLE_TO_COMPLETE.has(authoredStatus)) {
200
+ return {
201
+ source: sourceLabel,
202
+ projection: 'unchanged',
203
+ changed: false,
204
+ skipped: 'status_conflict',
205
+ authoredStatus,
206
+ };
207
+ }
208
+ const changed = authoredStatus !== 'complete'
209
+ || Boolean(options.scorecardPath
210
+ && owner.document.scorecards?.[String(initialMatch.storedId)] !== normalizeScorecardRef(options.scorecardPath));
91
211
  if (options.dryRun) {
92
212
  return { source: sourceLabel, projection: 'unchanged', changed };
93
213
  }
94
214
  const federationLock = join(initial.sourceRoot, '.federation');
95
215
  return withFileLockSync(federationLock, () => {
96
216
  const fresh = loadRoadmapSourceStore(cwd, options.sourceFlag);
97
- const freshOwner = fresh.sources.find(source => source.document.sprints.some(item => item.id === sprint));
98
- if (!freshOwner?.absolutePath) {
99
- throw new RoadmapSourceError(`Sprint S${sprint} was not found in modular roadmap sources.`, fresh.manifestPath);
217
+ const freshMatch = findRoadmapSourceSprint(fresh, sprint);
218
+ const freshOwner = freshMatch.source;
219
+ if (!freshOwner.absolutePath) {
220
+ throw new RoadmapSourceError(`Sprint S${sprint} was not found in modular roadmap sources. `
221
+ + 'The compiled roadmap projection is generated from these sources, so a sprint that exists only in the projection is not tracked and will be dropped on the next compile. Add it under docs/roadmap/.', fresh.manifestPath);
100
222
  }
101
- const nextDocument = {
102
- version: 1,
223
+ // Re-check under the lock: a concurrent edit could have moved the authored
224
+ // status into a deliberate disposition after the pre-lock read. Re-derive
225
+ // the conflict from the freshly-loaded state rather than trusting the stale
226
+ // snapshot (GH #660).
227
+ const freshStatus = freshMatch.status ?? '';
228
+ if (!options.force
229
+ && freshStatus !== 'complete'
230
+ && !PROMOTABLE_TO_COMPLETE.has(freshStatus)) {
231
+ return {
232
+ source: sourceLabel,
233
+ projection: 'unchanged',
234
+ changed: false,
235
+ skipped: 'status_conflict',
236
+ authoredStatus: freshStatus,
237
+ };
238
+ }
239
+ const storedId = freshMatch.storedId;
240
+ const scorecardKey = String(storedId);
241
+ const normalizedScorecard = options.scorecardPath ? normalizeScorecardRef(options.scorecardPath) : undefined;
242
+ const originalText = readFileSync(freshOwner.absolutePath, 'utf8');
243
+ const patchedText = patchRoadmapSourceSprintText(originalText, storedId, {
244
+ status: 'complete',
245
+ ...(normalizedScorecard ? { scorecardKey, scorecardPath: normalizedScorecard } : {}),
246
+ });
247
+ const expectedDocument = {
248
+ version: freshOwner.document.version,
103
249
  phase: freshOwner.document.phase,
104
- sprints: freshOwner.document.sprints.map(item => item.id === sprint ? { ...item, status: 'complete' } : item),
105
- ...(freshOwner.document.scorecards || options.scorecardPath ? {
250
+ sprints: freshOwner.document.sprints.map(item => item.id === storedId ? { ...item, status: 'complete' } : item),
251
+ ...(freshOwner.document.scorecards || normalizedScorecard ? {
106
252
  scorecards: {
107
253
  ...(freshOwner.document.scorecards ?? {}),
108
- ...(options.scorecardPath ? { [String(sprint)]: normalizeDiagnosticPath(options.scorecardPath) } : {}),
254
+ ...(normalizedScorecard ? { [scorecardKey]: normalizedScorecard } : {}),
109
255
  },
110
256
  } : {}),
111
257
  };
112
- atomicWriteFileSync(freshOwner.absolutePath, stringify(nextDocument));
258
+ let reformatted = false;
259
+ let nextText = null;
260
+ if (patchedText != null) {
261
+ // Refuse a surgical patch that changed anything beyond the targeted
262
+ // sprint's status and scorecard link — the invariant that makes an
263
+ // adjacent-sprint mutation (#618) structurally impossible. A patched
264
+ // text that no longer parses means the document shape defeated the
265
+ // patcher (e.g. column-0 comments inside an entry); treat that like an
266
+ // undetectable shape and fall back rather than surfacing a raw parse
267
+ // error.
268
+ let reparsed = null;
269
+ try {
270
+ reparsed = parseRoadmapSourceDocument(patchedText, freshOwner.absolutePath);
271
+ }
272
+ catch {
273
+ reparsed = null;
274
+ }
275
+ if (reparsed != null) {
276
+ if (stableJson(reparsed) !== stableJson(expectedDocument)) {
277
+ throw new RoadmapSourceError(`Reconciling Sprint ${formatRoadmapSprintLabel(fresh.roadmap, sprint)} would change more than the targeted sprint entry; refusing to write.`, freshOwner.absolutePath);
278
+ }
279
+ nextText = patchedText;
280
+ }
281
+ }
282
+ if (nextText == null) {
283
+ // The document shape prevents a confidently surgical edit (flow-style
284
+ // entries, mixed EOLs). Fall back to the legacy full rewrite, which
285
+ // reformats the bundle; post-write federation validation still runs.
286
+ reformatted = true;
287
+ nextText = stringify(expectedDocument);
288
+ }
289
+ atomicWriteFileSync(freshOwner.absolutePath, nextText);
113
290
  const reloaded = loadRoadmapSourceStore(cwd, options.sourceFlag);
114
291
  const validation = validateRoadmapSourceStore(reloaded, { checkProjection: false });
115
292
  if (!validation.valid) {
@@ -122,9 +299,13 @@ export function completeRoadmapSourceSprint(cwd, sprint, options = {}) {
122
299
  const projection = existing != null && roadmapProjectionMatches(existing, reloaded.projection)
123
300
  ? 'unchanged'
124
301
  : 'written';
302
+ // Closeout reconciliation runs from `slope validate`, which is where the
303
+ // silent projection rewrite destroyed authored planning work (GH #637).
304
+ if (projection === 'written' && existing != null)
305
+ assertNoProjectionContentLoss(reloaded, existing);
125
306
  if (projection === 'written')
126
- atomicWriteFileSync(reloaded.outputPath, reloaded.projection);
127
- return { source: sourceLabel, projection, changed: true };
307
+ atomicWriteFileSync(reloaded.outputPath, projectionBytesForWrite(reloaded));
308
+ return { source: sourceLabel, projection, changed: true, reformatted };
128
309
  });
129
310
  }
130
311
  /**
@@ -134,7 +315,17 @@ export function completeRoadmapSourceSprint(cwd, sprint, options = {}) {
134
315
  * remains observable drift.
135
316
  */
136
317
  export function roadmapProjectionMatches(actual, expected) {
137
- return actual.replace(/\r\n/g, '\n') === expected.replace(/\r\n/g, '\n');
318
+ // `actual` is on-disk bytes, which carry the generated-file marker; `expected`
319
+ // is canonical marker-free bytes. Strip before comparing so a marked file is
320
+ // not mistaken for drift, and so projections written before the marker existed
321
+ // still compare equal (GH #644).
322
+ return stripRoadmapProjectionMarker(actual).replace(/\r\n/g, '\n')
323
+ === stripRoadmapProjectionMarker(expected).replace(/\r\n/g, '\n');
324
+ }
325
+ /** Projection bytes to write: canonical content plus the generated-file marker. */
326
+ function projectionBytesForWrite(store) {
327
+ const manifestLabel = normalizeDiagnosticPath(relative(store.cwd, store.manifestPath));
328
+ return withRoadmapProjectionMarker(store.projection, manifestLabel);
138
329
  }
139
330
  export function validateRoadmapSourceStore(store, options = {}) {
140
331
  const result = validateRoadmapSourceFederation(store.project, store.sources);
@@ -1 +1 @@
1
- {"version":3,"file":"roadmap-source-store.js","sourceRoot":"","sources":["../../src/cli/roadmap-source-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roadmap-source-store.js","sourceRoot":"","sources":["../../src/cli/roadmap-source-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Resolve the working directory whose store owns *session* coordination state.
3
+ *
4
+ * Session records exist to coordinate concurrent agents across a repository, so
5
+ * they must live in one store per repository — not one per worktree. Secondary
6
+ * worktrees check out the committed `.slope/config.json`, so resolving the store
7
+ * from the local cwd gives every worktree its own empty database. That split is
8
+ * the root of GH #630 / #631: `worktree-check` reads the primary checkout's
9
+ * store (via the hook payload cwd) while `slope session list|prune|end` reads the
10
+ * worktree's own, so the guard's printed remediation can never clear the
11
+ * sessions the guard is blocking on.
12
+ *
13
+ * Returns the primary checkout when it owns SLOPE state, otherwise `cwd`
14
+ * unchanged (single-checkout repos, non-git directories, and repos whose
15
+ * primary checkout has no `.slope/config.json`).
16
+ */
17
+ export declare function resolveSessionStoreCwd(cwd: string): string;
18
+ /**
19
+ * Resolve the primary checkout of the repository containing `cwd`.
20
+ *
21
+ * `git rev-parse --git-common-dir` yields the shared `.git` directory: `.git`
22
+ * in the primary checkout, and a path to the primary's `.git` when run inside a
23
+ * linked worktree. The primary checkout is that directory's parent.
24
+ */
25
+ export declare function resolvePrimaryCheckout(cwd: string): string | null;
26
+ /**
27
+ * List every checkout of the repository containing `cwd` — the primary checkout
28
+ * and all linked worktrees — with `cwd` itself always included.
29
+ *
30
+ * Sprint lifecycle state is stored per checkout (`.slope/sprint-state.json`), so
31
+ * a closeout that only touches `cwd` leaves every sibling worktree reporting a
32
+ * stale sprint and contradictory next actions (GH #624).
33
+ */
34
+ export declare function listRepoWorktrees(cwd: string): string[];
35
+ //# sourceMappingURL=session-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-scope.d.ts","sourceRoot":"","sources":["../../src/cli/session-scope.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASjE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAWvD"}
@@ -0,0 +1,79 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { existsSync } from 'node:fs';
3
+ import { basename, dirname, isAbsolute, join, resolve } from 'node:path';
4
+ /**
5
+ * Resolve the working directory whose store owns *session* coordination state.
6
+ *
7
+ * Session records exist to coordinate concurrent agents across a repository, so
8
+ * they must live in one store per repository — not one per worktree. Secondary
9
+ * worktrees check out the committed `.slope/config.json`, so resolving the store
10
+ * from the local cwd gives every worktree its own empty database. That split is
11
+ * the root of GH #630 / #631: `worktree-check` reads the primary checkout's
12
+ * store (via the hook payload cwd) while `slope session list|prune|end` reads the
13
+ * worktree's own, so the guard's printed remediation can never clear the
14
+ * sessions the guard is blocking on.
15
+ *
16
+ * Returns the primary checkout when it owns SLOPE state, otherwise `cwd`
17
+ * unchanged (single-checkout repos, non-git directories, and repos whose
18
+ * primary checkout has no `.slope/config.json`).
19
+ */
20
+ export function resolveSessionStoreCwd(cwd) {
21
+ const primary = resolvePrimaryCheckout(cwd);
22
+ if (!primary)
23
+ return cwd;
24
+ if (!existsSync(join(primary, '.slope', 'config.json')))
25
+ return cwd;
26
+ return primary;
27
+ }
28
+ /**
29
+ * Resolve the primary checkout of the repository containing `cwd`.
30
+ *
31
+ * `git rev-parse --git-common-dir` yields the shared `.git` directory: `.git`
32
+ * in the primary checkout, and a path to the primary's `.git` when run inside a
33
+ * linked worktree. The primary checkout is that directory's parent.
34
+ */
35
+ export function resolvePrimaryCheckout(cwd) {
36
+ const commonDir = safeGit(cwd, ['rev-parse', '--git-common-dir']);
37
+ if (!commonDir)
38
+ return null;
39
+ const absolute = isAbsolute(commonDir) ? commonDir : resolve(cwd, commonDir);
40
+ if (basename(absolute) !== '.git')
41
+ return null;
42
+ const root = dirname(absolute);
43
+ return existsSync(root) ? root : null;
44
+ }
45
+ /**
46
+ * List every checkout of the repository containing `cwd` — the primary checkout
47
+ * and all linked worktrees — with `cwd` itself always included.
48
+ *
49
+ * Sprint lifecycle state is stored per checkout (`.slope/sprint-state.json`), so
50
+ * a closeout that only touches `cwd` leaves every sibling worktree reporting a
51
+ * stale sprint and contradictory next actions (GH #624).
52
+ */
53
+ export function listRepoWorktrees(cwd) {
54
+ const roots = new Set([resolve(cwd)]);
55
+ const raw = safeGit(cwd, ['worktree', 'list', '--porcelain']);
56
+ for (const line of (raw ?? '').split('\n')) {
57
+ if (!line.startsWith('worktree '))
58
+ continue;
59
+ const path = line.slice('worktree '.length).trim();
60
+ if (path)
61
+ roots.add(resolve(path));
62
+ }
63
+ return [...roots];
64
+ }
65
+ function safeGit(cwd, args) {
66
+ try {
67
+ const out = execFileSync('git', args, {
68
+ cwd,
69
+ encoding: 'utf8',
70
+ stdio: ['ignore', 'pipe', 'ignore'],
71
+ timeout: 3000,
72
+ }).trim();
73
+ return out || null;
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ }
79
+ //# sourceMappingURL=session-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-scope.js","sourceRoot":"","sources":["../../src/cli/session-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACpE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,IAAc;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;YACpC,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-state.d.ts","sourceRoot":"","sources":["../../src/cli/session-state.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C,UAAU,YAAY;IACpB,wCAAwC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mDAAmD;IACnD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gEAAgE;IAChE,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAQ1D;AAqBD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAGvE;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK9F;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAMtF;AAED;;+EAE+E;AAC/E,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAItE;AAED;;4EAE4E;AAC5E,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmBjG;AAoCD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CA6Cf"}
1
+ {"version":3,"file":"session-state.d.ts","sourceRoot":"","sources":["../../src/cli/session-state.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C,UAAU,YAAY;IACpB,wCAAwC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mDAAmD;IACnD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gEAAgE;IAChE,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAQ1D;AAqBD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAGvE;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK9F;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAMtF;AAED;;+EAE+E;AAC/E,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAItE;AAED;;4EAE4E;AAC5E,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmBjG;AAoCD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAgDf"}
@@ -141,11 +141,14 @@ export function dedupGuardContext(cwd, sessionId, guardName, context) {
141
141
  saveDedupStateUnlocked(filePath, state);
142
142
  return `SLOPE ${guardName}: (same as prior warning, shown ${existing.count}x)`;
143
143
  }
144
- // Check token budget if exceeded, return short message instead of full context
144
+ // Budget exhausted: stay silent. This previously substituted a note about the
145
+ // budget itself, which every guard then repeated on every fire — spending
146
+ // context to announce that there is no context left, naming no file and no
147
+ // action. A guard with nothing useful left to say should say nothing (GH #651).
145
148
  const budget = DEFAULT_CONTEXT_BUDGET_CHARS;
146
149
  if ((state.total_chars ?? 0) + context.length > budget) {
147
150
  saveDedupStateUnlocked(filePath, state);
148
- return `SLOPE ${guardName}: context budget exhausted (${Math.round((state.total_chars ?? 0) / 4)}+ tokens injected). Run \`slope briefing --compact\` for status.`;
151
+ return '';
149
152
  }
150
153
  // New content — track chars and record
151
154
  state.total_chars = (state.total_chars ?? 0) + context.length;
@@ -1 +1 @@
1
- {"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/cli/session-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/cli/session-state.ts"],"names":[],"mappings":"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"}