instar 0.28.52 → 0.28.53

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 (84) hide show
  1. package/dist/cli.js +40 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/gate.d.ts +33 -0
  4. package/dist/commands/gate.d.ts.map +1 -0
  5. package/dist/commands/gate.js +171 -0
  6. package/dist/commands/gate.js.map +1 -0
  7. package/dist/commands/init.d.ts.map +1 -1
  8. package/dist/commands/init.js +29 -2
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/core/MessageSentinel.d.ts +40 -0
  11. package/dist/core/MessageSentinel.d.ts.map +1 -1
  12. package/dist/core/MessageSentinel.js +80 -0
  13. package/dist/core/MessageSentinel.js.map +1 -1
  14. package/dist/core/PostUpdateMigrator.d.ts +7 -0
  15. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  16. package/dist/core/PostUpdateMigrator.js +114 -0
  17. package/dist/core/PostUpdateMigrator.js.map +1 -1
  18. package/dist/core/SessionManager.d.ts +29 -0
  19. package/dist/core/SessionManager.d.ts.map +1 -1
  20. package/dist/core/SessionManager.js +104 -1
  21. package/dist/core/SessionManager.js.map +1 -1
  22. package/dist/core/StopGateDb.d.ts +97 -0
  23. package/dist/core/StopGateDb.d.ts.map +1 -0
  24. package/dist/core/StopGateDb.js +282 -0
  25. package/dist/core/StopGateDb.js.map +1 -0
  26. package/dist/core/UnjustifiedStopGate.d.ts +145 -0
  27. package/dist/core/UnjustifiedStopGate.d.ts.map +1 -0
  28. package/dist/core/UnjustifiedStopGate.js +325 -0
  29. package/dist/core/UnjustifiedStopGate.js.map +1 -0
  30. package/dist/core/WorktreeKeyVault.d.ts +50 -0
  31. package/dist/core/WorktreeKeyVault.d.ts.map +1 -0
  32. package/dist/core/WorktreeKeyVault.js +242 -0
  33. package/dist/core/WorktreeKeyVault.js.map +1 -0
  34. package/dist/core/WorktreeManager.d.ts +250 -0
  35. package/dist/core/WorktreeManager.d.ts.map +1 -0
  36. package/dist/core/WorktreeManager.js +833 -0
  37. package/dist/core/WorktreeManager.js.map +1 -0
  38. package/dist/monitoring/DegradationReporter.d.ts +15 -0
  39. package/dist/monitoring/DegradationReporter.d.ts.map +1 -1
  40. package/dist/monitoring/DegradationReporter.js +27 -0
  41. package/dist/monitoring/DegradationReporter.js.map +1 -1
  42. package/dist/monitoring/WorktreeReaper.d.ts +52 -0
  43. package/dist/monitoring/WorktreeReaper.d.ts.map +1 -0
  44. package/dist/monitoring/WorktreeReaper.js +199 -0
  45. package/dist/monitoring/WorktreeReaper.js.map +1 -0
  46. package/dist/scaffold/templates.d.ts.map +1 -1
  47. package/dist/scaffold/templates.js +8 -0
  48. package/dist/scaffold/templates.js.map +1 -1
  49. package/dist/server/AgentServer.d.ts +18 -0
  50. package/dist/server/AgentServer.d.ts.map +1 -1
  51. package/dist/server/AgentServer.js +24 -0
  52. package/dist/server/AgentServer.js.map +1 -1
  53. package/dist/server/middleware.d.ts.map +1 -1
  54. package/dist/server/middleware.js +20 -3
  55. package/dist/server/middleware.js.map +1 -1
  56. package/dist/server/routes.d.ts +10 -0
  57. package/dist/server/routes.d.ts.map +1 -1
  58. package/dist/server/routes.js +432 -0
  59. package/dist/server/routes.js.map +1 -1
  60. package/dist/server/stopGate.d.ts +77 -0
  61. package/dist/server/stopGate.d.ts.map +1 -0
  62. package/dist/server/stopGate.js +161 -0
  63. package/dist/server/stopGate.js.map +1 -0
  64. package/dist/server/worktreeRoutes.d.ts +48 -0
  65. package/dist/server/worktreeRoutes.d.ts.map +1 -0
  66. package/dist/server/worktreeRoutes.js +247 -0
  67. package/dist/server/worktreeRoutes.js.map +1 -0
  68. package/package.json +1 -1
  69. package/scripts/destructive-command-shim.js +218 -0
  70. package/scripts/gh-ruleset-install.mjs +143 -0
  71. package/scripts/migrate-incident-2026-04-17.mjs +138 -0
  72. package/scripts/worktree-commit-msg-hook.js +168 -0
  73. package/scripts/worktree-precommit-gate.js +144 -0
  74. package/src/data/builtin-manifest.json +93 -93
  75. package/upgrades/0.28.53.md +70 -0
  76. package/upgrades/side-effects/context-death-pr0a-server-infra.md +131 -0
  77. package/upgrades/side-effects/context-death-pr0b-sentinel-intent.md +130 -0
  78. package/upgrades/side-effects/context-death-pr0c-guardian-pulse-degradation-consumer.md +118 -0
  79. package/upgrades/side-effects/context-death-pr0d-e2e-compaction-harness.md +113 -0
  80. package/upgrades/side-effects/context-death-pr1-identity-text.md +110 -0
  81. package/upgrades/side-effects/context-death-pr2-e2e-compaction-recovery-test.md +82 -0
  82. package/upgrades/side-effects/context-death-pr3-gate-authority.md +193 -0
  83. package/upgrades/side-effects/context-death-pr4-gate-cli.md +91 -0
  84. package/upgrades/side-effects/parallel-dev-isolation.md +129 -0
@@ -109,6 +109,78 @@ const FAST_PAUSE_PATTERNS = [
109
109
  /^one (sec|moment|minute)/i,
110
110
  /^let me think/i,
111
111
  ];
112
+ // ── Continue-ping intent classification (P0.4) ───────────────────────
113
+ //
114
+ // Resume-shape vocabulary: a message must contain ONE of these tokens to
115
+ // even be considered a continue-ping candidate. Anchored at message
116
+ // boundaries to avoid false positives from substrings ("continued" in a
117
+ // past-tense narrative shouldn't count). Lowercased input before match.
118
+ const CONTINUE_PING_TOKENS = [
119
+ /\bcontinue\b/,
120
+ /\bproceed\b/,
121
+ /\bgo ahead\b/,
122
+ /\bkeep going\b/,
123
+ /\bcarry on\b/,
124
+ /\bresume\b/,
125
+ /^yes\b/,
126
+ /^yep\b/,
127
+ /^yeah\b/,
128
+ /^ok\b/,
129
+ /^okay\b/,
130
+ /^do it\b/,
131
+ /^please continue\b/,
132
+ ];
133
+ // Additive-content signals: presence shifts intent from a → b.
134
+ // "and also add X", "now also do Y", "next thing — Z".
135
+ const INTENT_B_ADDITIVE = [
136
+ /\b(also|and also|additionally|moreover)\b/,
137
+ /\b(now do|now add|now also|next do|then do)\b/,
138
+ /\b(don'?t forget to|make sure to)\b/,
139
+ /\b(while you'?re at it|on top of that)\b/,
140
+ ];
141
+ // Question / clarification signals: presence shifts intent from a → c.
142
+ // Trailing "?" is the strongest tell. Question-word starts also count.
143
+ const INTENT_C_QUESTION_STARTS = [
144
+ /\b(why|how|what|where|when|which|who|did you|are you|do you|is this|is that|was that|can you explain)\b/,
145
+ /\b(clarify|explain|verify|double[- ]check|confirm)\b/,
146
+ ];
147
+ const CONTINUE_PING_MAX_WORDS = 50;
148
+ /**
149
+ * Classify a message's continue-ping intent.
150
+ *
151
+ * Returns null for any message that isn't shaped like a continue-ping in
152
+ * the first place — the vast majority of inbound messages. When the
153
+ * message DOES match the continue-ping shape, decides between the three
154
+ * intents per the priority order: question (c) > additive (b) > pure
155
+ * resume (a). Question wins over additive because a confused user who
156
+ * adds scope AND asks why is asking-with-context, not adding work.
157
+ *
158
+ * Pure pattern-matching, no LLM dependency. Latency negligible (<1ms).
159
+ */
160
+ export function classifyContinuePingIntent(message) {
161
+ const trimmed = message.trim();
162
+ if (!trimmed)
163
+ return null;
164
+ // Hard cap on length: continue-pings are short. A 500-word essay that
165
+ // happens to contain "continue" is not a continue-ping.
166
+ const wordCount = trimmed.split(/\s+/).length;
167
+ if (wordCount > CONTINUE_PING_MAX_WORDS)
168
+ return null;
169
+ const lower = trimmed.toLowerCase();
170
+ // Must match at least one resume-shape token.
171
+ const isContinueShape = CONTINUE_PING_TOKENS.some(re => re.test(lower));
172
+ if (!isContinueShape)
173
+ return null;
174
+ // Question wins over additive: a curious operator who also asks for
175
+ // more is fundamentally seeking info, not unblocking.
176
+ const hasQuestion = lower.includes('?')
177
+ || INTENT_C_QUESTION_STARTS.some(re => re.test(lower));
178
+ if (hasQuestion)
179
+ return 'intent_c';
180
+ if (INTENT_B_ADDITIVE.some(re => re.test(lower)))
181
+ return 'intent_b';
182
+ return 'intent_a';
183
+ }
112
184
  // ── Sentinel Implementation ──────────────────────────────────────────
113
185
  export class MessageSentinel {
114
186
  config;
@@ -143,9 +215,14 @@ export class MessageSentinel {
143
215
  latencyMs: 0,
144
216
  action: { type: 'pass-through' },
145
217
  reason: 'Sentinel disabled',
218
+ continuePingIntent: null,
146
219
  };
147
220
  }
148
221
  const start = Date.now();
222
+ // Continue-ping intent runs alongside the main classifier. Always
223
+ // computed (cheap, regex-only) and attached to the result so
224
+ // downstream gate telemetry can read it without a second pass.
225
+ const continuePingIntent = classifyContinuePingIntent(message);
149
226
  // Layer 1: Fast-path classification
150
227
  const fastResult = this.fastClassify(message);
151
228
  if (fastResult) {
@@ -155,6 +232,7 @@ export class MessageSentinel {
155
232
  ...fastResult,
156
233
  method: 'fast-path',
157
234
  latencyMs: latency,
235
+ continuePingIntent,
158
236
  };
159
237
  }
160
238
  // Layer 2: LLM classification (if available and not fast-path-only)
@@ -166,6 +244,7 @@ export class MessageSentinel {
166
244
  ...llmResult,
167
245
  method: 'llm',
168
246
  latencyMs: latency,
247
+ continuePingIntent,
169
248
  };
170
249
  }
171
250
  // Default: pass through
@@ -178,6 +257,7 @@ export class MessageSentinel {
178
257
  latencyMs: latency,
179
258
  action: { type: 'pass-through' },
180
259
  reason: 'No fast-path match, no LLM available',
260
+ continuePingIntent,
181
261
  };
182
262
  }
183
263
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MessageSentinel.js","sourceRoot":"","sources":["../../src/core/MessageSentinel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageSentinel.js","sourceRoot":"","sources":["../../src/core/MessageSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAmFH,uEAAuE;AAEvE;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,wEAAwE;AAExE;;;GAGG;AACH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,SAAS;IACT,UAAU;IACV,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,gBAAgB;IAChB,OAAO;IACP,MAAM;IACN,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC;IAC9C,OAAO;IACP,OAAO;IACP,QAAQ;IACR,SAAS;IACT,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC/C,QAAQ;IACR,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,kBAAkB,GAAsB;IAC5C,UAAU,EAA0B,6BAA6B;IACjE,kCAAkC,EAAG,gCAAgC;IACrE,eAAe,EAAsB,wBAAwB;IAC7D,OAAO,EAA8B,4CAA4C;IACjF,eAAe,EAAsB,gBAAgB;IACrD,6BAA6B,EAAQ,qCAAqC;CAC3E,CAAC;AAEF,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,MAAM;IACN,OAAO;IACP,SAAS;IACT,UAAU;IACV,OAAO;IACP,YAAY;IACZ,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAsB;IAC7C,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,2BAA2B;IAC3B,gBAAgB;CACjB,CAAC;AAEF,wEAAwE;AACxE,EAAE;AACF,yEAAyE;AACzE,oEAAoE;AACpE,wEAAwE;AACxE,wEAAwE;AACxE,MAAM,oBAAoB,GAAsB;IAC9C,cAAc;IACd,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,UAAU;IACV,oBAAoB;CACrB,CAAC;AAEF,+DAA+D;AAC/D,uDAAuD;AACvD,MAAM,iBAAiB,GAAsB;IAC3C,2CAA2C;IAC3C,+CAA+C;IAC/C,qCAAqC;IACrC,0CAA0C;CAC3C,CAAC;AAEF,uEAAuE;AACvE,uEAAuE;AACvE,MAAM,wBAAwB,GAAsB;IAClD,yGAAyG;IACzG,sDAAsD;CACvD,CAAC;AAEF,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,sEAAsE;IACtE,wDAAwD;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,SAAS,GAAG,uBAAuB;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEpC,8CAA8C;IAC9C,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAElC,oEAAoE;IACpE,sDAAsD;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;WAClC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW;QAAE,OAAO,UAAU,CAAC;IAEnC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC;IAEpE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,wEAAwE;AAExE,MAAM,OAAO,eAAe;IAClB,MAAM,CAAwB;IAC9B,KAAK,CAAgB;IACrB,eAAe,CAAc;IAC7B,gBAAgB,CAAc;IAEtC,YAAY,SAAgC,EAAE;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG;YACX,eAAe,EAAE,CAAC;YAClB,UAAU,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC3E,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACpD,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;SAClB,CAAC;QAEF,wBAAwB;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAC5B,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CACnE,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAC7B,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CACpE,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAClC,OAAO;gBACL,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChC,MAAM,EAAE,mBAAmB;gBAC3B,kBAAkB,EAAE,IAAI;aACzB,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,kEAAkE;QAClE,6DAA6D;QAC7D,+DAA+D;QAC/D,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAE/D,oCAAoC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO;gBACL,GAAG,UAAU;gBACb,MAAM,EAAE,WAAW;gBACnB,SAAS,EAAE,OAAO;gBAClB,kBAAkB;aACnB,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO;gBACL,GAAG,SAAS;gBACZ,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,OAAO;gBAClB,kBAAkB;aACnB,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YAChC,MAAM,EAAE,sCAAsC;YAC9C,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,YAAY,CAAC,OAAe;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEpC,8EAA8E;QAC9E,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,QAAQ,EAAE,gBAAgB;gBAC1B,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChC,MAAM,EAAE,kBAAkB,KAAK,EAAE;aAClC,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBACjC,MAAM,EAAE,kBAAkB,KAAK,EAAE;aAClC,CAAC;QACJ,CAAC;QAED,8EAA8E;QAC9E,4DAA4D;QAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC9C,IAAI,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,+BAA+B;QAC/B,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,OAAO;gBACL,QAAQ,EAAE,gBAAgB;gBAC1B,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChC,MAAM,EAAE,iBAAiB,KAAK,GAAG;aAClC,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpE,OAAO;gBACL,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBACjC,MAAM,EAAE,iBAAiB,KAAK,GAAG;aAClC,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,QAAQ,EAAE,gBAAgB;oBAC1B,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;oBAChC,MAAM,EAAE,kBAAkB,OAAO,EAAE;iBACpC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,QAAQ,EAAE,OAAO;oBACjB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;oBACjC,MAAM,EAAE,kBAAkB,OAAO,EAAE;iBACpC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,IAAI,OAAO,KAAK,OAAO,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5G,sCAAsC;YACtC,IAAI,6CAA6C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChE,OAAO;oBACL,QAAQ,EAAE,gBAAgB;oBAC1B,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;oBAChC,MAAM,EAAE,0BAA0B,OAAO,GAAG;iBAC7C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,OAAe;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO;gBACL,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChC,MAAM,EAAE,0BAA0B;aACnC,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG;YACb,sDAAsD;YACtD,gEAAgE;YAChE,EAAE;YACF,4JAA4J;YAC5J,2JAA2J;YAC3J,kIAAkI;YAClI,oNAAoN;YACpN,EAAE;YACF,0HAA0H;YAC1H,8GAA8G;YAC9G,kMAAkM;YAClM,kHAAkH;YAClH,iGAAiG;YACjG,EAAE;YACF,oFAAoF;YACpF,wEAAwE;YACxE,uGAAuG;YACvG,EAAE;YACF,aAAa,OAAO,GAAG;YACvB,EAAE;YACF,4EAA4E;SAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC/D,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,kDAAkD,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjG,OAAO;oBACL,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;oBAChC,MAAM,EAAE,2CAA2C;iBACpD,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBACpC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;gBACvD,MAAM,EAAE,uBAAuB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE;aACtF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;YAChE,OAAO;gBACL,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChC,MAAM,EAAE,uDAAuD;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,eAAe,CAAC,QAAgB;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAuB,CAAC,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE9F,2BAA2B;QAC3B,IAAI,eAAe,CAAC,QAAQ,CAAC,OAA2B,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,QAAQ,EAAE,OAA2B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAChE,CAAC;QAED,4EAA4E;QAC5E,iEAAiE;QACjE,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2EAA2E;QAC3E,mDAAmD;QACnD,MAAM,aAAa,GAAuB,CAAC,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5F,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,QAA0B,EAAE,OAAe;QAClE,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,gBAAgB;gBACnB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YAClC,KAAK,OAAO;gBACV,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YACnC,KAAK,UAAU;gBACb,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;YAC9C,KAAK,QAAQ;gBACX,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,QAA0B,EAAE,MAAc,EAAE,SAAiB;QAC/E,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAErE,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;QAED,kBAAkB;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,GAAG;YACX,eAAe,EAAE,CAAC;YAClB,UAAU,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC3E,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACpD,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC;IACvC,CAAC;CACF"}
@@ -41,6 +41,13 @@ export declare class PostUpdateMigrator {
41
41
  * each migration is idempotent.
42
42
  */
43
43
  migrate(): MigrationResult;
44
+ private migrateContextDeathAntiPattern;
45
+ /**
46
+ * Read `.instar/identity-pins.json` if present. Returns an object
47
+ * keyed by marker id; missing file or malformed JSON yields `{}`
48
+ * (soft-fail — a broken pin file shouldn't block every migration).
49
+ */
50
+ private readIdentityPins;
44
51
  /**
45
52
  * Upgrade built-in skills that hardcoded a localhost port at install time
46
53
  * to use a runtime-expandable ${INSTAR_PORT:-PORT} pattern.
@@ -1 +1 @@
1
- {"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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"}
@@ -57,8 +57,122 @@ export class PostUpdateMigrator {
57
57
  this.migrateSelfKnowledgeTree(result);
58
58
  this.migrateSoulMd(result);
59
59
  this.migrateAgentMdSections(result);
60
+ this.migrateContextDeathAntiPattern(result);
60
61
  return result;
61
62
  }
63
+ // ── Context-death anti-pattern (PR1 — context-death-pitfall-
64
+ // prevention spec § (a)) ────────────────────────────────────────
65
+ //
66
+ // Injects the "Context-Death Self-Stop" anti-pattern marker block
67
+ // into CLAUDE.md (under "Critical Anti-Patterns") and AGENT.md
68
+ // (under "My Principles") when absent. Idempotent: if the marker
69
+ // is already present, nothing happens. Honors .instar/identity-
70
+ // pins.json — if an entry exists for the marker id, the block is
71
+ // skipped (user has customized).
72
+ //
73
+ // The marker is a literal HTML comment pair:
74
+ // <!-- INSTAR:ANTI-PATTERN-CONTEXT-DEATH -->
75
+ // ...content...
76
+ // <!-- /INSTAR:ANTI-PATTERN-CONTEXT-DEATH -->
77
+ //
78
+ // Pin file format (local, agent-side only):
79
+ // { "INSTAR:ANTI-PATTERN-CONTEXT-DEATH": { "contentHash": "sha256...",
80
+ // "pinnedAt": "<ISO>" } }
81
+ migrateContextDeathAntiPattern(result) {
82
+ const markerId = 'INSTAR:ANTI-PATTERN-CONTEXT-DEATH';
83
+ const pins = this.readIdentityPins();
84
+ if (pins[markerId]) {
85
+ result.skipped.push(`${markerId}: pinned in .instar/identity-pins.json — skip`);
86
+ return;
87
+ }
88
+ const claudeBlock = [
89
+ `<!-- ${markerId} -->`,
90
+ '**"Context-Death Self-Stop"** — Do not self-terminate mid-plan citing context preservation, context-window concerns, or "let\'s continue in a fresh session" when durable artifacts for the plan exist on disk (committed code, plan files, ledger rows). Compaction-recovery re-injects identity, memory, and recent context automatically; worst case is a ~30s re-read of the plan file. Legitimate stops: real design questions, missing information only the user can provide, genuine errors, completion. Context-preservation is NOT a legitimate stop reason on its own. If you catch yourself reaching for it, check the durable artifact instead and keep going.',
91
+ `<!-- /${markerId} -->`,
92
+ ].join('\n');
93
+ const agentBlock = [
94
+ `<!-- ${markerId} -->`,
95
+ '**No context-death self-stops.** I do not self-terminate mid-plan citing context preservation, context-window concerns, or "let\'s continue in a fresh session" when durable artifacts (committed code, plan files, ledger rows) exist on disk. Compaction-recovery re-injects my identity, memory, and recent context automatically — worst case is a ~30s re-read of the plan file. Legitimate stops are real design questions, missing information only the user can provide, genuine errors, or completion. Context preservation is not a legitimate stop reason on its own. If I catch myself reaching for that rationalization, I verify the durable artifact exists and keep going.',
96
+ `<!-- /${markerId} -->`,
97
+ ].join('\n');
98
+ // ── CLAUDE.md — insert inside "Critical Anti-Patterns" section ──
99
+ const claudeMdPath = path.join(this.config.projectDir, 'CLAUDE.md');
100
+ if (fs.existsSync(claudeMdPath)) {
101
+ try {
102
+ let content = fs.readFileSync(claudeMdPath, 'utf-8');
103
+ if (!content.includes(markerId)) {
104
+ // Anchor: end of "Critical Anti-Patterns" (just before next
105
+ // `## ` heading) — falls back to append if section absent.
106
+ const antiPatternsIdx = content.indexOf('## Critical Anti-Patterns');
107
+ if (antiPatternsIdx >= 0) {
108
+ // Find the next top-level heading after Critical Anti-Patterns.
109
+ const afterHeader = antiPatternsIdx + '## Critical Anti-Patterns'.length;
110
+ const nextHeadingIdx = content.indexOf('\n## ', afterHeader);
111
+ const insertAt = nextHeadingIdx >= 0 ? nextHeadingIdx : content.length;
112
+ content = content.slice(0, insertAt) + '\n' + claudeBlock + '\n' + content.slice(insertAt);
113
+ }
114
+ else {
115
+ content += '\n\n## Critical Anti-Patterns\n\n' + claudeBlock + '\n';
116
+ }
117
+ fs.writeFileSync(claudeMdPath, content);
118
+ result.upgraded.push(`CLAUDE.md: added ${markerId} marker block`);
119
+ }
120
+ else {
121
+ result.skipped.push(`CLAUDE.md: ${markerId} marker already present`);
122
+ }
123
+ }
124
+ catch (err) {
125
+ result.errors.push(`CLAUDE.md ${markerId}: ${err instanceof Error ? err.message : String(err)}`);
126
+ }
127
+ }
128
+ // ── AGENT.md — append the block inside "My Principles" section ──
129
+ const agentMdPath = path.join(this.config.stateDir, 'AGENT.md');
130
+ if (fs.existsSync(agentMdPath)) {
131
+ try {
132
+ let content = fs.readFileSync(agentMdPath, 'utf-8');
133
+ if (!content.includes(markerId)) {
134
+ const principlesIdx = content.indexOf('## My Principles');
135
+ if (principlesIdx >= 0) {
136
+ const afterHeader = principlesIdx + '## My Principles'.length;
137
+ const nextHeadingIdx = content.indexOf('\n## ', afterHeader);
138
+ const insertAt = nextHeadingIdx >= 0 ? nextHeadingIdx : content.length;
139
+ content = content.slice(0, insertAt) + '\n' + agentBlock + '\n' + content.slice(insertAt);
140
+ }
141
+ else {
142
+ content += '\n\n## My Principles\n\n' + agentBlock + '\n';
143
+ }
144
+ fs.writeFileSync(agentMdPath, content);
145
+ result.upgraded.push(`AGENT.md: added ${markerId} marker block`);
146
+ }
147
+ else {
148
+ result.skipped.push(`AGENT.md: ${markerId} marker already present`);
149
+ }
150
+ }
151
+ catch (err) {
152
+ result.errors.push(`AGENT.md ${markerId}: ${err instanceof Error ? err.message : String(err)}`);
153
+ }
154
+ }
155
+ }
156
+ /**
157
+ * Read `.instar/identity-pins.json` if present. Returns an object
158
+ * keyed by marker id; missing file or malformed JSON yields `{}`
159
+ * (soft-fail — a broken pin file shouldn't block every migration).
160
+ */
161
+ readIdentityPins() {
162
+ const pinsPath = path.join(this.config.stateDir, 'identity-pins.json');
163
+ if (!fs.existsSync(pinsPath))
164
+ return {};
165
+ try {
166
+ const raw = fs.readFileSync(pinsPath, 'utf-8');
167
+ const parsed = JSON.parse(raw);
168
+ if (parsed && typeof parsed === 'object')
169
+ return parsed;
170
+ return {};
171
+ }
172
+ catch {
173
+ return {};
174
+ }
175
+ }
62
176
  /**
63
177
  * Upgrade built-in skills that hardcoded a localhost port at install time
64
178
  * to use a runtime-expandable ${INSTAR_PORT:-PORT} pattern.