instar 1.3.1208 → 1.3.1209
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 +26 -8
- package/dist/commands/server.js.map +1 -1
- package/dist/core/TopicProfileOrchestrator.d.ts +1 -1
- package/dist/core/TopicProfileOrchestrator.d.ts.map +1 -1
- package/dist/core/TopicProfileOrchestrator.js +46 -3
- package/dist/core/TopicProfileOrchestrator.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/upgrades/1.3.1209.md +26 -0
- package/upgrades/side-effects/topic-profile-kill-by-tmux-name.md +429 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoFH,OAAO,EAAE,cAAc,EAAwD,MAAM,2BAA2B,CAAC;AAUjH,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA4BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiI7D,OAAO,KAAK,EAAW,oBAAoB,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgFtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoFH,OAAO,EAAE,cAAc,EAAwD,MAAM,2BAA2B,CAAC;AAUjH,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA4BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiI7D,OAAO,KAAK,EAAW,oBAAoB,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgFtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AA0ID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAouDD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,oBAAoB,GAAG,IAAI,GACxC;IACD,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAqBA;AAED,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,EAQrD,oBAAoB,CAAC,EAAE,MAAM;IAC3B,YAAY,EAAE,OAAO,kBAAkB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,GACP,IAAI,CAivBN;AAgmBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA42sBtE;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
|
@@ -419,7 +419,10 @@ async function handleFixCommand(topicId, text, deps) {
|
|
|
419
419
|
else {
|
|
420
420
|
for (const s of stale) {
|
|
421
421
|
try {
|
|
422
|
-
|
|
422
|
+
// killSession() resolves BY ID; handing it a tmux name misses the
|
|
423
|
+
// lookup and returns false silently ("the stop that does not stop").
|
|
424
|
+
// killSessionByTmuxName is the single place that resolution lives.
|
|
425
|
+
deps.sessionManager.killSessionByTmuxName(s.tmuxSession);
|
|
423
426
|
}
|
|
424
427
|
catch { /* best effort */ }
|
|
425
428
|
}
|
|
@@ -24909,14 +24912,29 @@ export async function startServer(options) {
|
|
|
24909
24912
|
return 'unconfirmed';
|
|
24910
24913
|
return paneIdleWithEmptyInput(tail) ? 'confirmed-idle' : 'busy';
|
|
24911
24914
|
},
|
|
24912
|
-
|
|
24915
|
+
// NB: listTopicSessions() supplies `sessionName` as the session's
|
|
24916
|
+
// TMUX NAME. killSession() resolves BY ID (state/sessions/<id>.json),
|
|
24917
|
+
// so passing a name here missed the lookup and returned false with no
|
|
24918
|
+
// kill — "the stop that does not stop". The respawn then found the old
|
|
24919
|
+
// session still alive and merely injected into it, so a framework swap
|
|
24920
|
+
// silently never happened. killSessionByTmuxName is the single place
|
|
24921
|
+
// that name→id resolution lives; its boolean is the REAL outcome and
|
|
24922
|
+
// the orchestrator now aborts the respawn when it is false.
|
|
24923
|
+
killForResume: async (sessionName) => sessionManager.killSessionByTmuxName(sessionName),
|
|
24913
24924
|
killFresh: async (sessionName) => {
|
|
24914
|
-
// Fresh respawn:
|
|
24915
|
-
//
|
|
24916
|
-
|
|
24917
|
-
|
|
24918
|
-
|
|
24919
|
-
|
|
24925
|
+
// Fresh respawn: the orchestrator has ALREADY parked this topic's
|
|
24926
|
+
// resume entry (claudeResume.park -> _topicResumeMap.park) before
|
|
24927
|
+
// calling us, and a parked entry is invisible to get() /
|
|
24928
|
+
// getForFramework() / getProvenance() — so the next spawn cannot
|
|
24929
|
+
// --resume the cross-framework transcript. This port used to ALSO
|
|
24930
|
+
// call _topicResumeMap.remove(), which DELETES rather than parks;
|
|
24931
|
+
// that was redundant with the park and destroyed the cheap
|
|
24932
|
+
// recovery TopicResumeMap's own §8 rule protects ("'remove' means
|
|
24933
|
+
// PARK, not delete"). It also made the kill-failure abort
|
|
24934
|
+
// unrecoverable: unpark() finds no entry and restores nothing, so
|
|
24935
|
+
// a still-live session lost its resume id to an attempt that was
|
|
24936
|
+
// supposed to be a no-op.
|
|
24937
|
+
return sessionManager.killSessionByTmuxName(sessionName);
|
|
24920
24938
|
},
|
|
24921
24939
|
spawn: async (topicKey, _resolved, _directive) => {
|
|
24922
24940
|
// The orchestrator already killed; respawn re-resolves the (now
|