instar 1.3.535 → 1.3.537
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +48 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +13 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/CredentialSwapExecutor.d.ts +234 -0
- package/dist/core/CredentialSwapExecutor.d.ts.map +1 -0
- package/dist/core/CredentialSwapExecutor.js +596 -0
- package/dist/core/CredentialSwapExecutor.js.map +1 -0
- package/dist/core/WorkEvidence.d.ts +1 -1
- package/dist/core/WorkEvidence.d.ts.map +1 -1
- package/dist/core/WorkEvidence.js +7 -0
- package/dist/core/WorkEvidence.js.map +1 -1
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +6 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/types.d.ts +27 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worktreeDirtyCheck.d.ts +31 -0
- package/dist/core/worktreeDirtyCheck.d.ts.map +1 -0
- package/dist/core/worktreeDirtyCheck.js +129 -0
- package/dist/core/worktreeDirtyCheck.js.map +1 -0
- package/dist/monitoring/ResumeQueueDrainer.d.ts +6 -0
- package/dist/monitoring/ResumeQueueDrainer.d.ts.map +1 -1
- package/dist/monitoring/ResumeQueueDrainer.js +32 -2
- package/dist/monitoring/ResumeQueueDrainer.js.map +1 -1
- package/dist/monitoring/SessionReaper.d.ts +8 -0
- package/dist/monitoring/SessionReaper.d.ts.map +1 -1
- package/dist/monitoring/SessionReaper.js +18 -4
- package/dist/monitoring/SessionReaper.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +1 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/package.json +1 -1
- package/scripts/lint-no-unfunneled-credential-write.js +7 -0
- package/src/data/builtin-manifest.json +2 -2
- package/src/scaffold/templates.ts +1 -0
- package/upgrades/1.3.536.md +34 -0
- package/upgrades/1.3.537.md +27 -0
- package/upgrades/side-effects/build-session-yield-safety.md +58 -0
- package/upgrades/side-effects/ws52-step5-swap-executor.md +64 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAm3CD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAm3CD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAk4atE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
|
package/dist/commands/server.js
CHANGED
|
@@ -6223,6 +6223,33 @@ export async function startServer(options) {
|
|
|
6223
6223
|
return;
|
|
6224
6224
|
notify('SUMMARY', 'session-resume', `🔁 I restarted this session to pick the work back up after it was shut down mid-work.`, entry.topicId);
|
|
6225
6225
|
},
|
|
6226
|
+
// Build-Session Yield Safety (ACT-839) R2.2: present ONLY when the
|
|
6227
|
+
// dev-gated feature is live (its presence is the gate). Registers a
|
|
6228
|
+
// durable, beacon-enabled obligation so a STALLED revived session is
|
|
6229
|
+
// re-surfaced by PromiseBeacon; deduped per stableKey so a re-revival
|
|
6230
|
+
// refreshes rather than floods. The die-again case is covered by the
|
|
6231
|
+
// dev-live OrphanedWorkSentinel (#1113) — no duplicate scanner here.
|
|
6232
|
+
onWorktreeRevival: resolveDevAgentGate(config.monitoring?.yieldSafety?.enabled, config)
|
|
6233
|
+
? (entry) => {
|
|
6234
|
+
if (!commitmentTracker || entry.topicId == null)
|
|
6235
|
+
return;
|
|
6236
|
+
const externalKey = `yield-safety:${entry.stableKey}`;
|
|
6237
|
+
try {
|
|
6238
|
+
if (commitmentTracker.getActive().some((c) => c.externalKey === externalKey))
|
|
6239
|
+
return; // dedup
|
|
6240
|
+
commitmentTracker.record({
|
|
6241
|
+
type: 'one-time-action',
|
|
6242
|
+
topicId: entry.topicId,
|
|
6243
|
+
source: 'sentinel',
|
|
6244
|
+
beaconEnabled: true,
|
|
6245
|
+
externalKey,
|
|
6246
|
+
userRequest: 'Session revived because its worktree held uncommitted work (ACT-839 yield-safety).',
|
|
6247
|
+
agentResponse: 'Commit the uncommitted worktree changes with a real, descriptive commit, or deliberately preserve/discard them, before yielding again.',
|
|
6248
|
+
});
|
|
6249
|
+
}
|
|
6250
|
+
catch { /* @silent-fallback-ok: best-effort obligation registration; a CommitmentTracker failure must never endanger the revival. */ }
|
|
6251
|
+
}
|
|
6252
|
+
: undefined,
|
|
6226
6253
|
raiseAggregated: raiseResumeAggregated,
|
|
6227
6254
|
audit: auditResumeQueue,
|
|
6228
6255
|
tier1Check: async (entry) => {
|
|
@@ -11948,8 +11975,29 @@ export async function startServer(options) {
|
|
|
11948
11975
|
}
|
|
11949
11976
|
// (setAwakeChecker is wired earlier, before the boot purge, so the purge is
|
|
11950
11977
|
// lease-gated — see the §P3/§P4 block above.)
|
|
11978
|
+
// Build-Session Yield Safety (ACT-839): construct the bounded, cached
|
|
11979
|
+
// worktreeDirtyCheck and inject it into the reaper ONLY when the dev-gated
|
|
11980
|
+
// yieldSafety feature is live (its mere presence is the gate). Dev-enabled,
|
|
11981
|
+
// dark on the fleet, per the Maturation Path standard.
|
|
11982
|
+
let _yieldSafetyDirtyCheck;
|
|
11983
|
+
if (resolveDevAgentGate(config.monitoring?.yieldSafety?.enabled, config)) {
|
|
11984
|
+
const ysCfg = config.monitoring?.yieldSafety ?? {};
|
|
11985
|
+
const { makeWorktreeDirtyCheck } = await import('../core/worktreeDirtyCheck.js');
|
|
11986
|
+
const { SafeGitExecutor } = await import('../core/SafeGitExecutor.js');
|
|
11987
|
+
_yieldSafetyDirtyCheck = makeWorktreeDirtyCheck({
|
|
11988
|
+
readGit: (args, cwd) => SafeGitExecutor.readSync(args, {
|
|
11989
|
+
cwd, encoding: 'utf-8',
|
|
11990
|
+
timeout: ysCfg.dirtyCheckTimeoutMs ?? 5_000,
|
|
11991
|
+
operation: 'src/core/worktreeDirtyCheck.ts (yield-safety)',
|
|
11992
|
+
sourceTreeReadOk: true,
|
|
11993
|
+
sourceTreeWorktreeManagerOk: true,
|
|
11994
|
+
}),
|
|
11995
|
+
config: { residueDenylist: ysCfg.residueDenylist, cacheTtlMs: ysCfg.dirtyCheckCacheTtlMs },
|
|
11996
|
+
});
|
|
11997
|
+
}
|
|
11951
11998
|
const sessionReaper = new SessionReaper({
|
|
11952
11999
|
...reapGuardDeps,
|
|
12000
|
+
dirtyCheck: _yieldSafetyDirtyCheck,
|
|
11953
12001
|
listRunningSessions: () => sessionManager.listRunningSessions(),
|
|
11954
12002
|
captureOutput: (s, n) => sessionManager.captureOutput(s, n) ?? '',
|
|
11955
12003
|
frameworkForSession: (s) => sessionManager.frameworkForSession(s),
|