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.
- package/dist/cli.js +40 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/gate.d.ts +33 -0
- package/dist/commands/gate.d.ts.map +1 -0
- package/dist/commands/gate.js +171 -0
- package/dist/commands/gate.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +29 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/core/MessageSentinel.d.ts +40 -0
- package/dist/core/MessageSentinel.d.ts.map +1 -1
- package/dist/core/MessageSentinel.js +80 -0
- package/dist/core/MessageSentinel.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +7 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +114 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SessionManager.d.ts +29 -0
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +104 -1
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/StopGateDb.d.ts +97 -0
- package/dist/core/StopGateDb.d.ts.map +1 -0
- package/dist/core/StopGateDb.js +282 -0
- package/dist/core/StopGateDb.js.map +1 -0
- package/dist/core/UnjustifiedStopGate.d.ts +145 -0
- package/dist/core/UnjustifiedStopGate.d.ts.map +1 -0
- package/dist/core/UnjustifiedStopGate.js +325 -0
- package/dist/core/UnjustifiedStopGate.js.map +1 -0
- package/dist/core/WorktreeKeyVault.d.ts +50 -0
- package/dist/core/WorktreeKeyVault.d.ts.map +1 -0
- package/dist/core/WorktreeKeyVault.js +242 -0
- package/dist/core/WorktreeKeyVault.js.map +1 -0
- package/dist/core/WorktreeManager.d.ts +250 -0
- package/dist/core/WorktreeManager.d.ts.map +1 -0
- package/dist/core/WorktreeManager.js +833 -0
- package/dist/core/WorktreeManager.js.map +1 -0
- package/dist/monitoring/DegradationReporter.d.ts +15 -0
- package/dist/monitoring/DegradationReporter.d.ts.map +1 -1
- package/dist/monitoring/DegradationReporter.js +27 -0
- package/dist/monitoring/DegradationReporter.js.map +1 -1
- package/dist/monitoring/WorktreeReaper.d.ts +52 -0
- package/dist/monitoring/WorktreeReaper.d.ts.map +1 -0
- package/dist/monitoring/WorktreeReaper.js +199 -0
- package/dist/monitoring/WorktreeReaper.js.map +1 -0
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +8 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +18 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +24 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/middleware.d.ts.map +1 -1
- package/dist/server/middleware.js +20 -3
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/routes.d.ts +10 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +432 -0
- package/dist/server/routes.js.map +1 -1
- package/dist/server/stopGate.d.ts +77 -0
- package/dist/server/stopGate.d.ts.map +1 -0
- package/dist/server/stopGate.js +161 -0
- package/dist/server/stopGate.js.map +1 -0
- package/dist/server/worktreeRoutes.d.ts +48 -0
- package/dist/server/worktreeRoutes.d.ts.map +1 -0
- package/dist/server/worktreeRoutes.js +247 -0
- package/dist/server/worktreeRoutes.js.map +1 -0
- package/package.json +1 -1
- package/scripts/destructive-command-shim.js +218 -0
- package/scripts/gh-ruleset-install.mjs +143 -0
- package/scripts/migrate-incident-2026-04-17.mjs +138 -0
- package/scripts/worktree-commit-msg-hook.js +168 -0
- package/scripts/worktree-precommit-gate.js +144 -0
- package/src/data/builtin-manifest.json +93 -93
- package/upgrades/0.28.53.md +70 -0
- package/upgrades/side-effects/context-death-pr0a-server-infra.md +131 -0
- package/upgrades/side-effects/context-death-pr0b-sentinel-intent.md +130 -0
- package/upgrades/side-effects/context-death-pr0c-guardian-pulse-degradation-consumer.md +118 -0
- package/upgrades/side-effects/context-death-pr0d-e2e-compaction-harness.md +113 -0
- package/upgrades/side-effects/context-death-pr1-identity-text.md +110 -0
- package/upgrades/side-effects/context-death-pr2-e2e-compaction-recovery-test.md +82 -0
- package/upgrades/side-effects/context-death-pr3-gate-authority.md +193 -0
- package/upgrades/side-effects/context-death-pr4-gate-cli.md +91 -0
- 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":"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"}
|
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAwBH,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC;;;OAGG;IACH,OAAO,IAAI,eAAe;
|
|
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.
|