Repository navigation
feat(actions): name the CLI and its harness on every passthrough call (v2.6.0) - #208
Merged
Merged
Conversation
… (v2.6.0) Every actions execute call sends x-one-source: cli, and x-one-agent with the harness that launched the process (claude-code, cursor, codex, ...) when one did, so the dashboard's Logs page can show which agent ran each action (PICA-1017, pica-v2 #992). Declared, never authenticated; the backend drops a value it cannot read rather than refusing the call. An explicit --headers value still wins. No harness version is sent. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
What
Every
actions executecall now says who is calling, so the dashboard's Logs page can show it (PICA-1017; backend side is pica-v2 #992).x-one-sourceclix-one-agentclaude-code,cursor,codex,gemini-cli,windsurf,kiro,openclaw,hermes,devindetectLauncheralready reads)A person in a plain terminal sends only the source. No harness version is sent: the CLI does not know it, and a made-up one would be shown next to the harness name as if real. An explicit
--headersvalue still overrides both. Only the passthrough request builder changed; no other request carries them.Safety
DeclaredAgent::for_headers,DeclaredSource::for_headers, both in #992). Asourceoutside the closed list (cli) is ignored.internal-7.33.0today, #992 is merged but not yet tagged), the passthrough route forwards every caller header it does not explicitly withhold to the upstream platform. These two would therefore reach Stripe, Gmail, etc. as unknown headers. Harmless to the call, but it leaks the harness name to third parties. Tag and publish this CLI version only after a core release containing #992 is on prod. The PR is otherwise ready.Changes
src/lib/caller.ts:callerHeaders(env).src/lib/api.ts: spread intoexecutePassthroughRequest's headers, beforeargs.headers.src/lib/api-caller-headers.test.ts: surface always, harness by launcher, plain terminal,--headersoverride, non-passthrough untouched. Launcher env markers are cleared per test because the suite itself may run under Claude Code.README.md: one paragraph above Telemetry.package.json/package-lock.json: 2.5.0 → 2.6.0, version fields only (hand-edited per CLAUDE.md).Verified
npm run typecheckclean,npm run buildclean.npm test: 662 pass, 6 fail. The 6 areresolveConfigtests that fail identically onmainwithout this change (checked by stashing); all 7 new tests pass.test_passthrough_records_the_client_and_surface_the_cli_names).🤖 Generated with Claude Code