instar 1.3.804 → 1.3.806
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 +19 -1
- package/dashboard/subscriptions.js +513 -67
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +43 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/core/CoherenceJournal.d.ts +14 -0
- package/dist/core/CoherenceJournal.d.ts.map +1 -1
- package/dist/core/CoherenceJournal.js +33 -0
- package/dist/core/CoherenceJournal.js.map +1 -1
- package/dist/core/EnrollmentWizard.d.ts +23 -0
- package/dist/core/EnrollmentWizard.d.ts.map +1 -1
- package/dist/core/EnrollmentWizard.js +42 -1
- package/dist/core/EnrollmentWizard.js.map +1 -1
- package/dist/core/JournalSyncApplier.d.ts +14 -0
- package/dist/core/JournalSyncApplier.d.ts.map +1 -1
- package/dist/core/JournalSyncApplier.js +33 -0
- package/dist/core/JournalSyncApplier.js.map +1 -1
- package/dist/core/ReplicatedPeerStreamReader.d.ts +29 -1
- package/dist/core/ReplicatedPeerStreamReader.d.ts.map +1 -1
- package/dist/core/ReplicatedPeerStreamReader.js +175 -0
- package/dist/core/ReplicatedPeerStreamReader.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +128 -30
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +46 -46
- package/upgrades/1.3.805.md +41 -0
- package/upgrades/1.3.806.md +30 -0
- package/upgrades/eli16/replicated-witness-index.md +19 -0
- package/upgrades/side-effects/replicated-witness-index.md +83 -0
- package/upgrades/side-effects/subs-setup-flow-ux.md +79 -0
- package/upgrades/subs-setup-flow-ux.eli16.md +31 -0
|
@@ -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,CAo2mBtE;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
|
@@ -4111,6 +4111,13 @@ export async function startServer(options) {
|
|
|
4111
4111
|
stateDir: config.stateDir,
|
|
4112
4112
|
registry: replicatedKindRegistry,
|
|
4113
4113
|
selfMachineId: cjOwnMachineId,
|
|
4114
|
+
logger: (m) => console.log(pc.dim(` [ws2-witness-index] ${m}`)),
|
|
4115
|
+
});
|
|
4116
|
+
coherenceJournal.setReplicatedRecordCommitObserver((kind, entries) => {
|
|
4117
|
+
replicatedPeerStreamReader?.observeCommittedEntries(kind, entries);
|
|
4118
|
+
});
|
|
4119
|
+
journalSyncApplier?.setReplicatedRecordCommitObserver((_senderMachineId, kind, entries) => {
|
|
4120
|
+
replicatedPeerStreamReader?.observeCommittedEntries(kind, entries);
|
|
4114
4121
|
});
|
|
4115
4122
|
// Author-side HLC clock — persisted under the journal dir (atomic temp+rename)
|
|
4116
4123
|
// so the merge total order survives restarts (§3.5). node = this machine's id.
|
|
@@ -12062,10 +12069,46 @@ export async function startServer(options) {
|
|
|
12062
12069
|
// Background auto-reissue sweep — refreshes an expired login code without the
|
|
12063
12070
|
// operator asking (the pi-live-test gap). Inert with no pending logins; the
|
|
12064
12071
|
// timer is unref'd so it never holds the process open.
|
|
12072
|
+
// The SAME tick also runs the follow-me COMPLETION sweep (D5, topic 29836): a
|
|
12073
|
+
// sign-in that completed WITHOUT a paste-back code (the provider's already-
|
|
12074
|
+
// authorized short-circuit — "You're all set up… close this window") lands its
|
|
12075
|
+
// credential in the slot with nothing calling submit-code; the sweep detects the
|
|
12076
|
+
// landed credential and drives the identity-verified completion (S7 email gate —
|
|
12077
|
+
// a mismatch is HELD, never auto-enrolled) instead of waiting forever at a code
|
|
12078
|
+
// prompt. This makes the submit-code route's "the reissue/complete sweep finishes
|
|
12079
|
+
// it" contract true.
|
|
12065
12080
|
const enrollReissueTimer = setInterval(() => {
|
|
12066
12081
|
enrollmentWizard
|
|
12067
12082
|
.reissueExpired()
|
|
12068
12083
|
.catch(() => { });
|
|
12084
|
+
enrollmentWizard
|
|
12085
|
+
.sweepFollowMeCompletions({
|
|
12086
|
+
credentialReady: (l) => !!l.configHome && fs.existsSync(path.join(l.configHome, '.claude.json')),
|
|
12087
|
+
onValidated: (login, email) => {
|
|
12088
|
+
// Upsert (D5): a re-auth of an EXISTING pool account updates it back to
|
|
12089
|
+
// active; only a genuinely-new account is added (add() refuses dup ids).
|
|
12090
|
+
if (subscriptionPool.get(login.id)) {
|
|
12091
|
+
subscriptionPool.update(login.id, {
|
|
12092
|
+
nickname: login.label, status: 'active', email,
|
|
12093
|
+
...(login.configHome ? { configHome: login.configHome } : {}),
|
|
12094
|
+
});
|
|
12095
|
+
}
|
|
12096
|
+
else {
|
|
12097
|
+
subscriptionPool.add({
|
|
12098
|
+
id: login.id, nickname: login.label, provider: login.provider,
|
|
12099
|
+
framework: login.framework, configHome: login.configHome ?? '', status: 'active', email,
|
|
12100
|
+
});
|
|
12101
|
+
}
|
|
12102
|
+
console.log(`[follow-me] completion-sweep outcome=validated id=${login.id}`);
|
|
12103
|
+
},
|
|
12104
|
+
})
|
|
12105
|
+
.then((results) => {
|
|
12106
|
+
for (const r of results) {
|
|
12107
|
+
if (r.outcome === 'held')
|
|
12108
|
+
console.warn(`[follow-me] completion-sweep outcome=held id=${r.id}`);
|
|
12109
|
+
}
|
|
12110
|
+
})
|
|
12111
|
+
.catch(() => { });
|
|
12069
12112
|
}, config.subscriptionPool?.enrollment?.reissueSweepMs ?? 5 * 60_000);
|
|
12070
12113
|
if (enrollReissueTimer.unref)
|
|
12071
12114
|
enrollReissueTimer.unref();
|