test(server,ingester): rfc0043 slices .5/.6 — query end-to-end + keying observable - #669
Conversation
…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>
|
Warning Review limit reached
Next review available in: 38 seconds Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
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. Comment |
There was a problem hiding this comment.
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-serverintegration test covering RFC0043.5: queryingevent_name == ...returns exactly the derived attr-only matches end-to-end. - Adds an
ourios-ingesterintegration test covering RFC0043.6: derivedevent.nameparticipates 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.
Summary
Completes RFC 0043's remaining criteria on top of #668:
event.nameattribute, no wire field) go through the realmaterialize_recordderivation and the real miner (ingest_mined), land in a real RFC 0005 store, andevent_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.(severity, scope, no-event)sentinel), and the same derived name shares one id across differing structured content.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 buildclean.🤖 Generated with Claude Code
https://claude.ai/code/session_01Qtny6z6cA74xPZa4qRhk4F