instar 1.3.801 → 1.3.803
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/dashboard/index.html +25 -0
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +3 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +6 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/IntelligenceRouter.d.ts +8 -0
- package/dist/core/IntelligenceRouter.d.ts.map +1 -1
- package/dist/core/IntelligenceRouter.js +1 -1
- package/dist/core/IntelligenceRouter.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +8 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +28 -1
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SessionManager.d.ts +21 -4
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +48 -22
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/types.d.ts +31 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +3 -2
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +85 -3
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +64 -64
- package/src/scaffold/templates.ts +3 -2
- package/upgrades/1.3.802.md +36 -0
- package/upgrades/1.3.803.md +24 -0
- package/upgrades/session-listing-hygiene.eli16.md +26 -0
- package/upgrades/side-effects/1.3.802.md +31 -0
- package/upgrades/side-effects/non-gating-swap-timeout.md +103 -0
- package/upgrades/side-effects/session-listing-hygiene.md +93 -0
package/dashboard/index.html
CHANGED
|
@@ -229,6 +229,18 @@
|
|
|
229
229
|
background: #3a2a1b;
|
|
230
230
|
color: #fbbf24;
|
|
231
231
|
}
|
|
232
|
+
/* Genuine cross-machine duplicate (CMT-1936 part c): the SAME conversation
|
|
233
|
+
has a live session on 2+ machines at once — the real incoherency, loud
|
|
234
|
+
and red. (The same recurring job on each machine is benign and never
|
|
235
|
+
gets this badge.) */
|
|
236
|
+
.duplicate-badge {
|
|
237
|
+
padding: 1px 6px;
|
|
238
|
+
border-radius: 4px;
|
|
239
|
+
font-size: 10px;
|
|
240
|
+
font-weight: 700;
|
|
241
|
+
background: #4e1b1b;
|
|
242
|
+
color: #f87171;
|
|
243
|
+
}
|
|
232
244
|
/* A session running on ANOTHER machine — now clickable; selecting it
|
|
233
245
|
streams its terminal here via the cross-machine relay (§2.2). The badge
|
|
234
246
|
already names the machine, so a slightly dimmed row is enough hint. */
|
|
@@ -4016,6 +4028,11 @@
|
|
|
4016
4028
|
// per-machine empty-state strip. Populated only when the pool is enabled with
|
|
4017
4029
|
// 2+ machines — single-machine agents never see the strip (strict no-op).
|
|
4018
4030
|
let poolMachinesView = [];
|
|
4031
|
+
// Session-listing hygiene (CMT-1936 part c): names of sessions the server
|
|
4032
|
+
// flagged as GENUINE cross-machine duplicates (the SAME conversation live on
|
|
4033
|
+
// >=2 machines at once). Same recurring job on each machine is benign and is
|
|
4034
|
+
// never flagged. Fed by pool.duplicateTopics from /sessions?scope=pool.
|
|
4035
|
+
let poolDuplicateSessionNames = new Set();
|
|
4019
4036
|
let selfMachineNickname = null;
|
|
4020
4037
|
let activeSession = null;
|
|
4021
4038
|
let activeMachineId = null; // non-null when the active session streams from a peer (§2.2)
|
|
@@ -4370,6 +4387,7 @@
|
|
|
4370
4387
|
<span class="model-badge ${model}">${model}</span>
|
|
4371
4388
|
<span class="platform-badge ${platform}" title="${platformLabel}">${platformIcon}</span>
|
|
4372
4389
|
${session.machineNickname ? `<span class="machine-badge" title="Machine this session runs on">${escapeHtml(session.machineNickname)}</span>` : ''}
|
|
4390
|
+
${(session.duplicateTopic === true || poolDuplicateSessionNames.has(session.name)) ? `<span class="duplicate-badge" title="Genuine cross-machine duplicate: this conversation has a live session on more than one machine at once">⚠ duplicate</span>` : ''}
|
|
4373
4391
|
<span>${elapsed}</span>
|
|
4374
4392
|
</div>
|
|
4375
4393
|
${telemetryHtml}
|
|
@@ -4977,6 +4995,13 @@
|
|
|
4977
4995
|
poolMachinesView = (j.pool && j.pool.enabled && Array.isArray(j.pool.machines) && j.pool.machines.length >= 2)
|
|
4978
4996
|
? j.pool.machines
|
|
4979
4997
|
: [];
|
|
4998
|
+
// Genuine cross-machine duplicates (server-computed): collect the flagged
|
|
4999
|
+
// session NAMES so both local (WS-fed) and remote tiles can badge — the
|
|
5000
|
+
// local row never carries the flag itself (it arrives via WebSocket).
|
|
5001
|
+
poolDuplicateSessionNames = new Set(
|
|
5002
|
+
(j.pool && Array.isArray(j.pool.duplicateTopics) ? j.pool.duplicateTopics : [])
|
|
5003
|
+
.flatMap(d => Array.isArray(d.sessions) ? d.sessions : [])
|
|
5004
|
+
);
|
|
4980
5005
|
renderSessionList();
|
|
4981
5006
|
} catch { /* best-effort — peers may be offline; next tick retries */ }
|
|
4982
5007
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwDH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAyBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6H7D,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;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgmDD;;;;;;;;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,CAonBN;AAgmBD,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;AAwDH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAyBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6H7D,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;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgmDD;;;;;;;;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,CAonBN;AAgmBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0zmBtE;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
|
@@ -5770,6 +5770,9 @@ export async function startServer(options) {
|
|
|
5770
5770
|
// §4.5: per-attempt swap timeout, inline-defaulted to 5s (no ConfigDefaults
|
|
5771
5771
|
// entry — codexExecJson precedent; absent ⇒ 5s, present ⇒ operator's value).
|
|
5772
5772
|
swapAttemptTimeoutMs: config.intelligence?.swapAttemptTimeoutMs ?? 5000,
|
|
5773
|
+
// Non-gating failure-swap uses its own longer cap so cold-start providers can
|
|
5774
|
+
// serve advisory/background calls without slowing safety-gating fail-closed paths.
|
|
5775
|
+
nonGatingSwapTimeoutMs: config.intelligence?.nonGatingSwapTimeoutMs ?? 15000,
|
|
5773
5776
|
// Per-target swap caps + clamp + total budget (docs/specs/
|
|
5774
5777
|
// per-target-swap-timeout-spec.md): all three thread through UNSET by
|
|
5775
5778
|
// default — dark ship, byte-identical routing behavior until the operator
|