MessageWeave/src
anonsaber 0890eb18f0 test: assert the three Redis TTL write points on a real Redis (opt-in)
real_redis_ttl_tests in src/state.rs closes the "no test asserts any TTL
value" gap for the three atomic write points that actually reach Redis:

- set_nx_ex  SET NX EX, with .max(1) floor (Redis rejects a zero EX)
- retry_or_dlq EXPIRE KEYS[1] 86400, embedded in the Lua script
- set_ai_consent SET EX

Each is opt-in via REDIS_TEST_URL (#[ignore], mirrors the JMAP gating in
src/domain/jmap/client.rs:522); missing the env var prints 'skipped' and
returns, so CI stays green without credentials and the URL is never logged.
retry_or_dlq uses max_attempts=99 so the script returns before XADD/XACK and
no stream or group needs to be created.

opengaps.md item 2 is now blocked only on a reachable Redis URL. Two
defects in that section were fixed while touching it: the consent table
rendered 7 * 86_400 as 604_800 and 365 * 86_400 as 31_536_000 (arithmetic
right, literal wrong) and listed 300s/7200s values that do not exist in
the code - the sixth real consent TTL is 0 (revoke). 16 line anchors had
also drifted onto comments and neighbours; all are re-pointed. The line-
range audit passes 138 refs but only checks that a line is non-blank, not
that it holds the claimed content, which is how these slipped through.

GATE-P0 baseline moves to 88 passed / 0 failed / 4 ignored.
2026-09-30 12:30:57 +08:00
..
domain refactor: drop the never-read EmailChanges.destroyed field 2026-09-30 12:20:03 +08:00
ai.rs feat: initial MessageWeave release 2026-09-25 09:14:04 +08:00
channel.rs refactor: delete three zero-implementor 'stage 0 placeholder' channel traits 2026-09-29 02:23:38 +08:00
config.rs feat: reject stale business-config submits with a 409 2026-09-30 02:56:15 +08:00
debug.rs docs: unblock GATE-DOCS (debug.rs anchors drifted + file over 500 lines) 2026-09-30 12:17:04 +08:00
domain.rs refactor: delete three zero-implementor 'stage 0 placeholder' channel traits 2026-09-29 02:23:38 +08:00
error.rs feat: initial MessageWeave release 2026-09-25 09:14:04 +08:00
main.rs feat(config): make the notification time zone configurable 2026-09-29 21:48:04 +08:00
notify.rs feat: reject stale business-config submits with a 409 2026-09-30 02:56:15 +08:00
state.rs test: assert the three Redis TTL write points on a real Redis (opt-in) 2026-09-30 12:30:57 +08:00
web.rs feat: initial MessageWeave release 2026-09-25 09:14:04 +08:00
worker.rs refactor: drop the never-read EmailChanges.destroyed field 2026-09-30 12:20:03 +08:00