Skip to content

Advertise the change feed in discovery - #91

Merged
cuibonobo merged 1 commit into
mainfrom
claude/issue-83-plan-mtyfuz
Aug 29, 2026
Merged

Advertise the change feed in discovery#91
cuibonobo merged 1 commit into
mainfrom
claude/issue-83-plan-mtyfuz

Conversation

@cuibonobo

Copy link
Copy Markdown
Member

Summary

  • Adds the top-level changes field to GET /.well-known/stack's DiscoveryResponse: transports: ['sse'], resume: false (until Resume the change feed from a cursor #84 mints cursors), records: true (GET /changes already honors ?include=record unconditionally, per Implement GET /changes (SSE change feed) #82).
  • Un-skips discovery-advertises-a-change-feed and discovery-advertises-a-feed-that-neither-resumes-nor-includes-records in tests/conformance.test.ts, parked in Upgrade to the core 0.13 line and adopt the 404/403 anti-oracle rule #79.
  • Adds a test-only WellknownRouteOptions.changeFeedRecords override on wellknownRoutes() — mirroring the existing ChangeRouteOptions pattern in src/routes/changes.ts — so the fully-conformant records: false branch of the wire contract can be exercised even though this server has no real deployer-facing toggle for it (GET /changes always honors ?include=record).
  • Updates docs/api.md's discovery response example and adds a paragraph explaining the new field.

Why

Per #83: advertising changes before GET /changes existed would have been worse than advertising nothing (a client fails locally at open() when the field is absent, vs. discovering a 404 partway through a connection when it's falsely advertised). #82 (the endpoint) and #79 (the core 0.13 bump this depended on) are both merged, so this issue is now unblocked.

Test plan

  • pnpm typecheck
  • pnpm lint
  • pnpm format:check
  • pnpm test (381 tests passing, including the two newly un-skipped conformance fixtures and two new hand-written tests in tests/routes/wellknown.test.ts)

Closes #83.


Generated by Claude Code

Adds the top-level `changes` field to GET /.well-known/stack:
transports: ['sse'], resume: false (until #84 mints cursors), records:
true (GET /changes already honors ?include=record unconditionally,
per #82). Un-skips the two change-feed discovery fixtures parked in
#79, and adds a test-only WellknownRouteOptions.changeFeedRecords
override (mirroring ChangeRouteOptions' existing pattern) so the
records: false branch of the wire contract is exercised without a
real deployer-facing toggle.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZHovrqJwzx34eXPA9Gabj
@cuibonobo
cuibonobo merged commit 438587a into main Aug 29, 2026
4 checks passed
@cuibonobo
cuibonobo deleted the claude/issue-83-plan-mtyfuz branch August 29, 2026 01:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Advertise the change feed in discovery

2 participants