instar 1.3.368 → 1.3.369
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 +21 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/core/CoherenceJournal.d.ts +8 -0
- package/dist/core/CoherenceJournal.d.ts.map +1 -1
- package/dist/core/CoherenceJournal.js +62 -3
- package/dist/core/CoherenceJournal.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/{1.3.368.md → 1.3.369.md} +29 -0
- package/upgrades/side-effects/journal-lock-retry-pin-fallback.md +64 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6SH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuxDD,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;AA6SH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuxDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqgTtE;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
|
@@ -2467,6 +2467,12 @@ export async function startServer(options) {
|
|
|
2467
2467
|
continue;
|
|
2468
2468
|
if (!seenRuns.has(j.topic)) {
|
|
2469
2469
|
const runId = autonomousRunId(j.startedAt, j.topic);
|
|
2470
|
+
// #925: while the writer is locked out the emit below is
|
|
2471
|
+
// dropped — do NOT mark the run seen, so it re-emits on a
|
|
2472
|
+
// later tick once the lock recovers (op-key dedupe makes
|
|
2473
|
+
// re-emits safe).
|
|
2474
|
+
if (journal.isLockedOut)
|
|
2475
|
+
continue;
|
|
2470
2476
|
seenRuns.set(j.topic, { runId, file: j.file });
|
|
2471
2477
|
journal.emitAutonomousRun(topicNum, { action: 'started', runId, artifactPaths: [j.file] });
|
|
2472
2478
|
}
|
|
@@ -10093,7 +10099,21 @@ export async function startServer(options) {
|
|
|
10093
10099
|
const wsSelf = cjOwnMachineId ?? meshSelfId;
|
|
10094
10100
|
const wsOwnerOf = (topic) => {
|
|
10095
10101
|
const rec = sessionOwnershipRegistry?.read(String(topic));
|
|
10096
|
-
|
|
10102
|
+
if (rec?.ownerMachineId) {
|
|
10103
|
+
return { owner: rec.ownerMachineId, epoch: rec.ownershipEpoch ?? null };
|
|
10104
|
+
}
|
|
10105
|
+
// Issue #926 (live 2026-06-06): ownership only CASes when real
|
|
10106
|
+
// traffic flows — a QUIET topic just moved here has owner:null
|
|
10107
|
+
// + a pin. The pin IS the live placement authority for unowned
|
|
10108
|
+
// topics; without this fallback the fetch reflex refuses in
|
|
10109
|
+
// exactly the post-move state it exists for. Epoch 0 keeps the
|
|
10110
|
+
// per-write recheck coherent (a real claim bumps past it and
|
|
10111
|
+
// the in-flight pull aborts as superseded, by design).
|
|
10112
|
+
const pin = _topicPinStore?.get(String(topic));
|
|
10113
|
+
if (pin?.pinned && pin.preferredMachine === wsSelf) {
|
|
10114
|
+
return { owner: wsSelf, epoch: 0 };
|
|
10115
|
+
}
|
|
10116
|
+
return { owner: null, epoch: null };
|
|
10097
10117
|
};
|
|
10098
10118
|
workingSetPullCoordinator = new wscMod.WorkingSetPullCoordinator({
|
|
10099
10119
|
stateDir: config.stateDir,
|