Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLIPublic
Assigneesstack72

Relationships

≡ duplicated by #4246

#4250 The inbox contract fixture and design doc match swamp-club#4241: the CLI inbox carries only messages Swamp Club writes

Opened by stack72 · 11/1/2026· Shipped 11/1/2026

Summary

Match the swamp side to swamp-club#4241. That change narrows the CLI inbox to messages Swamp Club writes: announcements, direct, system and points messages, issue updates, issue shipped and closed, and the named onboarding kinds. Mentions and other web-only kinds no longer reach /api/inbox/*. This issue updates swamp's copy of the shared contract fixture and the design doc to say the same. The CLI needs no code change: the server decides which kinds it serves.

Merge this before swamp-club#4241. swamp-club's deno task check:inbox-fixture (from #4185) compares its fixture byte for byte with src/infrastructure/http/inbox_responses.fixture.json on swamp main. The #4241 branch has already removed the mention from its copy, so its check fails until this change is on swamp main.

1. The fixture

In src/infrastructure/http/inbox_responses.fixture.json, remove the mention entry (01JBX5Q8ZK0000000000000300) from webKindsPage.messages. Copy the #4241 branch's file (tests/fixtures/inbox_responses.fixture.json on swamp-club branch 4241) over swamp's, byte for byte, and confirm with cmp. webKindsPage keeps the issue_shipped and nurture_stalled entries.

2. Tests that read the mention from the fixture

Three tests currently take the mention from webKindsPage. Keep what they prove, because the CLI still has to handle hostile text and kinds that don't raise the notice. Move their data out of the fixture:

  • src/presentation/markdown_renderer_test.ts:157 finds the mention and checks that a bare http:// link renders as (link removed) and HTML stays literal. Keep the test, with its message defined inline in the test file.
  • src/infrastructure/http/inbox_schemas_test.ts:75-80 parses webKindsPage and checks the kinds. Update the expected kind list. Add an inline test that a mention, or any other unknown kind, still parses and keeps its kind as a string: the client stays tolerant even though the server no longer sends one.
  • src/libswamp/inbox/read_test.ts:70-75 builds pages from webKindsPage. The swamp-club#4109 cases ("the announced message is read before a newer message that doesn't raise the notice") still matter. nurture_stalled is served and never raises the notice, so use it in place of the mention, or define the newer message inline.

3. The design doc

In design/surfaces/inbox.md:

  • Line 37 (kind in the Message shape): replace "any kind the web inbox carries ("mention", …)" with the kinds Swamp Club serves to the CLI. It stays a string, so new kinds still parse.
  • Lines 47-50: /messages no longer carries every message the web inbox does. It carries only messages Swamp Club writes. Mentions and comments, whose bodies quote other users, stay on the web inbox and email, so no other user's text reaches the terminal or an agent. /summary still counts only the kinds that raise the notice; onboarding messages are listed but don't raise it.
  • Lines 328 and 337 (swamp inbox read): drop "such as mentions" and "mentions included". The messages listed but not announced are now onboarding messages.

Keep the wording neutral: say what the CLI inbox carries and that other users' text stays out of it.

Tests

  • cmp of swamp's fixture with the swamp-club #4241 branch's file shows no difference.
  • The moved tests pass with inline data, and the new unknown-kind parse test passes.
  • Run all of integration/ before verifying. The drift test on the notice text is unaffected.

Out of scope

  • Any CLI behaviour change
  • The swamp-club side (#4241)
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 7 MOREPR_LINKED+ 2 MORESESSION_SUMMARIZED

Shipped

11/1/2026, 8:22:41 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack7211/1/2026, 8:04:53 PM
stack72 linked duplicated by #424611/1/2026, 8:11:15 PM

Sign in to post a ripple.