Heimdall
8c3827b36d
Consent: optional at registration, a consent page with accept and withdraw, notice version 2
...
Registration without acceptedNoticeVersion (JSON) or with the box unticked (form) creates the account with no receipt; a version sent must still equal the one in force. GET /auth/bifrost/consent shows the notice and the account's state with the one applicable button. POST accept and withdraw are forms behind the strict RequestOriginGuard.Allows (403 before any read or write), idempotent, and withdraw is no longer JSON. The ConsentReceipt unique index becomes filtered to live rows so a person can agree again after withdrawing. TrainingNotice.Version = 2 with the ruled text.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 11:22:22 +00:00
..
Bifrost.Web.Tests
Consent: optional at registration, a consent page with accept and withdraw, notice version 2
2026-11-11 11:22:22 +00:00
fixtures
Mouth: tail_gaps on chat_pending.v3, the rooms whose tail is incomplete ( #57 )
2026-11-11 11:07:35 +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
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-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: tail_gaps on chat_pending.v3, the rooms whose tail is incomplete ( #57 )
2026-11-11 11:07:35 +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: tail_gaps on chat_pending.v3, the rooms whose tail is incomplete ( #57 )
2026-11-11 11:07:35 +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