instar 1.3.1662 → 1.3.1664

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 (65) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +15 -3
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/ClaudeKeyHealth.d.ts +6 -3
  5. package/dist/core/ClaudeKeyHealth.d.ts.map +1 -1
  6. package/dist/core/ClaudeKeyHealth.js +17 -3
  7. package/dist/core/ClaudeKeyHealth.js.map +1 -1
  8. package/dist/core/SafeGitExecutor.d.ts +33 -11
  9. package/dist/core/SafeGitExecutor.d.ts.map +1 -1
  10. package/dist/core/SafeGitExecutor.js +144 -116
  11. package/dist/core/SafeGitExecutor.js.map +1 -1
  12. package/dist/core/SessionManager.d.ts.map +1 -1
  13. package/dist/core/SessionManager.js +4 -5
  14. package/dist/core/SessionManager.js.map +1 -1
  15. package/dist/core/StateManager.d.ts +8 -0
  16. package/dist/core/StateManager.d.ts.map +1 -1
  17. package/dist/core/StateManager.js +11 -0
  18. package/dist/core/StateManager.js.map +1 -1
  19. package/dist/core/claudeKeyRecovery.d.ts +1 -1
  20. package/dist/core/claudeKeyRecovery.js +1 -1
  21. package/dist/core/pickSessionByTmux.d.ts +11 -0
  22. package/dist/core/pickSessionByTmux.d.ts.map +1 -0
  23. package/dist/core/pickSessionByTmux.js +11 -0
  24. package/dist/core/pickSessionByTmux.js.map +1 -0
  25. package/dist/data/standards-guard-index.json +1 -1
  26. package/dist/data/standards-guard-index.meta.json +2 -2
  27. package/dist/data/standards-registry.meta.json +1 -1
  28. package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
  29. package/dist/native/instar-desktop-host +0 -0
  30. package/dist/recommended/catalog.js +1 -1
  31. package/dist/recommended/catalog.js.map +1 -1
  32. package/dist/recommended/recipes.d.ts.map +1 -1
  33. package/dist/recommended/recipes.js +3 -2
  34. package/dist/recommended/recipes.js.map +1 -1
  35. package/dist/recommended/setupState.d.ts +9 -0
  36. package/dist/recommended/setupState.d.ts.map +1 -1
  37. package/dist/recommended/setupState.js +17 -0
  38. package/dist/recommended/setupState.js.map +1 -1
  39. package/dist/server/AgentServer.d.ts.map +1 -1
  40. package/dist/server/AgentServer.js +5 -0
  41. package/dist/server/AgentServer.js.map +1 -1
  42. package/dist/server/recommendedServiceRoutes.d.ts +2 -0
  43. package/dist/server/recommendedServiceRoutes.d.ts.map +1 -1
  44. package/dist/server/recommendedServiceRoutes.js +41 -7
  45. package/dist/server/recommendedServiceRoutes.js.map +1 -1
  46. package/dist/server/routes.d.ts.map +1 -1
  47. package/dist/server/routes.js +10 -3
  48. package/dist/server/routes.js.map +1 -1
  49. package/dist/threadline/ThreadlineMcpHttpService.d.ts.map +1 -1
  50. package/dist/threadline/ThreadlineMcpHttpService.js +2 -1
  51. package/dist/threadline/ThreadlineMcpHttpService.js.map +1 -1
  52. package/package.json +1 -1
  53. package/src/data/builtin-manifest.json +48 -48
  54. package/src/data/feature-ladders.json +2 -1
  55. package/src/data/standards-guard-index.json +1 -1
  56. package/src/data/standards-guard-index.meta.json +2 -2
  57. package/src/data/standards-registry.meta.json +1 -1
  58. package/upgrades/{1.3.1662.md → 1.3.1663.md} +14 -2
  59. package/upgrades/1.3.1664.md +32 -0
  60. package/upgrades/cloud-key-recovery-reply.eli16.md +1 -1
  61. package/upgrades/side-effects/cloud-key-recovery-reply.md +9 -1
  62. package/upgrades/side-effects/memory-privacy-ladder-off-by-default.md +100 -0
  63. package/upgrades/side-effects/recommended-services-stop-holds.md +64 -0
  64. package/upgrades/side-effects/safe-git-one-verb-classifier.md +117 -0
  65. package/upgrades/side-effects/session-by-tmux.md +48 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAmIA,OAAO,EAAE,cAAc,EAAwD,MAAM,2BAA2B,CAAC;AAgBjH,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA6BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAgK7D,OAAO,KAAK,EAAW,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA4GtD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AA4ID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+DD,+EAA+E;AAC/E,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,IAAI,CAAC,OAAO,2BAA2B,EAAE,cAAc,EAAE,QAAQ,CAAC,GAAG,IAAI,EACpF,OAAO,EAAE,MAAM,GACd,IAAI,CAEN;AAinBD,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,kBAAkB,CAAC,EAAE,MAAM;AAC3B;;qCAEqC;AACrC,WAAW,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;AACzD;;wEAEwE;AACxE,SAAS,CAAC,EAAE;IACV,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;sEAGkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;4BAIwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,OAAO,CAAC,MAAM,CAAC,CAoajB;AA8xBD;;;;;;;;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,CAm6BN;AA+sBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA693BtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDzE;AA+BD,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * TccProtectedPathGuard block beside the worktree detector).
5
5
  */
6
6
  import { configureClaudeChildAuth, sweepClaudeAuthEnvFiles } from '../core/claudeChildAuth.js';
7
+ import { holdAllSetups, holdSetupForSession } from '../recommended/setupState.js';
7
8
  import { SlackPrincipalResolver } from '../permissions/SlackPrincipalResolver.js';
8
9
  import { whatsappPersonKey, whatsappSpeakerJid } from '../users/MemoryAudience.js';
9
10
  import { slackHistoryLabel } from '../messaging/slack/threadHistoryLabel.js';
@@ -9943,6 +9944,10 @@ export async function startServer(options) {
9943
9944
  const classification = await sentinel.classify(message.content);
9944
9945
  if (classification.category === 'emergency-stop') {
9945
9946
  // Kill all sessions
9947
+ try {
9948
+ holdAllSetups(config.stateDir);
9949
+ }
9950
+ catch { /* @silent-fallback-ok — the stop itself must never fail over this */ }
9946
9951
  const sessions = sessionManager.listRunningSessions();
9947
9952
  for (const s of sessions) {
9948
9953
  try {
@@ -17852,6 +17857,10 @@ export async function startServer(options) {
17852
17857
  catch { /* best-effort */ }
17853
17858
  };
17854
17859
  telegram.onSentinelKillSession = (sessionName) => {
17860
+ try {
17861
+ holdSetupForSession(config.stateDir, sessionName, telegram.getTopicForSession(sessionName));
17862
+ }
17863
+ catch { /* @silent-fallback-ok — the stop itself must never fail over this */ }
17855
17864
  // Save resume UUID before killing so respawn can --resume
17856
17865
  if (_topicResumeMap) {
17857
17866
  try {
@@ -17915,7 +17924,7 @@ export async function startServer(options) {
17915
17924
  const threadResumeMap = new ThreadResumeMap(config.stateDir, config.stateDir, undefined, undefined, {
17916
17925
  // A thread bound to a claude-code session checks Claude transcripts only;
17917
17926
  // an unknown session name tries every layout (the bounded lookups).
17918
- frameworkResolver: (sessionName) => state.listSessions().find((s) => s.tmuxSession === sessionName)?.framework,
17927
+ frameworkResolver: (sessionName) => state.findSessionByTmux(sessionName)?.framework,
17919
17928
  });
17920
17929
  // Threadline Phase 1 keystone: the Conversation single-source-of-truth +
17921
17930
  // the warrants-a-reply gate. The gate runs once at the relay inbound funnel
@@ -21138,7 +21147,10 @@ export async function startServer(options) {
21138
21147
  },
21139
21148
  recoveryPrompt: async (sessionName) => {
21140
21149
  const convo = await keyConversationLines(sessionName);
21141
- return convo ? buildKeyRecoveryPrompt(convo.channel, heldMessages(convo.lines, keyNoticeTexts)) : null;
21150
+ if (!convo)
21151
+ return null;
21152
+ const held = heldMessages(convo.lines, keyNoticeTexts);
21153
+ return { prompt: buildKeyRecoveryPrompt(convo.channel, held), held: held.length };
21142
21154
  },
21143
21155
  answeredSince: async (sessionName, sinceMs) => {
21144
21156
  const convo = await keyConversationLines(sessionName);
@@ -26020,7 +26032,7 @@ export async function startServer(options) {
26020
26032
  terminateSession: async (sk, reason, opts) => {
26021
26033
  const topicNum = Number(sk);
26022
26034
  const tmux = Number.isFinite(topicNum) ? telegram?.getSessionForTopic(topicNum) : null;
26023
- const rec = tmux ? state.listSessions().find((s) => s.tmuxSession === tmux) : undefined;
26035
+ const rec = tmux ? state.findSessionByTmux(tmux) : undefined;
26024
26036
  if (!rec)
26025
26037
  return { terminated: false, skipped: 'no-local-session' };
26026
26038
  return terminateWithAuthority(rec.id, reason, {