Skip to content

feat(fixtures): replace toy passthrough sample with Claude/Gemini/Codex shapes#11

Merged
JacobPEvans-personal merged 1 commit into
mainfrom
feat/realistic-fixtures
May 6, 2026
Merged

feat(fixtures): replace toy passthrough sample with Claude/Gemini/Codex shapes#11
JacobPEvans-personal merged 1 commit into
mainfrom
feat/realistic-fixtures

Conversation

@JacobPEvans-personal
Copy link
Copy Markdown
Member

Summary

Replaces the toy sample.json fixture with three vendor-shaped fixtures
(Claude Code, Gemini, Codex) that exercise the live cribl/cribl preview
API through the existing pipelines.test.ts auto-discovery. No pipeline,
route, test-code, workflow, or doc changes
— the harness shape is
unchanged; this is the demo-data buildout the AGENTS.md / docs already
promised.

This is the second of two PRs proving the template runs end-to-end:

Fixtures

Each fixture keeps datatype: 'cribl-demo' so the existing route filter
still matches; each .expected.json partial-matches the three Eval-stamped
fields (sourcetype, index, datatype) plus one or two distinctive
input fields per vendor.

File Shape highlight
tests/fixtures/passthrough/claude-code.json Nested message.content[] with polymorphic tool_use entry, inline usage accounting, UUID sessionId
tests/fixtures/passthrough/gemini.json Flat with type discriminator + projectHash + content[].text
tests/fixtures/passthrough/codex.json Turn-scoped item.tool.result with rollout-<uuid> session + discrete tool field

Shape sources (plausible-looking, not byte-canonical — the demo's job is to
exercise heterogeneous JSON through the live pipeline, not parse production
vendor output):

Workflow validation

This PR's CI run is the validation:

  • Touches tests/**test.yml's path filter triggers
    cribl-pack-test.ymlvalidate-pack-structure.sh + Vitest against the
    live cribl/cribl service container. Green CI = test.yml +
    cribl-pack-test.yml + global-setup + pack install + pipeline execution
    all proven end-to-end.
  • release-please.yml and release.yml are intentionally gated off on the
    template (is_template == false guard + v* tag-only trigger). Their
    full execution path is validated the first time a downstream pack
    (e.g. cc-edge-claude-code-io) merges a feat: to main and merges the
    resulting release PR. Not actionable in this repo.

Mirror-readiness

A downstream cc-edge-<vendor>-io pack that scaffolds from this template
swaps:

  1. The fixture content (drop in real vendor logs)
  2. The route filter in default/pipelines/route.yml
  3. The Eval sourcetype/index values in
    default/pipelines/passthrough/conf.yml

…and gets a working CI-validated pack with zero test-code edits. Per the
"After scaffolding" section in the README.

Test plan

  • pnpm run lint (Biome) — clean
  • pnpm run typecheck — clean
  • All six JSON files parse with JSON.parse
  • Local make docker-up && make test — couldn't run in this
    sandbox (no Docker daemon). Relying on CI for the live container run.
  • CI cribl-pack-test.yml green — this PR's test.yml run

https://claude.ai/code/session_01W79ngAnJY1uRwMnTAEhBKH


Generated by Claude Code

…ex shapes

Three vendor-shaped fixtures replace the synthetic `sample.json`. Each
exercises a structurally distinct JSON payload through the live
cribl/cribl preview API via the existing `pipelines.test.ts`
auto-discovery:

- `claude-code.json` — nested `message.content[]` with polymorphic
  `tool_use` entry, inline `usage` accounting, UUID `sessionId`
- `gemini.json` — flat shape with `type` discriminator + `projectHash`
- `codex.json` — turn-scoped `item.tool.result` with `rollout-<uuid>`
  session and discrete `tool` field

Each fixture keeps `datatype: 'cribl-demo'` so the existing route filter
still matches; each `.expected.json` partial-matches the three Eval-stamped
fields (`sourcetype`, `index`, `datatype`) plus one or two distinctive
input fields per vendor.

No pipeline, route, test-code, workflow, or doc changes. Downstream packs
mirroring this template swap fixture content + filter/Eval as needed; the
harness shape is unchanged.

Shape sources (plausible, not byte-canonical):
- Claude Code: https://code.claude.com/docs/en/agent-sdk/session-storage
- Gemini CLI: google-gemini/gemini-cli#15292
- Codex CLI: https://developers.openai.com/codex/cli/reference

https://claude.ai/code/session_01W79ngAnJY1uRwMnTAEhBKH
@JacobPEvans-personal JacobPEvans-personal marked this pull request as ready for review May 5, 2026 18:04
Copilot AI review requested due to automatic review settings May 5, 2026 18:04
Copy link
Copy Markdown

Copilot AI left a comment

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 updates the template’s passthrough pipeline fixtures to use more realistic vendor-shaped events (Claude Code, Gemini, Codex), ensuring the existing fixture auto-discovery + live /preview pipeline test harness exercises heterogeneous JSON inputs without changing pipelines or test code.

Changes:

  • Removed the old toy sample.json passthrough fixture.
  • Added three new vendor-shaped passthrough input fixtures (claude-code, gemini, codex).
  • Added matching .expected.json files to partial-assert key stamped fields plus a couple vendor-distinctive fields per fixture.

Reviewed changes

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

Show a summary per file
File Description
tests/fixtures/passthrough/sample.json Removes the previous minimal demo fixture.
tests/fixtures/passthrough/claude-code.json Adds Claude-shaped input fixture event.
tests/fixtures/passthrough/claude-code.expected.json Updates expected partial-match keys for the Claude fixture.
tests/fixtures/passthrough/gemini.json Adds Gemini-shaped input fixture event.
tests/fixtures/passthrough/gemini.expected.json Adds expected partial-match keys for the Gemini fixture.
tests/fixtures/passthrough/codex.json Adds Codex-shaped input fixture event.
tests/fixtures/passthrough/codex.expected.json Adds expected partial-match keys for the Codex fixture.

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

@JacobPEvans-personal JacobPEvans-personal merged commit 1cd752a into main May 6, 2026
6 checks passed
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.

3 participants