Heimdall/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 5443ae7daf Move the private command port with the candidate
The first release that got far enough to report its own failure said
EADDRINUSE 127.0.0.1:4101: the CultNet private command plane. I gave the
HTTP listener a candidate bind and never noticed Heimdall has a second
listener on a fixed port, so the candidate collided with the incumbent and
died before it could warm.

A fixed private port makes coexistence impossible, which is the premise the
whole warm-then-cutover rests on. The private plane belongs to the same
generation as the HTTP listener, so under Idunn its port is derived from
the assigned candidate port with a fixed offset. Each generation gets its
own pair, and the published command-boundary endpoint stays truthful
because it reads the same config value. Outside Idunn the configured port
is unchanged.

The offset is large enough that a derived port cannot land inside the
route's candidate range and collide with another generation's HTTP
listener.

57 tests, 56 pass and the machine-id-bound one skipped on Windows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 22:15:34 +02:00
..
store Bind Ghostlight logout to exact session custody 2026-08-22 01:53:21 +02:00
access-plugin.ts Add Eve access plugin and private auth plane 2026-08-22 00:44:57 +02:00
app-profiles.ts Retire the Spotiverse profile; keep the spotify provider intact for restore 2026-09-06 01:47:10 +02:00
app.ts Retire the Spotiverse profile; keep the spotify provider intact for restore 2026-09-06 01:47:10 +02:00
backend-handoff.ts Add StreamPixels managed auth seams 2026-04-29 15:00:55 +01:00
browser-handoff.ts Prefer direct backend auth handoff 2026-04-26 17:00:57 +01:00
claims.ts Refresh Repixelizer app claims through Heimdall 2026-05-20 13:43:53 +01:00
config.ts Move the private command port with the candidate 2026-09-06 22:15:34 +02:00
contracts.ts Retire the Spotiverse profile; keep the spotify provider intact for restore 2026-09-06 01:47:10 +02:00
custody.ts Harden Heimdall custody and verifier seams 2026-04-26 16:23:29 +01:00
export-provider-advertisement.ts Add read-only Heimdall Eve witness advertisement 2026-06-03 03:21:31 +01:00
export-provider-health-public-key.ts Expose provider health public identity 2026-08-22 02:35:20 +02:00
facts.ts Normalize Heimdall claim fact vocabulary 2026-04-26 14:58:58 +01:00
idunn-rudp-health.ts Take the signing identity Idunn passes, instead of enrolling a rival one 2026-09-06 16:01:13 +02:00
idunn-store.ts Retract the CultLib divergence claim; read each .cc with the right client 2026-09-06 19:11:19 +02:00
index.ts Make startup failures visible 2026-09-06 22:11:09 +02:00
oauth.ts Add Bifrost Patreon support sync 2026-06-09 20:22:58 +01:00
odin-publication.ts Give Heimdall Odin documents unique catalog keys 2026-08-22 03:47:02 +02:00
private-command-plane.ts Bind auth completions to their attempt handles 2026-08-22 12:01:56 +02:00
private-command-security.ts Add Eve access plugin and private auth plane 2026-08-22 00:44:57 +02:00
process-write-lease.ts Retract the CultLib divergence claim; read each .cc with the right client 2026-09-06 19:11:19 +02:00
provider-health-identity.ts Retract the CultLib divergence claim; read each .cc with the right client 2026-09-06 19:11:19 +02:00
providers.ts Add Spotiverse Spotify credential custody 2026-06-02 16:25:38 +01:00
signing.ts Harden Heimdall custody and verifier seams 2026-04-26 16:23:29 +01:00
verifier.ts Harden Heimdall custody and verifier seams 2026-04-26 16:23:29 +01:00
verse-state.ts Honour the Idunn process write lease, and stop claiming active while warming 2026-09-06 02:25:38 +02:00
verse-witness.ts Add Eve access plugin and private auth plane 2026-08-22 00:44:57 +02:00