instar 1.3.1613 → 1.3.1614

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 (92) hide show
  1. package/dashboard/console/machines-model.js +48 -0
  2. package/dashboard/console/machines.js +6 -3
  3. package/dashboard/console/plans-model.js +8 -6
  4. package/dist/core/AppConversationService.d.ts.map +1 -1
  5. package/dist/core/AppConversationService.js +3 -4
  6. package/dist/core/AppConversationService.js.map +1 -1
  7. package/dist/core/AppConversationStore.d.ts +26 -2
  8. package/dist/core/AppConversationStore.d.ts.map +1 -1
  9. package/dist/core/AppConversationStore.js +39 -1
  10. package/dist/core/AppConversationStore.js.map +1 -1
  11. package/dist/core/AppConversationsReplicatedStore.js +1 -1
  12. package/dist/core/AppConversationsReplicatedStore.js.map +1 -1
  13. package/dist/core/MobilePush.d.ts +3 -0
  14. package/dist/core/MobilePush.d.ts.map +1 -1
  15. package/dist/core/MobilePush.js +9 -3
  16. package/dist/core/MobilePush.js.map +1 -1
  17. package/dist/core/PostUpdateMigrator.d.ts +6 -0
  18. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  19. package/dist/core/PostUpdateMigrator.js +24 -0
  20. package/dist/core/PostUpdateMigrator.js.map +1 -1
  21. package/dist/core/appMediaReplyFiles.d.ts +10 -0
  22. package/dist/core/appMediaReplyFiles.d.ts.map +1 -1
  23. package/dist/core/appMediaReplyFiles.js +37 -19
  24. package/dist/core/appMediaReplyFiles.js.map +1 -1
  25. package/dist/core/appMediaTypes.d.ts +7 -0
  26. package/dist/core/appMediaTypes.d.ts.map +1 -1
  27. package/dist/core/appMediaTypes.js +17 -0
  28. package/dist/core/appMediaTypes.js.map +1 -1
  29. package/dist/core/appPlatformMedia.d.ts +44 -0
  30. package/dist/core/appPlatformMedia.d.ts.map +1 -0
  31. package/dist/core/appPlatformMedia.js +121 -0
  32. package/dist/core/appPlatformMedia.js.map +1 -0
  33. package/dist/data/standards-guard-index.json +1 -1
  34. package/dist/data/standards-guard-index.meta.json +2 -2
  35. package/dist/data/standards-registry.meta.json +1 -1
  36. package/dist/messaging/TelegramAdapter.d.ts +21 -0
  37. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  38. package/dist/messaging/TelegramAdapter.js +48 -0
  39. package/dist/messaging/TelegramAdapter.js.map +1 -1
  40. package/dist/monitoring/GreenPrAutoMerger.d.ts.map +1 -1
  41. package/dist/monitoring/GreenPrAutoMerger.js +5 -2
  42. package/dist/monitoring/GreenPrAutoMerger.js.map +1 -1
  43. package/dist/monitoring/greenPrLogic.d.ts +7 -1
  44. package/dist/monitoring/greenPrLogic.d.ts.map +1 -1
  45. package/dist/monitoring/greenPrLogic.js +13 -0
  46. package/dist/monitoring/greenPrLogic.js.map +1 -1
  47. package/dist/native/instar-desktop-host +0 -0
  48. package/dist/scaffold/templates.d.ts.map +1 -1
  49. package/dist/scaffold/templates.js +2 -1
  50. package/dist/scaffold/templates.js.map +1 -1
  51. package/dist/server/AgentServer.d.ts.map +1 -1
  52. package/dist/server/AgentServer.js +17 -1
  53. package/dist/server/AgentServer.js.map +1 -1
  54. package/dist/server/CapabilityIndex.js +3 -3
  55. package/dist/server/CapabilityIndex.js.map +1 -1
  56. package/dist/server/machineMaintenancePool.d.ts +84 -0
  57. package/dist/server/machineMaintenancePool.d.ts.map +1 -0
  58. package/dist/server/machineMaintenancePool.js +165 -0
  59. package/dist/server/machineMaintenancePool.js.map +1 -0
  60. package/dist/server/mobileConversationRoutes.d.ts +7 -0
  61. package/dist/server/mobileConversationRoutes.d.ts.map +1 -1
  62. package/dist/server/mobileConversationRoutes.js +55 -1
  63. package/dist/server/mobileConversationRoutes.js.map +1 -1
  64. package/dist/server/mobileMediaRoutes.d.ts.map +1 -1
  65. package/dist/server/mobileMediaRoutes.js +9 -5
  66. package/dist/server/mobileMediaRoutes.js.map +1 -1
  67. package/dist/server/mobilePairingRoutes.d.ts +0 -5
  68. package/dist/server/mobilePairingRoutes.d.ts.map +1 -1
  69. package/dist/server/mobilePairingRoutes.js +11 -2
  70. package/dist/server/mobilePairingRoutes.js.map +1 -1
  71. package/dist/server/routes.d.ts.map +1 -1
  72. package/dist/server/routes.js +59 -4
  73. package/dist/server/routes.js.map +1 -1
  74. package/package.json +1 -1
  75. package/scripts/lib/release-local-steps.mjs +11 -2
  76. package/scripts/safe-merge.mjs +35 -0
  77. package/scripts/standards-coverage.mjs +6 -1
  78. package/src/data/builtin-manifest.json +64 -64
  79. package/src/data/standards-guard-index.json +1 -1
  80. package/src/data/standards-guard-index.meta.json +2 -2
  81. package/src/data/standards-registry.meta.json +1 -1
  82. package/src/scaffold/templates.ts +2 -1
  83. package/upgrades/1.3.1614.md +73 -0
  84. package/upgrades/side-effects/app-reply-push-preview.eli16.md +11 -0
  85. package/upgrades/side-effects/app-reply-push-preview.md +57 -0
  86. package/upgrades/side-effects/chat-media-telegram-inbound.eli16.md +11 -0
  87. package/upgrades/side-effects/chat-media-telegram-inbound.md +75 -0
  88. package/upgrades/side-effects/console-blocker-topic-names.eli16.md +5 -0
  89. package/upgrades/side-effects/console-blocker-topic-names.md +34 -0
  90. package/upgrades/side-effects/machine-maintenance-pool-view.md +107 -0
  91. package/upgrades/side-effects/release-local-pending-runs.md +60 -0
  92. package/upgrades/side-effects/stacked-pr-and-ci-timeouts.md +120 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.1613",
3
+ "version": "1.3.1614",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -377,8 +377,13 @@ export const ACTIVE_RUN_STATUSES = ['queued', 'in_progress', 'waiting', 'request
377
377
  * `concurrency: publish` without cancelling, so a run queued for an EARLIER
378
378
  * merge publishes whatever main is when it gets a runner. That races a local
379
379
  * release on the same version. So no `--commit` filter. One query per active
380
- * status (so an old queued run is never pushed out of a recent-runs page); any
381
- * query that fails or is unreadable makes the whole answer unknown.
380
+ * status (so an old queued run is never pushed out of a recent-runs page), plus
381
+ * one unfiltered recent-runs query that counts every run not yet `completed`:
382
+ * GitHub reports a run waiting behind another in `concurrency: publish` as
383
+ * `pending`, which none of the status filters returns (and which gh 2.64 did
384
+ * not accept as a filter). Cancelling only the queued run would then admit the
385
+ * pending one to race the local release. Any query that fails or is unreadable
386
+ * makes the whole answer unknown.
382
387
  * @returns {{ state: 'clear'|'active'|'unknown', ids: number[] }}
383
388
  */
384
389
  export function activePublishRuns(run, slug) {
@@ -390,6 +395,10 @@ export function activePublishRuns(run, slug) {
390
395
  if (v.state === 'unknown') return { state: 'unknown', ids: [] };
391
396
  ids.push(...v.ids);
392
397
  }
398
+ const recent = run('gh', ['run', 'list', '-R', slug, '--workflow', 'publish.yml', '--limit', '100', '--json', 'databaseId,status,headSha']);
399
+ const rv = ciRunState(recent.status === 0 ? recent.stdout : null);
400
+ if (rv.state === 'unknown') return { state: 'unknown', ids: [] };
401
+ ids.push(...rv.ids);
393
402
  return ids.length ? { state: 'active', ids: [...new Set(ids)] } : { state: 'clear', ids: [] };
394
403
  }
395
404
 
@@ -211,6 +211,7 @@ export function capabilities() {
211
211
  'reviews-required-refusal', 'classified-exits', 'delete-branch', 'deadline-ms',
212
212
  'native-auto-merge', 'auto-arm-unavailable-detection',
213
213
  'approval-required-refusal', 'request-review-from', 'local-floor', 'attempt-token',
214
+ 'non-main-base-refusal',
214
215
  ],
215
216
  floorModes: [...MERGE_FLOOR_MODES],
216
217
  exitCodes: { merged: 0, refused: 1, usageOrError: 2, alreadyMerged: 3, closed: 4, autoMergeArmed: 5 },
@@ -885,6 +886,32 @@ export function noActionsChecksRan(checkRuns) {
885
886
  return !(checkRuns ?? []).some(cr => cr?.appSlug === 'github-actions');
886
887
  }
887
888
 
889
+ /**
890
+ * The one base a PR may merge into (ACT-053, 2026-11-02). ci.yml runs the
891
+ * suite only for PRs into main and the required checks are scoped to main, so
892
+ * a PR into a feature branch (a stacked PR) runs no suite on GitHub yet shows
893
+ * mergeStateStatus CLEAN — and `--auto` would let GitHub merge it at once
894
+ * (PR #2202 merged branch-to-branch on 2026-10-19). Stacks still work: review
895
+ * them in place, then merge the bottom PR into main; the next PR is retargeted
896
+ * to main and verified there. Running the full suite on every stacked push
897
+ * would double CI load on an allowance already saturated (see ci.yml).
898
+ */
899
+ export const MERGE_BASE = 'main';
900
+
901
+ /** Pure: null when the base is mergeable, else the refusal for it. */
902
+ export function nonMainBaseRefusal(baseRefName) {
903
+ const base = typeof baseRefName === 'string' ? baseRefName : '';
904
+ if (base === MERGE_BASE) return null;
905
+ return {
906
+ result: 'refused:non-main-base',
907
+ base: base || null,
908
+ message: `safe-merge: REFUSING — this PR's base is ${base ? `"${base}"` : 'unreadable'}, not ${MERGE_BASE}. ` +
909
+ `Nothing runs the test suite on GitHub for a PR into a feature branch, so a green badge there means nothing. ` +
910
+ `Merge the PR below it into ${MERGE_BASE} first, then retarget this PR to ${MERGE_BASE} (gh pr edit <PR#> --base ${MERGE_BASE}). ` +
911
+ `Retargeting alone starts no CI run: push a commit (e.g. rebase onto ${MERGE_BASE}) or close and reopen the PR, then retry once CI is green.`,
912
+ };
913
+ }
914
+
888
915
  function refuseNoChecksRan(pr, head) {
889
916
  result({ result: 'refused:no-checks-ran', pr: Number(pr), head });
890
917
  console.error(`safe-merge: REFUSING — NO GitHub Actions checks ran on head ${String(head).slice(0, 12)}. This is NOT green. CI never started (a conflict with main can suppress pull_request); rebase or trigger the workflow, then retry.`);
@@ -1136,6 +1163,14 @@ async function main() {
1136
1163
  result({ result: 'refused:draft', pr: Number(pr) });
1137
1164
  process.exit(1);
1138
1165
  }
1166
+ // Before every floor and before --auto: a feature-branch base is never a
1167
+ // landing, and GitHub requires nothing of it (ACT-053).
1168
+ const baseRefusal = nonMainBaseRefusal(view.baseRefName);
1169
+ if (baseRefusal) {
1170
+ result({ result: baseRefusal.result, pr: Number(pr), base: baseRefusal.base });
1171
+ console.error(baseRefusal.message);
1172
+ process.exit(1);
1173
+ }
1139
1174
  const pinnedHead = args.matchHeadCommit ?? view.headRefOid;
1140
1175
  if (args.matchHeadCommit && view.headRefOid && args.matchHeadCommit !== view.headRefOid) {
1141
1176
  result({ result: 'refused:head-moved', pr: Number(pr), expected: args.matchHeadCommit, actual: view.headRefOid });
@@ -637,7 +637,12 @@ function validateRootSelfWiring() {
637
637
  // silent one. The guard caught exactly that when this key was introduced.
638
638
  STANDARDS_DIRECTION_REVIEW_FILE: '${{ runner.temp }}/standards-direction-review.json',
639
639
  };
640
- if (!exactKeys(job, ['name', 'runs-on', 'permissions', 'steps']) ||
640
+ // ACT-059 (2026-11-02): every CI job declares timeout-minutes so a hang fails
641
+ // within the hour instead of holding a PR for GitHub's 6-hour default. The key
642
+ // is part of the pinned shape and must be a positive whole number of minutes.
643
+ const timeout = job?.['timeout-minutes'];
644
+ if (!exactKeys(job, ['name', 'runs-on', 'permissions', 'timeout-minutes', 'steps']) ||
645
+ !Number.isSafeInteger(timeout) || timeout <= 0 || timeout > 60 ||
641
646
  // Second-pass finding 2: the token scope path B needs is now EXPLICIT and
642
647
  // pinned, not inherited from the repository's default workflow permission —
643
648
  // a tightened org default would otherwise 403 the association call and
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-11-03T03:53:53.604Z",
5
- "instarVersion": "1.3.1613",
4
+ "generatedAt": "2026-11-03T04:08:53.237Z",
5
+ "instarVersion": "1.3.1614",
6
6
  "entryCount": 206,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -11,7 +11,7 @@
11
11
  "domain": "identity",
12
12
  "sourcePath": "src/core/PostUpdateMigrator.ts",
13
13
  "installedPath": ".instar/hooks/instar/session-start.sh",
14
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
14
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
15
15
  "since": "2025-01-01"
16
16
  },
17
17
  "hook:dangerous-command-guard": {
@@ -20,7 +20,7 @@
20
20
  "domain": "safety",
21
21
  "sourcePath": "src/core/PostUpdateMigrator.ts",
22
22
  "installedPath": ".instar/hooks/instar/dangerous-command-guard.sh",
23
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
23
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
24
24
  "since": "2025-01-01"
25
25
  },
26
26
  "hook:grounding-before-messaging": {
@@ -29,7 +29,7 @@
29
29
  "domain": "safety",
30
30
  "sourcePath": "src/core/PostUpdateMigrator.ts",
31
31
  "installedPath": ".instar/hooks/instar/grounding-before-messaging.sh",
32
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
32
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
33
33
  "since": "2025-01-01"
34
34
  },
35
35
  "hook:compaction-recovery": {
@@ -38,7 +38,7 @@
38
38
  "domain": "identity",
39
39
  "sourcePath": "src/core/PostUpdateMigrator.ts",
40
40
  "installedPath": ".instar/hooks/instar/compaction-recovery.sh",
41
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
41
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
42
42
  "since": "2025-01-01"
43
43
  },
44
44
  "hook:external-operation-gate": {
@@ -47,7 +47,7 @@
47
47
  "domain": "safety",
48
48
  "sourcePath": "src/core/PostUpdateMigrator.ts",
49
49
  "installedPath": ".instar/hooks/instar/external-operation-gate.js",
50
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
50
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
51
51
  "since": "2025-01-01"
52
52
  },
53
53
  "hook:deferral-detector": {
@@ -56,7 +56,7 @@
56
56
  "domain": "safety",
57
57
  "sourcePath": "src/core/PostUpdateMigrator.ts",
58
58
  "installedPath": ".instar/hooks/instar/deferral-detector.js",
59
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
59
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
60
60
  "since": "2025-01-01"
61
61
  },
62
62
  "hook:self-stop-guard": {
@@ -65,7 +65,7 @@
65
65
  "domain": "coherence",
66
66
  "sourcePath": "src/core/PostUpdateMigrator.ts",
67
67
  "installedPath": ".instar/hooks/instar/self-stop-guard.js",
68
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
68
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
69
69
  "since": "2025-01-01"
70
70
  },
71
71
  "hook:post-action-reflection": {
@@ -74,7 +74,7 @@
74
74
  "domain": "evolution",
75
75
  "sourcePath": "src/core/PostUpdateMigrator.ts",
76
76
  "installedPath": ".instar/hooks/instar/post-action-reflection.js",
77
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
77
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
78
78
  "since": "2025-01-01"
79
79
  },
80
80
  "hook:external-communication-guard": {
@@ -83,7 +83,7 @@
83
83
  "domain": "safety",
84
84
  "sourcePath": "src/core/PostUpdateMigrator.ts",
85
85
  "installedPath": ".instar/hooks/instar/external-communication-guard.js",
86
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
86
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
87
87
  "since": "2025-01-01"
88
88
  },
89
89
  "hook:telegram-origin-guard": {
@@ -101,7 +101,7 @@
101
101
  "domain": "coherence",
102
102
  "sourcePath": "src/core/PostUpdateMigrator.ts",
103
103
  "installedPath": ".instar/hooks/instar/scope-coherence-collector.js",
104
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
104
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
105
105
  "since": "2025-01-01"
106
106
  },
107
107
  "hook:scope-coherence-checkpoint": {
@@ -110,7 +110,7 @@
110
110
  "domain": "coherence",
111
111
  "sourcePath": "src/core/PostUpdateMigrator.ts",
112
112
  "installedPath": ".instar/hooks/instar/scope-coherence-checkpoint.js",
113
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
113
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
114
114
  "since": "2025-01-01"
115
115
  },
116
116
  "hook:free-text-guard": {
@@ -119,7 +119,7 @@
119
119
  "domain": "safety",
120
120
  "sourcePath": "src/core/PostUpdateMigrator.ts",
121
121
  "installedPath": ".instar/hooks/instar/free-text-guard.sh",
122
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
122
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
123
123
  "since": "2025-01-01"
124
124
  },
125
125
  "hook:claim-intercept": {
@@ -128,7 +128,7 @@
128
128
  "domain": "coherence",
129
129
  "sourcePath": "src/core/PostUpdateMigrator.ts",
130
130
  "installedPath": ".instar/hooks/instar/claim-intercept.js",
131
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
131
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
132
132
  "since": "2025-01-01"
133
133
  },
134
134
  "hook:claim-intercept-response": {
@@ -137,7 +137,7 @@
137
137
  "domain": "coherence",
138
138
  "sourcePath": "src/core/PostUpdateMigrator.ts",
139
139
  "installedPath": ".instar/hooks/instar/claim-intercept-response.js",
140
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
140
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
141
141
  "since": "2025-01-01"
142
142
  },
143
143
  "hook:stop-gate-router": {
@@ -146,7 +146,7 @@
146
146
  "domain": "safety",
147
147
  "sourcePath": "src/core/PostUpdateMigrator.ts",
148
148
  "installedPath": ".instar/hooks/instar/stop-gate-router.js",
149
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
149
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
150
150
  "since": "2025-01-01"
151
151
  },
152
152
  "hook:auto-approve-permissions": {
@@ -155,7 +155,7 @@
155
155
  "domain": "safety",
156
156
  "sourcePath": "src/core/PostUpdateMigrator.ts",
157
157
  "installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
158
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
158
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
159
159
  "since": "2025-01-01"
160
160
  },
161
161
  "job:health-check": {
@@ -435,7 +435,7 @@
435
435
  "type": "route-group",
436
436
  "domain": "monitoring",
437
437
  "sourcePath": "src/server/routes.ts",
438
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
438
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
439
439
  "since": "2025-01-01"
440
440
  },
441
441
  "route-group:agents": {
@@ -443,7 +443,7 @@
443
443
  "type": "route-group",
444
444
  "domain": "sessions",
445
445
  "sourcePath": "src/server/routes.ts",
446
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
446
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
447
447
  "since": "2025-01-01"
448
448
  },
449
449
  "route-group:backups": {
@@ -451,7 +451,7 @@
451
451
  "type": "route-group",
452
452
  "domain": "operations",
453
453
  "sourcePath": "src/server/routes.ts",
454
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
454
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
455
455
  "since": "2025-01-01"
456
456
  },
457
457
  "route-group:git": {
@@ -459,7 +459,7 @@
459
459
  "type": "route-group",
460
460
  "domain": "coordination",
461
461
  "sourcePath": "src/server/routes.ts",
462
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
462
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
463
463
  "since": "2025-01-01"
464
464
  },
465
465
  "route-group:memory": {
@@ -467,7 +467,7 @@
467
467
  "type": "route-group",
468
468
  "domain": "memory",
469
469
  "sourcePath": "src/server/routes.ts",
470
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
470
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
471
471
  "since": "2025-01-01"
472
472
  },
473
473
  "route-group:semantic": {
@@ -475,7 +475,7 @@
475
475
  "type": "route-group",
476
476
  "domain": "memory",
477
477
  "sourcePath": "src/server/routes.ts",
478
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
478
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
479
479
  "since": "2025-01-01"
480
480
  },
481
481
  "route-group:status": {
@@ -483,7 +483,7 @@
483
483
  "type": "route-group",
484
484
  "domain": "monitoring",
485
485
  "sourcePath": "src/server/routes.ts",
486
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
486
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
487
487
  "since": "2025-01-01"
488
488
  },
489
489
  "route-group:capabilities": {
@@ -491,7 +491,7 @@
491
491
  "type": "route-group",
492
492
  "domain": "mapping",
493
493
  "sourcePath": "src/server/routes.ts",
494
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
494
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
495
495
  "since": "2025-01-01"
496
496
  },
497
497
  "route-group:project-map": {
@@ -499,7 +499,7 @@
499
499
  "type": "route-group",
500
500
  "domain": "mapping",
501
501
  "sourcePath": "src/server/routes.ts",
502
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
502
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
503
503
  "since": "2025-01-01"
504
504
  },
505
505
  "route-group:coherence": {
@@ -507,7 +507,7 @@
507
507
  "type": "route-group",
508
508
  "domain": "coherence",
509
509
  "sourcePath": "src/server/routes.ts",
510
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
510
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
511
511
  "since": "2025-01-01"
512
512
  },
513
513
  "route-group:topic-bindings": {
@@ -515,7 +515,7 @@
515
515
  "type": "route-group",
516
516
  "domain": "sessions",
517
517
  "sourcePath": "src/server/routes.ts",
518
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
518
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
519
519
  "since": "2025-01-01"
520
520
  },
521
521
  "route-group:context": {
@@ -523,7 +523,7 @@
523
523
  "type": "route-group",
524
524
  "domain": "context",
525
525
  "sourcePath": "src/server/routes.ts",
526
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
526
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
527
527
  "since": "2025-01-01"
528
528
  },
529
529
  "route-group:scope-coherence": {
@@ -531,7 +531,7 @@
531
531
  "type": "route-group",
532
532
  "domain": "coherence",
533
533
  "sourcePath": "src/server/routes.ts",
534
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
534
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
535
535
  "since": "2025-01-01"
536
536
  },
537
537
  "route-group:canonical-state": {
@@ -539,7 +539,7 @@
539
539
  "type": "route-group",
540
540
  "domain": "state",
541
541
  "sourcePath": "src/server/routes.ts",
542
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
542
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
543
543
  "since": "2025-01-01"
544
544
  },
545
545
  "route-group:ci": {
@@ -547,7 +547,7 @@
547
547
  "type": "route-group",
548
548
  "domain": "monitoring",
549
549
  "sourcePath": "src/server/routes.ts",
550
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
550
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
551
551
  "since": "2025-01-01"
552
552
  },
553
553
  "route-group:sessions": {
@@ -555,7 +555,7 @@
555
555
  "type": "route-group",
556
556
  "domain": "sessions",
557
557
  "sourcePath": "src/server/routes.ts",
558
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
558
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
559
559
  "since": "2025-01-01"
560
560
  },
561
561
  "route-group:jobs": {
@@ -563,7 +563,7 @@
563
563
  "type": "route-group",
564
564
  "domain": "scheduling",
565
565
  "sourcePath": "src/server/routes.ts",
566
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
566
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
567
567
  "since": "2025-01-01"
568
568
  },
569
569
  "route-group:skip-ledger": {
@@ -571,7 +571,7 @@
571
571
  "type": "route-group",
572
572
  "domain": "scheduling",
573
573
  "sourcePath": "src/server/routes.ts",
574
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
574
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
575
575
  "since": "2025-01-01"
576
576
  },
577
577
  "route-group:telegram": {
@@ -579,7 +579,7 @@
579
579
  "type": "route-group",
580
580
  "domain": "communication",
581
581
  "sourcePath": "src/server/routes.ts",
582
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
582
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
583
583
  "since": "2025-01-01"
584
584
  },
585
585
  "route-group:attention": {
@@ -587,7 +587,7 @@
587
587
  "type": "route-group",
588
588
  "domain": "communication",
589
589
  "sourcePath": "src/server/routes.ts",
590
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
590
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
591
591
  "since": "2025-01-01"
592
592
  },
593
593
  "route-group:relationships": {
@@ -595,7 +595,7 @@
595
595
  "type": "route-group",
596
596
  "domain": "relationships",
597
597
  "sourcePath": "src/server/routes.ts",
598
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
598
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
599
599
  "since": "2025-01-01"
600
600
  },
601
601
  "route-group:feedback": {
@@ -603,7 +603,7 @@
603
603
  "type": "route-group",
604
604
  "domain": "feedback",
605
605
  "sourcePath": "src/server/routes.ts",
606
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
606
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
607
607
  "since": "2025-01-01"
608
608
  },
609
609
  "route-group:updates": {
@@ -611,7 +611,7 @@
611
611
  "type": "route-group",
612
612
  "domain": "updates",
613
613
  "sourcePath": "src/server/routes.ts",
614
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
614
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
615
615
  "since": "2025-01-01"
616
616
  },
617
617
  "route-group:dispatches": {
@@ -619,7 +619,7 @@
619
619
  "type": "route-group",
620
620
  "domain": "dispatches",
621
621
  "sourcePath": "src/server/routes.ts",
622
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
622
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
623
623
  "since": "2025-01-01"
624
624
  },
625
625
  "route-group:quota": {
@@ -627,7 +627,7 @@
627
627
  "type": "route-group",
628
628
  "domain": "monitoring",
629
629
  "sourcePath": "src/server/routes.ts",
630
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
630
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
631
631
  "since": "2025-01-01"
632
632
  },
633
633
  "route-group:publishing": {
@@ -635,7 +635,7 @@
635
635
  "type": "route-group",
636
636
  "domain": "publishing",
637
637
  "sourcePath": "src/server/routes.ts",
638
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
638
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
639
639
  "since": "2025-01-01"
640
640
  },
641
641
  "route-group:private-views": {
@@ -643,7 +643,7 @@
643
643
  "type": "route-group",
644
644
  "domain": "publishing",
645
645
  "sourcePath": "src/server/routes.ts",
646
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
646
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
647
647
  "since": "2025-01-01"
648
648
  },
649
649
  "route-group:tunnel": {
@@ -651,7 +651,7 @@
651
651
  "type": "route-group",
652
652
  "domain": "networking",
653
653
  "sourcePath": "src/server/routes.ts",
654
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
654
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
655
655
  "since": "2025-01-01"
656
656
  },
657
657
  "route-group:events": {
@@ -659,7 +659,7 @@
659
659
  "type": "route-group",
660
660
  "domain": "networking",
661
661
  "sourcePath": "src/server/routes.ts",
662
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
662
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
663
663
  "since": "2025-01-01"
664
664
  },
665
665
  "route-group:evolution": {
@@ -667,7 +667,7 @@
667
667
  "type": "route-group",
668
668
  "domain": "evolution",
669
669
  "sourcePath": "src/server/routes.ts",
670
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
670
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
671
671
  "since": "2025-01-01"
672
672
  },
673
673
  "route-group:watchdog": {
@@ -675,7 +675,7 @@
675
675
  "type": "route-group",
676
676
  "domain": "monitoring",
677
677
  "sourcePath": "src/server/routes.ts",
678
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
678
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
679
679
  "since": "2025-01-01"
680
680
  },
681
681
  "route-group:topic-memory": {
@@ -683,7 +683,7 @@
683
683
  "type": "route-group",
684
684
  "domain": "memory",
685
685
  "sourcePath": "src/server/routes.ts",
686
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
686
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
687
687
  "since": "2025-01-01"
688
688
  },
689
689
  "route-group:state-sync": {
@@ -691,7 +691,7 @@
691
691
  "type": "route-group",
692
692
  "domain": "coordination",
693
693
  "sourcePath": "src/server/routes.ts",
694
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
694
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
695
695
  "since": "2025-01-01"
696
696
  },
697
697
  "route-group:intent": {
@@ -699,7 +699,7 @@
699
699
  "type": "route-group",
700
700
  "domain": "intent",
701
701
  "sourcePath": "src/server/routes.ts",
702
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
702
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
703
703
  "since": "2025-01-01"
704
704
  },
705
705
  "route-group:triage": {
@@ -707,7 +707,7 @@
707
707
  "type": "route-group",
708
708
  "domain": "safety",
709
709
  "sourcePath": "src/server/routes.ts",
710
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
710
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
711
711
  "since": "2025-01-01"
712
712
  },
713
713
  "route-group:operations": {
@@ -715,7 +715,7 @@
715
715
  "type": "route-group",
716
716
  "domain": "safety",
717
717
  "sourcePath": "src/server/routes.ts",
718
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
718
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
719
719
  "since": "2025-01-01"
720
720
  },
721
721
  "route-group:sentinel": {
@@ -723,7 +723,7 @@
723
723
  "type": "route-group",
724
724
  "domain": "safety",
725
725
  "sourcePath": "src/server/routes.ts",
726
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
726
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
727
727
  "since": "2025-01-01"
728
728
  },
729
729
  "route-group:trust": {
@@ -731,7 +731,7 @@
731
731
  "type": "route-group",
732
732
  "domain": "safety",
733
733
  "sourcePath": "src/server/routes.ts",
734
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
734
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
735
735
  "since": "2025-01-01"
736
736
  },
737
737
  "route-group:monitoring": {
@@ -739,7 +739,7 @@
739
739
  "type": "route-group",
740
740
  "domain": "monitoring",
741
741
  "sourcePath": "src/server/routes.ts",
742
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
742
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
743
743
  "since": "2025-01-01"
744
744
  },
745
745
  "route-group:commitments": {
@@ -747,7 +747,7 @@
747
747
  "type": "route-group",
748
748
  "domain": "commitments",
749
749
  "sourcePath": "src/server/routes.ts",
750
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
750
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
751
751
  "since": "2025-01-01"
752
752
  },
753
753
  "route-group:episodes": {
@@ -755,7 +755,7 @@
755
755
  "type": "route-group",
756
756
  "domain": "memory",
757
757
  "sourcePath": "src/server/routes.ts",
758
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
758
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
759
759
  "since": "2025-01-01"
760
760
  },
761
761
  "route-group:messages": {
@@ -763,7 +763,7 @@
763
763
  "type": "route-group",
764
764
  "domain": "coordination",
765
765
  "sourcePath": "src/server/routes.ts",
766
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
766
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
767
767
  "since": "2025-01-01"
768
768
  },
769
769
  "route-group:system-reviews": {
@@ -771,7 +771,7 @@
771
771
  "type": "route-group",
772
772
  "domain": "monitoring",
773
773
  "sourcePath": "src/server/routes.ts",
774
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
774
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
775
775
  "since": "2025-01-01"
776
776
  },
777
777
  "route-group:machine-mesh": {
@@ -787,7 +787,7 @@
787
787
  "type": "route-group",
788
788
  "domain": "security",
789
789
  "sourcePath": "src/server/routes.ts",
790
- "contentHash": "9fc48bb94fce88ad44710e60d6b5b3be4a76a3ea6fdf614df587cb3017b7a7dc",
790
+ "contentHash": "570c3128a2d98c926488e006f66a37f1531b897893525230fc99b2398eae9258",
791
791
  "since": "2025-01-01"
792
792
  },
793
793
  "cli:init": {
@@ -1563,7 +1563,7 @@
1563
1563
  "type": "subsystem",
1564
1564
  "domain": "server",
1565
1565
  "sourcePath": "src/server/AgentServer.ts",
1566
- "contentHash": "ef393de2803ba28c480d4022acfba5fbbbb6e08d185f0aee8c029752d1552a10",
1566
+ "contentHash": "9378df510ea587895bac53b88990b3a4baf186aedc6bcf540a488043bff1c8d5",
1567
1567
  "since": "2025-01-01"
1568
1568
  },
1569
1569
  "subsystem:session-manager": {
@@ -1595,7 +1595,7 @@
1595
1595
  "type": "subsystem",
1596
1596
  "domain": "updates",
1597
1597
  "sourcePath": "src/core/PostUpdateMigrator.ts",
1598
- "contentHash": "f10563c085e40934c2fd13b85fe930a7d87790bab9551401efeffdceeb6b7b2a",
1598
+ "contentHash": "60a2b2e0fba734ef0a864b56d8cfa2841e317bbd9af6dd32addd873ef7fb4609",
1599
1599
  "since": "2025-01-01"
1600
1600
  },
1601
1601
  "subsystem:scheduler": {