Repository navigation
feat(agents): identify Gram's Claude processes as the gram entrypoint - #91
Merged
Merged
Conversation
Owner
Author
|
Merging with |
ANT1OFF
added a commit
that referenced
this pull request
Nov 2, 2026
Desktop release metadata proposal only. Merging this PR does not publish or tag Gram; follow docs/RELEASING.md to release. --- ## [1.4.0](v1.3.1...v1.4.0) (2026-11-02) ### Features * **agents:** identify Gram's Claude processes as the gram entrypoint ([#91](#91)) ([f7dd703](f7dd703)) * **desktop:** run on Linux ([#82](#82)) ([1d37deb](1d37deb)) * **desktop:** turn voice input off on Linux with one check ([#79](#79)) ([470ff8b](470ff8b)) * **orchestration:** a person's PR comment wakes the worker that owns it ([#86](#86)) ([19bdc1c](19bdc1c)) * **orchestration:** a wrap-up turn when a worker stops without reporting ([#88](#88)) ([36a07fb](36a07fb)) * **orchestration:** workers say what they ruled out and check before repeating ([#90](#90)) ([8bdce01](8bdce01)) * **release:** publish and update Linux AppImage and .deb ([#95](#95)) ([c33c464](c33c464)) * **voice:** an accurate mode with a Parakeet pass on each pause ([#83](#83)) ([2b04a52](2b04a52)) * **voice:** hold one key to talk, with a tone at each end ([#87](#87)) ([1a9b3ef](1a9b3ef)) * **voice:** start capture at the press, and an opt-in ready microphone ([#81](#81)) ([505d240](505d240)) * **web:** a Done section that keeps the last 7 days ([#65](#65)) ([8c7bd49](8c7bd49)) * **web:** Done lists every finished chat ([#67](#67)) ([c91d9ac](c91d9ac)) * **web:** one attention count, quieter rows, a sidebar and board that agree ([#92](#92)) ([f193da4](f193da4)) * **web:** orchestrator → workers in the sidebar, a board that matches ([#80](#80)) ([686e737](686e737)) ### Bug Fixes * **desktop:** harden the Linux key vault and autostart entry ([#85](#85)) ([4b35eac](4b35eac)) * **e2e:** hold the t-flaky turn while the smoke test reads its opening line ([#93](#93)) ([2edc4ac](2edc4ac)) * **e2e:** release the dictation tap as soon as a word is heard ([#94](#94)) ([7781194](7781194)) * prepare only approved local-check sources ([#32](#32)) ([af3fab7](af3fab7)) * repair main after [#32](#32) ([#68](#68)) ([ce352e6](ce352e6)) * **voice:** keep the last word after release ([#78](#78)) ([cc40a47](cc40a47)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: gram-release-please[bot] <351321620+gram-release-please[bot]@users.noreply.github.com> Co-authored-by: Johan <32440065+ANT1OFF@users.noreply.github.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.
Claude processes that Gram starts now identify themselves as
CLAUDE_CODE_ENTRYPOINT=gram. Before this change they fell back to the Agent SDK default,sdk-ts. This follows pingdotgg/t3code#28410, but the code is Gram's own.Change
buildChildEnv(packages/agents/src/claude/env.ts) still strips an inheritedCLAUDE_CODE_ENTRYPOINTin any spelling, so a parent's value such asclaude-desktopcan't leak into Gram's children. It then setsGRAM_ENTRYPOINT(gram). No auth stripping changed.gram, and I didn't add a settings surface for it. Claude Code 2.1.316 also ignores the entrypoint insettings.jsonenv(see below), so I added no settings reader.terminalEnvbuilds the terminal's env fromprocess.envand never callsbuildChildEnv, so aclaudethe user runs in Gram's terminal keeps its own entrypoint.Spawn paths
These Claude spawn paths go through
buildChildEnv(viaClaudeEnvironment.prepare) and now sendgram:gatewayChildEnvbuilds onprepared.env)helperClaudeOptions)claude --versionprobe andclaude auth statusinprepareandcheckAuthOne path doesn't use the builder: launch checks (
packages/server/src/launch-checks/handler.ts). They runclaude --versionandclaude auth status --jsonwith Gram's own process env throughProc. They make no model requests, and I left them unchanged.Verification
vitest run packages/agents: 860 passed, 21 skipped.vitest run packages/server/src/terminal/pure.test.ts: 13 passed.bun run typecheck,bun run check:scaffoldandbun run fmt:checkpass.claude-desktop, orClaude_Code_Entrypointon Windows) becomesgram, that gateway threads keepgram, and thatterminalEnvpasses the entrypoint through untouched.claude --version→2.1.316 (Claude Code). The child env came frombuildChildEnvwith a synthetic parent env (PATH, a temporaryHOMEandCLAUDE_CODE_ENTRYPOINT=claude-desktop). I added a temporaryCLAUDE_CONFIG_DIR, a fake API key and a loopbackANTHROPIC_BASE_URLpointing at a local fake API. No real login was used: every request carried the fake key and noAuthorizationheader./v1/messagesgotUser-Agent: claude-cli/2.1.316 (external, gram), and the body carriedcc_entrypoint=gram.{"env":{"CLAUDE_CODE_ENTRYPOINT":"custom"}}in that config dir'ssettings.json, the request still carriedgram. Claude Code reads the entrypoint only from the process env.Known limits
gram(see above).