instar 1.3.860 → 1.3.861
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 +20 -15
- package/dist/commands/server.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.861.md +27 -0
- package/upgrades/side-effects/mesh-endpoint-advertisement-without-tunnel.md +114 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0DH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA0BjG,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;AAspDD;;;;;;;;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,CAssBN;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;AA0DH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA0BjG,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;AAspDD;;;;;;;;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,CAssBN;AAgmBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAyjoBtE;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
|
@@ -4570,6 +4570,7 @@ export async function startServer(options) {
|
|
|
4570
4570
|
// construction (far below) can wire the /api/lease[/pull] receivers to real registry fns.
|
|
4571
4571
|
let peerEndpointRecorder;
|
|
4572
4572
|
let getSelfMeshEndpoints;
|
|
4573
|
+
let meshResolver;
|
|
4573
4574
|
// mesh-coherence-live-state-honesty (Fix (b) / Decision #5): the resolved server bind host,
|
|
4574
4575
|
// a BOOT CONSTANT. Declared `let` at OUTER scope (the same scope as getSelfMeshEndpoints)
|
|
4575
4576
|
// and assigned inside the mesh-init block so the peerPresenceTimer closure (far below) can
|
|
@@ -4740,7 +4741,7 @@ export async function startServer(options) {
|
|
|
4740
4741
|
// single-`url` legacy path (byte-for-byte today).
|
|
4741
4742
|
const meshCfg = config.multiMachine?.meshTransport;
|
|
4742
4743
|
const meshEnabled = () => meshCfg?.enabled !== false; // default ON
|
|
4743
|
-
|
|
4744
|
+
meshResolver = new PeerEndpointResolver({
|
|
4744
4745
|
config: {
|
|
4745
4746
|
enabled: meshCfg?.enabled !== false,
|
|
4746
4747
|
hedgeDelayMs: meshCfg?.hedgeDelayMs ?? 1500,
|
|
@@ -20004,7 +20005,12 @@ export async function startServer(options) {
|
|
|
20004
20005
|
nonce: () => `${meshSelfId}:r:${Date.now()}:${++routerNonce}`,
|
|
20005
20006
|
now: () => Date.now(),
|
|
20006
20007
|
});
|
|
20007
|
-
const peerUrl = (machineId) =>
|
|
20008
|
+
const peerUrl = (machineId) => {
|
|
20009
|
+
const entry = meshIdMgr.getActiveMachines().find((m) => m.machineId === machineId)?.entry;
|
|
20010
|
+
if (!entry)
|
|
20011
|
+
return null;
|
|
20012
|
+
return meshResolver.resolve(machineId, entry.endpoints, entry.lastKnownUrl)[0]?.url ?? null;
|
|
20013
|
+
};
|
|
20008
20014
|
_meshSelfId = meshSelfId;
|
|
20009
20015
|
// U4.4 — the offer transport (HOLDER side) + the post-hand-back delivery
|
|
20010
20016
|
// canary (PREFERRED side), both over the signed mesh RPC.
|
|
@@ -22900,27 +22906,26 @@ export async function startServer(options) {
|
|
|
22900
22906
|
// Failure on initial start is non-fatal: the manager keeps trying
|
|
22901
22907
|
// in the background, and the post-exhausted retry timer keeps the
|
|
22902
22908
|
// agent recoverable without requiring a server restart.
|
|
22909
|
+
let bootTunnelUrl = null;
|
|
22903
22910
|
if (tunnel) {
|
|
22904
22911
|
try {
|
|
22905
|
-
|
|
22906
|
-
console.log(pc.green(` Tunnel active: ${pc.bold(
|
|
22907
|
-
// Mesh URL advertisement: record THIS machine's reachable URL into its
|
|
22908
|
-
// registry entry so cross-machine routing (deliver/transfer/lease) can
|
|
22909
|
-
// reach it. Without this, lastKnownUrl is null and every peer is filtered
|
|
22910
|
-
// out (the session pool is inert across machines). The existing
|
|
22911
|
-
// RegistrySyncDebouncer propagates the populated entry to peers.
|
|
22912
|
-
if (coordinator.enabled && coordinator.identity) {
|
|
22913
|
-
const cfUrl = resolveAdvertisedMeshUrl(config.tunnel, tunnelUrl);
|
|
22914
|
-
advertiseSelfMeshUrl(coordinator.managers.identityManager, coordinator.identity.machineId, cfUrl, (m) => console.log(pc.dim(m)));
|
|
22915
|
-
// multi-transport-mesh-comms (Layer 0) — advertise the full endpoint set.
|
|
22916
|
-
await advertiseSelfMeshEndpointsNow(coordinator.managers.identityManager, coordinator.identity.machineId, config, cfUrl);
|
|
22917
|
-
}
|
|
22912
|
+
bootTunnelUrl = await tunnel.start();
|
|
22913
|
+
console.log(pc.green(` Tunnel active: ${pc.bold(bootTunnelUrl)}`));
|
|
22918
22914
|
}
|
|
22919
22915
|
catch (err) {
|
|
22920
22916
|
const msg = err instanceof Error ? err.message : String(err);
|
|
22921
22917
|
console.error(pc.red(` Tunnel start failed (manager will keep retrying in background): ${msg}`));
|
|
22922
22918
|
}
|
|
22923
22919
|
}
|
|
22920
|
+
// Mesh endpoint advertisement is independent of optional tunnel success.
|
|
22921
|
+
// A rate-limited quick tunnel must not suppress healthy LAN/Tailscale ropes:
|
|
22922
|
+
// doing so makes reachable peers appear offline and removes the HTTP lease
|
|
22923
|
+
// medium. Cloudflare is simply omitted when it has no resolved URL.
|
|
22924
|
+
if (coordinator.enabled && coordinator.identity) {
|
|
22925
|
+
const cfUrl = resolveAdvertisedMeshUrl(config.tunnel, bootTunnelUrl);
|
|
22926
|
+
advertiseSelfMeshUrl(coordinator.managers.identityManager, coordinator.identity.machineId, cfUrl, (m) => console.log(pc.dim(m)));
|
|
22927
|
+
await advertiseSelfMeshEndpointsNow(coordinator.managers.identityManager, coordinator.identity.machineId, config, cfUrl);
|
|
22928
|
+
}
|
|
22924
22929
|
// ── Dashboard Topic: always-available link ──────────────────────────
|
|
22925
22930
|
// Retroactive: creates the topic on first run for existing agents.
|
|
22926
22931
|
// Posts tunnel URL + PIN and pins the message for instant access.
|