Files
amethyst/quartz/src/jvmTest
Claude a760d17eaa test(battery): behavioral tests for the keep-alive pause and worker gates
The ping-interval change shipped on reasoning and was overturned by
measurement; these tests give the remaining battery changes the same
scrutiny where the claims are about OUR code (deterministically
testable), instead of leaving them reasoning-only:

- NostrClientKeepAliveTest (quartz): a server-closed relay is redialed
  within one 60s sweep while active; ZERO dials happen while the client
  is inactive no matter how much time passes; and the sweep provably
  resumes after connect() — the failure mode a suspend/resume bug in
  the new isActiveFlow gate would cause.

- ScheduledPostWorkGate extracted from AppModules + tests: schedules on
  the first PENDING post, cancels when the last drains, re-schedules on
  publishNow-retry, and — the race that motivated the extraction —
  never emits a spurious cancel from the store flow's empty placeholder
  before the disk load completes.

- CalendarReminderWorker.couldStillFire extracted + tests against
  LocalCache: future target keeps the chain, past target lets it end,
  and an unresolved/start-less target keeps it alive so a reminder
  can't be lost while the target event is still being fetched.

The watchdog alarm change (wakeup -> non-wakeup) remains reasoning-only
by nature: it asserts Android OS alarm semantics on OEM devices, which
no JVM test can exercise; its blast radius is limited to opt-in
always-on users with two independent restart layers still active.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016RJ8EAsdkHx5WHHU2eQJ1P
2026-07-12 19:32:20 +00:00
..