Repository navigation
Capture Claude Code native usage through the existing telemetry path - #4802
Merged
Merged
Conversation
Refs #4801 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #4801 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #4801 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…obe to Core Refs #4801 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…text Refs #4801 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The PR edits packaged pnext-item/work-roadmap kit guidance and the CLI, so kit-published-coherence pr-arm requires the coherent-set scalar to lead published 0.112.0. Source only; publication and installed pins remain separate, as for #4793. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Regenerate the version projections (architecture map, compatibility, publishing-and-deployment inventory), advance CLI PackageReleaseNotes, add the registry and skills changelog entries, and reconcile the publishing-and-deployment digest in skills.yml and the driver manifest, mirroring #4793. Fixes coherence/projection, architecture-map, engine-release-notes and registry-changelog failures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the three-part PackageReleaseNotes structure (new 0.113.0 entry, $(FsggStandingAdvisories), served-history pointer) required by check-engine-release-notes, and fix a doubled registry changelog prefix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mirror #4793: SOURCE_COHERENT_VERSION, NewSddWorkspace release-notes wording and the successor test expectations (0.112.0 joins the stale versions). Fixes new-sdd-workspace-selftest / parse. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #4801 (source-only Delivery; parent Outcome #4640 keeps installed adoption, Host/receiver ingestion and display)
Summary
Claude Code native usage now reaches the existing local telemetry path. It uses the same semantics as Codex and needs no new wire schema.
RuntimeUsage.ClaudeTranscript,src/FS.GG.Coord.Core/Telemetry.fs{,i}). The CLI and the passive scanner share it. It refuses invalid UTF-8, comments, trailing commas and duplicate properties at any depth. Lines are capped at 4 MiB and files at 128 MiB. It keeps only allowlisted identities and counters. It tolerates other record types such asuser,attachment,systemandmode, and ignores<synthetic>-model local notices.RuntimeUsage.collectClaudeTranscriptemits one row per distinct API response, keyed bymessage.id, withrequestId, model, effort, version and timestamp bound.stop_reasonset) count. Repeated completed usage that disagrees is refused.reasoningisoutput_tokens_details.thinking_tokensand is set only when present.turn_idis thepromptIdof the nearest preceding user record at completion. Turn totals accumulate within (thread, prompt), and thread totals stay empty.agentId, so they never join main-thread totals.thinking > output, missing version, no preceding prompt, mixed sessions, and an incomplete streaming response in the selection. An incomplete response also makes later turn totals in its turn unknown.fsgg-coord telemetry usage collect claudetakes--session-filewith the Codex--turn-id/--all-responses/--since/--untilcontract. The existing--snapshotstill works; the two options are mutually exclusive. Source provenance isclaude-transcript-jsonl:sha256:<digest>.fsgg.telemetry.passive-selection/1file may name exactly one ofcodexHomeorclaudeHome. Claude sources must be regular files below<claudeHome>/projects, opened with the existing no-follow opener.provider-usage-observation/1with provenanceclaude-local-transcript/1and stable identities in theclaude-transcript/1namespace. Coverage stays partial/unknown and attribution canonical-only.TelemetryStoremaps each admitted provenance to its own identity namespace.lifecycle-ledger, work-roadmaplifecycle-logandruntime-observationnow name the working transcript route in place of the unwired status-line/Stop-hook recipe. Both roots are byte-identical and the driver manifest is regenerated. The Cli README is updated too.github/claude-transcript-native-usagein docs/atlas and both seeds.Measured (one host, Claude Code 2.1.299; shape only, no transcript content committed)
<session>/subagents/agent-<agentId>.jsonlwith a.meta.json. The writer streams: per-block records carrystop_reason: nulland provisionaloutput_tokensbefore one completed record, and 11 of 17 ids disagreed. That is why dedupe uses completed records only.promptIdagreed withparentUuid-chain resolution for all 209 records. In subagent transcriptspromptIdfollows the session's current prompt.--untilwindow against 103 passive records, with 0 mismatches.Verification (local, at this head)
dotnet test tests/FS.GG.Coord.Core.Tests -c Release: 1227 passeddotnet test tests/FS.GG.Coord.Cli.Tests -c Release: 750 passed (focused Claude passive tests rerun after the rotation control was added: 3 passed)dotnet test tests/FS.GG.Telemetry.Tests -c Release: 118 passedpython3 tests/telemetry-parity/run.py: pass (51 positive, 47 rejection)python3 scripts/check-fsc02-telemetry-closure.py: no issuesbash scripts/check-skill-quality: OK (29 skills).scripts/skill-view-parity.sh: AGREE.scripts/generate-driver-manifest --check: current.python3 tests/atlas/check.py --baseline 1ddc8c33…: 355 records, 674 local citations verifiedpython3 scripts/check-signature-doc-siting.py: OKcontracts/run.py,readers/run.py,adapter/run.sh,preflight/run.sh,cli/run.pyandtests/skill-quality/run.shall pass.ReadersProbenow references Core, because the passive reader shares Core's transcript decoder; its lock file is updated.Unknown / deferred
prompt_id/timestampwas not measured;--snapshotis unchanged.promptId,isSidechainoragentIdfail closed.claude-local-transcript/1. Installed adoption, Host ingestion and display stay with [V2-EFF-01.2–.6] Qualify efficiency telemetry, dashboard and selected receiver adoption #4640, and Project 3 enrollment is a separate Programme/root effect.--since/--untilcompare timestamps ordinally, as Codex does, so…:30.000Zsorts before…:30Z.Coherent113 source composition
The PR edits packaged kit guidance and the CLI, so it composes source 0.113.0 like #4793:
FsggCoherentSetVersion,registry/dependencies.yml, regenerated version projections (architecture map, compatibility, publishing-and-deployment inventory), CLIPackageReleaseNotes, registry/skills changelogs, and the skills.yml/driver-manifest digests. Source only: published112 and installed pins are unchanged, and no candidate or publication is authorized. After merge, main'skit-published-coherence / publishedarm stays red until coherent113 is published, the same state as after the 0.112 source bump.🤖 Generated with Claude Code