Repository navigation
fix(server): strip desktop launcher environment before providers start - #1766
Merged
Merged
Conversation
Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no
This was referenced Oct 16, 2026
donjor
added a commit
that referenced
this pull request
Oct 18, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 18, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 18, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 19, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 19, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 19, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 22, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 22, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 23, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 24, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 27, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 27, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Oct 27, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Nov 6, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 7, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 7, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 7, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 8, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 8, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
#1766) ## Problem Provider children inherit desktop placement and CDP settings from the development launcher. Closes #1615 (`Closes #1615`). ## Change Scrub every `T3CODE_DESKTOP_*` key at the existing server-start environment boundary, alongside inherited session IDs. This covers adapters that re-inherit `process.env` and in-process SDKs; Electron retains its separate launcher environment. Rename the helper and update its one startup call and existing test. ```ts for (const key of Object.keys(environment)) { if (key.toUpperCase().startsWith("T3CODE_DESKTOP_")) { delete environment[key]; } } ``` ## Scope and approval Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation. The initial per-provider environment patch was removed. Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged: ```text ✗ Error: #1615 is parentless and still Untriaged 📥, and a claim moves it off the entry Status, so Standalone 📍 would be written by nobody's judgement. Review the open trackers, projects, and slices with ghb work, then take one of the two moves: home it ghb issue edit #1615 --parent ISSUE --no-relationship — use the truthful relationship flag judge it ghb issue claim #1615 --standalone — records independence from the other open work ``` ### Close conditions - [x] **Children:** no `T3CODE_DESKTOP_*` values ## Verification - [x] Focused tests: 17 passed, 0 failed `vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts` → exit 0 The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix `T3CODE_DESKTOP` key. - [x] Targeted typecheck: both packages passed `vp run --filter @t3tools/provider-core --filter t3 typecheck` → exit 0 - [x] Targeted lint and formatting passed - [x] Server production bundle passed `vp run --filter t3 build:bundle` → exit 0 - [x] Fork gate: 762 script tests passed `vp run fork:ci` → exit 0 ## Grounding **Claim:** with `T3CODE_DESKTOP_*` set on the server, its terminal and provider children see none. - **Build:** local `ground/wave1` `e81b07cb04` - **Contents:** heads of three wave-1 PRs - **Server env:** two `T3CODE_DESKTOP_*` probe keys - **Server environ:** both keys present - **Plain shell:** `PPID` is the server; 0 keys - **Claude turn:** Bash `env` reports `count=0 none` - **Provider process environ:** 0 keys   **Not grounded:** Electron desktop placement and CDP debugging. No server code reads `T3CODE_DESKTOP_*`; Electron keeps its own launcher environment. Model/harness: gpt-6.1-sol / Pi. ## Fork trailers Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Nov 9, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 12, 2026
* fix(server): provider spawns drop another harness's identity A provider subprocess inherited the app launcher's harness markers, so a Codex thread started from a Claude-launched T3 Code carried `CLAUDECODE` and `CLAUDE_CODE_SESSION_ID`, and tooling inside the thread attributed Codex work to Claude. `mergeProviderInstanceEnvironment` now takes the target driver kind and removes every other provider's identity variables, keeping credentials and `T3CODE_*` session identity. The two seams that recompose the child environment from `process.env` scrub the same way, so a complete driver environment cannot be undone by the spawner. Closes #98 Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: yes * refactor(server): cursor probe reuses the cursor driver kind constant Squashes: - 856b4220938 fix(server): provider spawns drop another harness identity (#108) (#108) (#1595) - 756fc0b6dbb fix(server): strip desktop launcher environment before providers start (#1766) (#1766) - f582c3c3727 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828) Fork-Domain: upstream-fixes Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
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.
Problem
Provider children inherit desktop placement and CDP settings from the development launcher.
Closes #1615 (
Closes #1615).Change
Scrub every
T3CODE_DESKTOP_*key at the existing server-start environment boundary, alongside inherited session IDs.This covers adapters that re-inherit
process.envand in-process SDKs; Electron retains its separate launcher environment.Rename the helper and update its one startup call and existing test.
Scope and approval
Host-approved, focused fix for the existing launcher leak; no UI, wire contract, or provider-specific implementation.
The initial per-provider environment patch was removed.
Claim was skipped at the host's direction after this refusal; the issue remains unassigned and untriaged:
Close conditions
T3CODE_DESKTOP_*valuesVerification
vp test run apps/server/src/provider/providerSessionEnvironment.fork.test.ts apps/server/src/provider/providerSessionEnvironment.test.ts→ exit 0The extended test covers current launcher keys, a future key with an empty value, case-insensitive matching, inherited session IDs, and preservation of PATH, credentials, and the non-prefix
T3CODE_DESKTOPkey.vp run --filter @t3tools/provider-core --filter t3 typecheck→ exit 0vp run --filter t3 build:bundle→ exit 0vp run fork:ci→ exit 0Grounding
Claim: with
T3CODE_DESKTOP_*set on the server, its terminal and provider children see none.ground/wave1e81b07cb04T3CODE_DESKTOP_*probe keysPPIDis the server; 0 keysenvreportscount=0 noneNot grounded: Electron desktop placement and CDP debugging.
No server code reads
T3CODE_DESKTOP_*; Electron keeps its own launcher environment.Model/harness: gpt-6.1-sol / Pi.
Fork trailers
Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: no