Skip to content

test(server,ingester): rfc0043 slices .5/.6 — query end-to-end + keying observable - #669

Merged
jensholdgaard merged 1 commit into
mainfrom
rfc0043-slice2
Jul 29, 2026
Merged

test(server,ingester): rfc0043 slices .5/.6 — query end-to-end + keying observable#669
jensholdgaard merged 1 commit into
mainfrom
rfc0043-slice2

Conversation

@jensholdgaard

Copy link
Copy Markdown
Owner

Summary

Completes RFC 0043's remaining criteria on top of #668:

  • RFC0043.5 (ourios-server it): the full production seam — attr-only records (event.name attribute, no wire field) go through the real materialize_record derivation and the real miner (ingest_mined), land in a real RFC 0005 store, and event_name == "claude_code.api_request" returns exactly the two matching records with the derived field on each; the negative half proves the other event type isn't swept in.
  • RFC0043.6 (ourios-ingester it): keying engagement pinned in both directions on structured records — distinct derived event names take distinct template ids (without derivation, all three fixtures collapse into the one (severity, scope, no-event) sentinel), and the same derived name shares one id across differing structured content.
  • Criterion refinement, stated inline in the RFC: RFC0043.6 originally referenced an "event-keyed counter" that does not exist as a distinct instrument; the criterion now specifies the id-separation observable, which is strictly stronger (the sentinel would have merged the fixtures). Refinement is visible in the RFC text, not silent.

With this, all seven RFC0043 criteria have passing tests; the green flip follows as a docs PR.

Invariants / hazards

No data-path changes in this PR (tests + RFC text only). The .5 fixture deliberately avoids hand-built MinedRecords so the seam under test is the one production runs.

Verification

cargo fmt --check, clippy (0 warnings, both crates), full it suites: ourios-ingester 83/83, ourios-server 52 passed / 9 pre-existing ignored. mdbook build clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Qtny6z6cA74xPZa4qRhk4F

…ng observable

RFC0043.5 drives the real seam: attr-only records materialise through
the derivation, mine through MinerCluster::ingest_mined, land in a real
store, and event_name == matches exactly the derived records (positive
and negative halves). RFC0043.6 pins RFC 0037 keying engagement both
ways on structured records: distinct derived names take distinct
template ids (the no-event sentinel would merge all three) and same
name shares one id across differing content. The .6 criterion is
refined in the RFC to the id-separation observable — the originally
referenced event-keyed counter does not exist as a distinct instrument,
and the separation is strictly stronger; refinement stated inline.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qtny6z6cA74xPZa4qRhk4F
Signed-off-by: Jens Holdgaard Pedersen <Jens@holdgaard.org>
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@jensholdgaard, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 38 seconds

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2ea0baf7-a999-43c1-b50f-c21f6c89b21a

📥 Commits

Reviewing files that changed from the base of the PR and between feb55d5 and c8c12ea.

📒 Files selected for processing (5)
  • crates/ourios-ingester/tests/it/main.rs
  • crates/ourios-ingester/tests/it/rfc0043_6_event_keyed_templating.rs
  • crates/ourios-server/tests/it/main.rs
  • crates/ourios-server/tests/it/rfc0043_5_event_name_query.rs
  • docs/rfcs/0043-event-name-attribute-ingest.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR completes RFC 0043’s remaining acceptance criteria by adding end-to-end integration tests that exercise the real materialize_record derivation seam and the real miner behavior, and by refining the RFC text to specify an observable that matches the implemented system.

Changes:

  • Refines RFC0043.6’s criterion text to assert template-id separation (a stronger observable than the previously mentioned counter).
  • Adds an ourios-server integration test covering RFC0043.5: querying event_name == ... returns exactly the derived attr-only matches end-to-end.
  • Adds an ourios-ingester integration test covering RFC0043.6: derived event.name participates in structured template keying (same-name shares id; distinct-name separates id).

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
docs/rfcs/0043-event-name-attribute-ingest.md Refines RFC0043.6 acceptance text to specify the template-id separation observable.
crates/ourios-server/tests/it/rfc0043_5_event_name_query.rs New end-to-end query integration test for RFC0043.5 using attr-only event.name ingestion through real materialization + miner.
crates/ourios-server/tests/it/main.rs Registers the new RFC0043.5 integration test module.
crates/ourios-ingester/tests/it/rfc0043_6_event_keyed_templating.rs New miner-level integration test for RFC0043.6 asserting structured template keying engages via derived event names.
crates/ourios-ingester/tests/it/main.rs Registers the new RFC0043.6 integration test module.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jensholdgaard
jensholdgaard merged commit 6b6d926 into main Jul 29, 2026
28 checks passed
@jensholdgaard
jensholdgaard deleted the rfc0043-slice2 branch July 29, 2026 00:12
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.

2 participants