Heimdall
8e65f56b0c
Linked accounts: never guess a proof provider; require stepUpRequested; no-store on completion
...
With no current list the proof goes only through a provider the member names, never the
session's sign-in provider: a sign-in through an unlinked provider makes Heimdall mint an
orphan account holding that login. Link buttons need a current list. The unlink completion
must say a step-up was requested. POST /auth/heimdall/complete answers no-store. The fake
Heimdall now models orphan minting, derives step_up_at from the start's stepUp flag, and
enforces the app secret, sign_in-only, unsupported-provider and 600 s rules.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 20:08:07 +00:00
..
Bifrost.Web.Tests
Linked accounts: never guess a proof provider; require stepUpRequested; no-store on completion
2026-11-13 20:08:07 +00:00
fixtures
Mouth: fetch one named event's image for its Persona, store it, post an inert receipt (CHAT_FETCH, off by default) ( #73 )
2026-11-12 00:59:28 +00:00
cultlib-root.mjs
Resolve CultLib via VOIDBOT_CULTLIB_ROOT in tests; test formerly indexed stores ( #47 )
2026-11-11 05:01:33 +00:00
cultmesh-bridge-commands.test.mjs
Bifrost pump: one verb, one path; refuse anything else with a failed receipt
2026-09-30 16:59:51 +02:00
fake-clock.mjs
Watchdog notice reader: a future stamp is eligible now; no production clock seam
2026-10-01 02:19:01 +02:00
image-bytes.mjs
Image store: never chmod a room directory; refuse when setgid is not inherited
2026-11-08 09:27:40 +00:00
path-within.test.mjs
Linux path fixes: containment by path.relative, hostile-cursor test, verify prerequisites ( #77 )
2026-11-12 12:55:35 +00:00
persona-chat-images.test.mjs
Image store: room directory must share the Persona directory's group; never create the Persona directory
2026-11-08 09:29:59 +00:00
persona-feedback-cli.test.mjs
Resolve CultLib via VOIDBOT_CULTLIB_ROOT in tests; test formerly indexed stores ( #47 )
2026-11-11 05:01:33 +00:00
persona-feedback-idunn-health.test.mjs
Resolve CultLib via VOIDBOT_CULTLIB_ROOT in tests; test formerly indexed stores ( #47 )
2026-11-11 05:01:33 +00:00
persona-matrix-mouth-fetch.test.mjs
Mouth: fetch one named event's image for its Persona, store it, post an inert receipt (CHAT_FETCH, off by default) ( #73 )
2026-11-12 00:59:28 +00:00
persona-matrix-mouth-follow.test.mjs
Mouth: follow upgrades only a plain basis; @room keeps room ( #76 )
2026-11-12 12:28:39 +00:00
persona-matrix-mouth-open-direct.test.mjs
persona mouth: open a direct room for a Persona; answer unknown kinds loudly ( #39 )
2026-11-10 18:35:51 +00:00
persona-matrix-mouth-runtime.test.mjs
Mouth: fetch one named event's image for its Persona, store it, post an inert receipt (CHAT_FETCH, off by default) ( #73 )
2026-11-12 00:59:28 +00:00
persona-matrix-mouth-send-gate.test.mjs
send gate: re-check the brake after the gate wait, before the PUT
2026-11-03 10:37:22 +00:00
persona-matrix-mouth.test.mjs
Mouth: id shape on every delivery field, mentions bounded in bytes, round cap counts every target GET ( #72 )
2026-11-11 21:06:13 +00:00
shared-value-stores.test.mjs
Resolve CultLib via VOIDBOT_CULTLIB_ROOT in tests; test formerly indexed stores ( #47 )
2026-11-11 05:01:33 +00:00
watchdog-notice.test.mjs
Resolve CultLib via VOIDBOT_CULTLIB_ROOT in tests; test formerly indexed stores ( #47 )
2026-11-11 05:01:33 +00:00