Skip to content

feat(telemetry): split and filter the report by tool - #1064

Merged
blafourcade merged 5 commits into
nextfrom
feat/report-by-tool
Oct 20, 2026
Merged

blafourcade merged 5 commits into
nextfrom
feat/report-by-tool

Conversation

@blafourcade

@blafourcade blafourcade commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

🎯 What & why

aidd telemetry report sums Claude Code and Codex calls together. Every stored call already says its tool, but no axis shows it and no filter keeps one. This adds --axis tool (one row per tool) and --tool <claude-code|codex>.

🛠️ How it works

  • tool is one more report axis and one more filter, built by the same function that builds the rows, so a row and its filter cannot disagree (usage-report.ts, report-filter.ts).
  • --tool is a closed set over USAGE_TOOLS, refused otherwise like --agent (telemetry.ts).
  • Envelope stays version 2: filters gains tool as its last key, null when not given. No new store, no breaking change.
  • The property generators now draw tool per call (Codex included) and tool in their filters, instead of alternating by index.
  • Docs: envelope reference, 01-usage skill, usage contract. Contract and evidence: report-by-tool.

🧪 How to verify

  • aidd telemetry report --axis tool --json, then --tool codex on the same period: its totals equal the codex row.
  • cd cli && pnpm test and node scripts/run-mutation.mjs --changed (100.0, no survivor); the telemetry scope holds 96.9 over its floor of 96.

⚠️ Heads-up

  • No binary test holds Claude Code and Codex calls in one report (each e2e sandbox has one tool); both together are covered by the property and unit tests. The built binary reads Codex in the journey e2e, which asserts --axis tool.
  • The T1-T3 properties are self-consistent by construction (one function builds rows and filters), so what pins the axis value is the unit tests, see evidence.md.

🔗 Linked issue

None. Follows #1057 and #1058: the report tells Claude Code and Codex apart.

✅ I certify

  • I DO CERTIFY I READ EACH LINE OF THE PULL REQUEST BECAUSE I AM A SOFTWARE ENGINEER, NOT A AI PUPPY.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TnCgcujM2xi6T6dkmVogVw

blafourcade and others added 5 commits October 20, 2026 05:59
`aidd telemetry report --axis tool` gives one row per tool, and `--tool
<claude-code|codex>` keeps only that tool's calls, a closed set refused
like `--agent`. The envelope stays version 2: `filters` gains `tool` as
its last key, `null` when not given.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TnCgcujM2xi6T6dkmVogVw
The envelope reference lists the `tool` axis and the last `filters` key,
the `01-usage` skill maps "Claude Code and Codex apart" to `--axis tool`
and `--tool`, and the usage contract lists the new filter.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TnCgcujM2xi6T6dkmVogVw
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TnCgcujM2xi6T6dkmVogVw
… property

The journey e2e reports `--axis tool` for Codex and in its per-axis loop,
the partition property counts records by tool, the plugin descriptions
name the axis, and the evidence states only what is true.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TnCgcujM2xi6T6dkmVogVw
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TnCgcujM2xi6T6dkmVogVw
@blafourcade
blafourcade marked this pull request as ready for review October 20, 2026 05:09
@blafourcade
blafourcade requested a review from a team as a code owner October 20, 2026 05:09
@blafourcade
blafourcade merged commit 78938c9 into next Oct 20, 2026
32 checks passed
@blafourcade
blafourcade deleted the feat/report-by-tool branch October 20, 2026 05:09
@blafourcade blafourcade added this to the This week milestone Oct 22, 2026 — with Claude
@aidd-bot aidd-bot Bot mentioned this pull request Oct 26, 2026
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.

1 participant