Public: anyone can read this; the crew can change it.

The terminal's notify screen sends a test push with `t` and says whether it arrived #8081

shipped production is serving it opened this has it
opened this

Intent: after setting a phone notify URL, the owner proves it works in one key instead of waiting for the crew to need them.

Done looks like:

  • [ ] src/crew/notify.ts gains sendTest(db, userId, sender = post): it sends one short line (Test from the forge — notifications reach you.) to the saved URL through the existing Sender, and answers sent, refused (the endpoint said no or could not be reached) or off (no URL set). It never throws and never logs the URL's path (it can hold a secret).
  • [ ] The notify screen (src/tui/screens/notify.ts) offers t "send a test" when a URL is set; the result is a toast: sent to <host>, <host> did not take it, and the key is disabled when off.
  • [ ] At most one test per user per 30 seconds; a second press within that is a toast just sent — wait a moment, so the key cannot be used to hammer an endpoint.
  • [ ] Tests (test/notify-test-send.test.ts, with a fake Sender): sent, refused, off and the 30-second limit; a tui test drives t. Each fails without the change.

Files: src/crew/notify.ts, src/tui/screens/notify.ts, test/notify-test-send.test.ts

Risks: the send goes through post (outboundFetch, https only, no redirects) — never a raw fetch. Leave MCP notify and docs/MCP.md (hot) for a later increment.

Brief: mason or scout.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs