Commit graph Bifrost/tests
Author SHA1 Message Date
Meta Vens
417454c28f Watchdog notice reader: Idunn incidents become owner DMs through Bifrost's own journal
tools/watchdog-notice.mjs is a one-shot reader. It reads Idunn's incident
store unlocked with SingleFileMessagePackBackingStore.pullAll, sends one opening
and one closing DM per incident through bifrost-bridge.mjs, and keeps a
bifrost.watchdog_notice_execution.v1 journal: a running entry becomes unknown
and is never re-posted, a failed one is retried with the same nonce up to five
times, terminal entries are pruned once Idunn retires the incident. The exit
status is the delivery-failure signal.

discord-dm accepts --nonce (at most 25 chars) and sends nonce with
enforce_nonce so a retry inside Discord's window returns the original message.

The tests run the CLI against the store bytes Idunn wrote (fixture from
GameCult/Idunn 7f7528b3) with a counting bridge double, and once through the
real bridge with fetch stubbed. docs/watchdog-notice.md states the CultLib
>= 8cb3b728 floor.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 21:15:18 +02:00
Meta Vens
4152676ebb Merge watchdog bifrost-suite: the node suite loads against current CultLib
Eureka idunn-watchdog cut bifrost-suite. Soul verdict
idunn-watchdog:verdict:cut-bifrost-suite.s1 holds: 24 tests, 22 pass,
0 fail, 2 skipped with reason. Bifrost now requires CultLib >= 8cb3b728.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 18:40:35 +02:00
Meta Vens
e8483c056b Bifrost suite: drop the hard-coded CARGO_TARGET_DIR override from the Rust fixture tests
The two fixture tests forced a workstation-only target dir
(C:\Users\Meta\.cargo-target-codex); the child now inherits process.env.
Follow-up to 868df354, which missed this deletion. Builds.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 17:16:55 +02:00
Meta Vens
868df35449 Bifrost suite: load @gamecult/cultcache-ts; skip Rust fixture tests with a stated reason
CultLib 8cb3b728 renamed only cultcache-ts to @gamecult/cultcache-ts; the
suite and three tools still required the bare name. Rename the require
string in tests/persona-feedback-cli, persona-discord-delivery,
persona-discord-crossing-rust-smoke, tools/persona-feedback (:114),
agent-transport and governance-threads. No fallback: a pre-8cb3b728 CultLib
fails loudly at import. operator-notification.mjs is untouched (retire cut).

The two Rust fixture tests skip, naming the missing producer (Epiphany
removed both fixture bins in 387afe49), and drop the hard-coded
CARGO_TARGET_DIR override. Builds.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 17:16:39 +02:00
Meta Vens
9c954e7502 Bifrost pump: one verb, one path; refuse anything else with a failed receipt
With discord-dm gone the verb set, listCommandRecords filter, resolveBridgeVerb
throw and the verb variable decided nothing, and the filter hid non-discord-post
commands so they stayed pending with no receipt. Delete all of it: a command
whose verb is not discord-post now reaches processOneCommand and is refused
with a failed receipt (error names no input value). Payload staging moves
inside the try so a refusal cannot escape as a thrown error.

Adds tests/cultmesh-bridge-commands.test.mjs: discord-dm refused with failed
receipt and non-ok result, canary-free error, discord-post still reaches the
actuator.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 16:59:51 +02:00
Meta Vens
8b9ab65b3f Delete Epiphany operator bridge 2026-08-22 06:16:39 +02:00
Meta Vens
cb3239aaac persona: receipt Discord bridge commands 2026-08-08 21:26:13 +01:00
Meta Vens
514c2a6cb9 persona: align permit bodies with Rust wire tuples 2026-08-08 21:15:57 +01:00
Meta Vens
573bbd3968 persona: normalize Rust permit byte tuples 2026-08-08 20:55:35 +01:00
Meta Vens
fe845db18e persona: admit first boot of typed delivery stores 2026-08-08 20:39:53 +01:00
Meta Vens
3f4dcae605 persona: keep staged readiness fixture complete 2026-08-08 20:30:21 +01:00
Meta Vens
34eb1e59e6 persona: split receipt and permit requester identities 2026-08-08 20:22:22 +01:00
Meta Vens
b8deaa9a8c persona: add typed cross-host delivery nerve 2026-08-08 20:10:23 +01:00
Meta Vens
da716c95f2 Prove signed health transport identity 2026-07-22 02:53:44 +01:00
Meta Vens
da537ad8dc Use canonical daemon health publisher role 2026-07-22 02:49:25 +01:00
Meta Vens
a7647a1660 Follow portable CultNet provider signature bytes 2026-07-22 02:15:35 +01:00
Meta Vens
d74b61f4b7 Encode provider health timestamps as canonical u64 2026-07-22 02:07:17 +01:00
Meta Vens
8b115b08b4 Encode provider health signatures canonically 2026-07-22 02:01:07 +01:00
Meta Vens
548dd9397f Own native Persona Discord transport 2026-07-22 00:34:04 +01:00
Meta Vens
0010f7da29 Add exact Epiphany Status v2 transport 2026-07-19 22:54:44 +01:00
Meta Vens
671168fefc Sign Persona feedback provider health 2026-07-19 21:41:50 +01:00
Meta Vens
6491f449cf Unify Epiphany operator request v1 2026-07-19 18:43:49 +01:00
Meta Vens
225859bd7e Test operator bridge against configured CultLib 2026-07-19 16:01:37 +01:00
Meta Vens
3824d42b6d Add typed operator identity enrollment 2026-07-19 15:18:13 +01:00
Meta Vens
dabf7aa320 Align Epiphany operator bridge v1 2026-07-19 15:09:26 +01:00
Meta Vens
e0e612c69c Complete authenticated Epiphany operator bridge 2026-07-19 13:12:04 +01:00
Meta Vens
82dd058d42 Add signed Epiphany operator admission boundary 2026-07-19 12:00:50 +01:00
Meta Vens
c65cbfa527 Gate organizational Persona feedback 2026-07-18 20:32:10 +01:00
Meta Vens
3bd250f811 Gate deployments with typed release authority 2026-07-16 18:28:13 +01:00
Meta Vens
cde3a78874 Move public crossings onto typed Bifrost transport 2026-07-15 22:16:07 +01:00
Meta Vens
bd3a5a974b Add project-scoped patronage checkout 2026-07-05 19:07:48 +01:00
Meta Vens
fa398eefc2 Advertise Discord bridge commands 2026-06-22 17:42:03 +01:00
Meta Vens
a474c28b93 Expose bridge surface readiness 2026-06-22 17:07:50 +01:00
Meta Vens
30e594570d Enforce named future bridge surfaces 2026-06-22 16:44:14 +01:00
Meta Vens
718ae94caa Advertise current bridge capabilities 2026-06-22 16:04:44 +01:00
Meta Vens
72ffa0d9f7 Prove Heimdall Patreon support intake 2026-06-22 15:55:03 +01:00
Meta Vens
f1f91713ad Add generic outside-world bridge request 2026-06-22 15:49:11 +01:00
Meta Vens
675c475752 Gate future public bridge surfaces 2026-06-22 15:42:43 +01:00
Meta Vens
19222bd166 Bind bridge mouths to Heimdall-linked identities 2026-06-22 15:23:30 +01:00
Meta Vens
80a5392935 Require registered Bifrost identity for bridge mouths 2026-06-22 15:18:30 +01:00
Meta Vens
23c02be2a6 Add native Bifrost identity registration 2026-06-22 15:07:22 +01:00
Meta Vens
445c27978b Gate public bridge actions on Bifrost identity 2026-06-22 14:54:14 +01:00
Meta Vens
c533a7f98c Record Epiphany bridge provenance 2026-06-22 14:26:53 +01:00
Meta Vens
861dff3ed7 Add Stripe patronage checkout integration 2026-06-22 14:08:35 +01:00
Meta Vens
ba01b78d68 Fix Bifrost bridge runtime and fixture env isolation 2026-06-22 14:03:07 +01:00
Meta Vens
0c53f70e25 Require approved governance before github bridge 2026-06-17 12:27:22 +01:00
Meta Vens
a22092feff Require receipts for non-github bridge activity 2026-06-17 12:06:20 +01:00
Meta Vens
f32c9127a0 Validate bridge provenance against bifrost state 2026-06-17 11:38:34 +01:00
Meta Vens
f58a0cbc1b Validate runtime receipt linkage 2026-06-17 11:22:29 +01:00
Meta Vens
f702a708d9 Restrict runtime receipts to bridge token 2026-06-17 10:51:02 +01:00