Bifrost/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Eureka c300342a24 Mouth: fetch one named event's image for its Persona, verify, store, post an inert receipt (CHAT_FETCH, off by default)
chat_fetch_request.v1 [request_id, persona, room, event_id] and chat_fetch_receipt.v1
[request_id, outcome, room_id, image, receipt] with a closed 14-word outcome enum. The mouth
reads live membership, the full room state, and the event itself; takes content.url from the
event; fetches through fetchImage (one optional deadline signal added); decides info.sha256
against the computed hash before images.put; posts the contract's org.gamecult.file_received
as her own user (thread reply, else plain m.reference), idempotence read from Matrix.
One 15 s deadline owns the fetch; throwIfAborted and released() are the first step inside the
gate, as send does. Event id, room, and the sender-controlled album root must be path-safe
Matrix ids or nothing is built from them. Golden fixtures persona-chat-v7.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 00:34:10 +00:00
..
Bifrost.Web.Tests Members: approve refuses no-membership/unknown accounts; neutral text for legacy suspensions (#65) 2026-11-11 16:39:48 +00:00
fixtures Mouth: fetch one named event's image for its Persona, verify, store, post an inert receipt (CHAT_FETCH, off by default) 2026-11-12 00:34:10 +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-fetch.test.mjs Mouth: fetch one named event's image for its Persona, verify, store, post an inert receipt (CHAT_FETCH, off by default) 2026-11-12 00:34:10 +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, verify, store, post an inert receipt (CHAT_FETCH, off by default) 2026-11-12 00:34:10 +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