Skip to content

Pin the srv2 filter dimensions and the filtered epoch resume in a tier-2 fixture - #918

Merged
jorgemanrubia merged 4 commits into
mainfrom
card09-live-contract
Sep 16, 2026
Merged

jorgemanrubia merged 4 commits into
mainfrom
card09-live-contract

Conversation

@jorgemanrubia

@jorgemanrubia jorgemanrubia commented Sep 16, 2026

Copy link
Copy Markdown
Member

The event-feed scenario suite runs on srv2, but no fixture sets any of the dimensions srv2 added: performers, exclude_performers, actor_types. Their spellings on the subscription identifier and the poll query were pinned only by Go unit tests. The README's claim that a 410 resume keeps the canonical filter set rested on fixture 16, which has no filters. Drop exclude_performers from the subscription, misspell actor_types, or lose performers on the poll seam, and all 26 fixtures still pass.

Tracked in 09 Conformance and eventfeed on the live contract

exclude_performers is the acting agent's loop guard and the reason the connector needs srv2. A regression there would pass the cross-language suite, and the suite is the contract other SDKs port against.

Fixture 35 sets the three dimensions. It pins them on the subscription identifier, and checks that they reach the poll seam on the entry poll. The driver builds the poll query itself, so the spelling on the wire there is tier 1's to pin. Then it accepts a feed 410 whose served resume carries them. The resume is followed as served, at since=<epoch_after_id> and never since=now, and its first page delivers and saves. Values are configured in ascending order, so the pin doesn't favour configured-order joining over sorted joining. The README's inventory and dependency table now list it.

Each of the three mutations above fails only fixture 35. Replacing the accepted resume with since=now fails 16, 27, 33 and 35.

Follows Event feed: split the poll lanes' 410s and give their 400 a reason and Event feed connector: bind the seams to the generated operations.

The README inventories marked "mechanically derived" have no generator or drift check. They are maintained by hand, which is how fixture 34 was left out of two of them. This PR re-derives both lists from the fixture files, and nothing prevents the next drift.

…r-2 fixture

The event-feed scenario suite moved to srv2, but no fixture configured
performers, exclude_performers or actor_types, so their identifier and
query spellings were unpinned at tier 2 and the README's claim that a 410
resume preserves the canonical filter set rested on fixture 16, which has
no filters. Dropping exclude_performers from the subscription, misspelling
actor_types, or losing performers on the poll seam left all 26 fixtures
green.

Fixture 35 configures the three srv2 dimensions, pins them on the
subscription identifier and the entry poll's exact query, and then accepts
a feed 410 whose served resume carries them: the resume is followed
verbatim at since=<epoch_after_id>, its first page delivers and saves.
Copilot AI balanced review requested due to automatic review settings September 16, 2026 19:39
@github-actions github-actions Bot added the conformance Conformance test suite label Sep 16, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Two mechanically derived README inventories omit fixture 34.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Adds tier-2 coverage for srv2 filter dimensions and filtered 410 epoch resumes.

Changes:

  • Adds fixture 35 covering filter propagation and resume behavior.
  • Updates fixture inventories and dependency documentation.

[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.

File summaries
File Description
conformance/event-feed/README.md Documents fixture 35 and its coverage.
conformance/event-feed/fixtures/35-srv2-dimensions-carry-through-the-epoch-resume.json Tests srv2 filters across subscription, polling, and epoch resume.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 2
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread conformance/event-feed/README.md Outdated
Comment thread conformance/event-feed/README.md Outdated
Both lists are hand-maintained; re-derived from the fixture files. The
200-poll row is the account envelope's, so it names that lane (32 and 33
serve the inbox envelope, pinned by their own row).
@jorgemanrubia
jorgemanrubia merged commit 4723daa into main Sep 16, 2026
49 checks passed
@jorgemanrubia
jorgemanrubia deleted the card09-live-contract branch September 16, 2026 19:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conformance Conformance test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants