Skip to content

refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr - #1827

Merged
donjor merged 2 commits into
hyprwsfrom
t3/remove-dev-app-launcher
Oct 22, 2026
Merged

donjor merged 2 commits into
hyprwsfrom
t3/remove-dev-app-launcher

Conversation

@donjor-agent

@donjor-agent donjor-agent Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

🤖 claude/anthropic claude-opus-5-5 (high)

Problem

A delegated agent ran vp run dev:app --external and a tab opened in the human's own Chrome.
scripts/lib/dev-app.ts passed --browser, so the server ran xdg-open.
The launcher also duplicated desktop placement that donjor hypr owns.

Change

Removed the fork's dev-app launcher and its seams; agents use upstream vp run dev.

Deleted:

  • dev:app, dev:desktop:agent, hypr:workspace
  • their scripts, libs, and tests
  • --preview, --external, --desktop, --workspace
  • raw hyprctl workspace helpers
  • web preview handoff
  • desktop agent placement
  • desktop user-data override
  • scripts/cli-exemptions.json

Restored to upstream:

  • t3.json, .env.example
  • DesktopUserData.ts
  • test-t3-app, test-t3-mobile skills
  • runProjectScript in useChatTerminalActions.ts

Simplified: the Hyprland rule lifetime option had one caller left; removed.

Kept:

  • T3CODE_DESKTOP_DEVTOOLS: generic dev opt-out
  • multi-window web fixes from the same commit
  • t3code.desktop-agent.* Lua handle names

Agents start the app plainly and open its URL with donjor hypr cdp page new.
Nothing auto-opens the human's browser.

Diff: 43 files, +41 / −4,854.

Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

Verification

vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1

check:changed fails one test: GitManager > includes CLAUDE.md for Claude writers.
It fails locally with apps/server untouched; hyprws CI is green on the base.

Claude Opus 5.5, via Claude Code.

Fork trailers

Fork-Domain: fork-meta
Fork-Tier: qol

@rsi-software-agent rsi-software-agent Bot added the size:XXL 1,000+ effective changed lines (test files excluded in mixed PRs). label Oct 22, 2026
@rsi-software-agent

rsi-software-agent Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

🧩 Effect Service Conventions 64514c4 ✅ clear

No findings.

🕐 22 Oct 03:49 UTC ⏱️ 2 min 🤖 gpt-6.1-sol 🪙 244.6K

⚠️ Not verified: Static review only; tests, typecheck, and knip were not rerun.

Details
Head Result Time Check
64514c4 ✅ clear 2 min run
7f5a491 ✅ clear <1 min run
1b79fde ✅ clear <1 min run
9cc3842 ✅ clear <1 min run
92351e4 ✅ clear 1 min run

@rsi-software-agent

rsi-software-agent Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

🧩 UI Consistency 7f5a491 ✅ clear

No findings.

🕐 22 Oct 03:38 UTC ⏱️ <1 min 🤖 gpt-6.1-sol 🪙 82.7K

Details
Head Result Time Check
7f5a491 ✅ clear <1 min run
1b79fde ✅ clear <1 min
9cc3842 ✅ clear <1 min run
92351e4 ✅ clear <1 min run

@rsi-software-agent

rsi-software-agent Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

🩺 Aftercare 64514c4 ✅ clear

resolved 4

commit 92351e4

  • A1 Nested dev launches inherit the hosting server's occupied port ➖ Confirmed b85f916 is an ancestor; this head strips runtime settings after resolving server config.
  • A2 Hyprland module still claims to handle removed dev-launch placement ✅ 9cc3842
  • A3 Separate project-script orchestration from the oversized chat view ➖ Extracting restored upstream-owned code would add fork divergence outside this removal's scope.
  • A4 Verify issue the additive gate refuses to delete a test the fork created itself [📡#443] #1200's no-human-tab close condition on a live lane ➖ Static tracing supports no-auto-open behavior; live verification remains a limit, not another defect.

🕐 22 Oct 03:52 UTC ⏱️ 3 min 🤖 gpt-6.1-sol 🪙 930.6K

⚠️ Not verified: Nested startup and live Hyprland/browser isolation were not independently exercised.

Details

A1 Nested dev launches inherit the hosting server's occupied port · .agents/skills/test-t3-app/SKILL.md:15

  • Problem: Plain dev retains inherited T3CODE_PORT and skips allocation for the occupied server port.
  • Fix: Strip parent runtime settings at provider spawn; add a nested-launch regression test.
  • Note: Confirmed b85f916 is an ancestor; this head strips runtime settings after resolving server config.

A2 Hyprland module still claims to handle removed dev-launch placement · apps/desktop/src/window/hyprland.ts:5

  • Problem: The module header advertises explicit dev-launch placement after its only caller was removed.
  • Fix: Remove the obsolete dev-launch claim; retain the intentionally preserved Lua handle names.
  • Note: The header drops dev-launch placement; intentionally retained Lua handle names are unchanged.

A3 Separate project-script orchestration from the oversized chat view · apps/web/src/components/ChatView.tsx:2677

  • Problem: The 7,366-line chat view still combines terminal launch orchestration with product UI.
  • Fix: Extract project-script execution into a focused controller in a separate refactor.
  • Note: Extracting restored upstream-owned code would add fork divergence outside this removal's scope.

A4 Verify issue #1200's no-human-tab close condition on a live lane

  • Problem: The linked issue's no-human-desktop-tab close condition remains unverified on a live Hyprland host.
  • Fix: Verify a lane-started dev run and explicit URL opening leave the human browser untouched.
  • Note: Static tracing supports no-auto-open behavior; live verification remains a limit, not another defect.
Head Result Time Check
64514c4 ✅ clear 3 min run
7f5a491 ✅ clear 1 min run
1b79fde 🔴 1 open <1 min
9cc3842 🔴 1 open · 1 fixed · 2 withdrawn · 1 held 2 min run
92351e4 🔴 2 open · 4 new 6 min run

@donjor-agent

donjor-agent Bot commented Oct 22, 2026

Copy link
Copy Markdown
Author

🤖 claude/anthropic claude-opus-5-5 (high)

A1: fixed in #1828: the server strips T3CODE_PORT, T3CODE_HOST, T3CODE_MODE, T3CODE_NO_BROWSER from agent env after config resolves.
A2: fixed in 9cc3842: the hyprland.ts header drops the dev-launch claim.
A3: drop: ChatView.tsx is upstream-owned; extracting it adds sync cost outside this removal.
A4: drop: the trigger (--browser → xdg-open) is deleted, and the upstream runner defaults the browser off and owns T3CODE_NO_BROWSER.

donjor added a commit that referenced this pull request Oct 22, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
@donjor
donjor force-pushed the t3/remove-dev-app-launcher branch from 9cc3842 to 1b79fde Compare October 22, 2026 02:55
@donjor-agent

donjor-agent Bot commented Oct 22, 2026

Copy link
Copy Markdown
Author

🤖 claude/anthropic claude-opus-5-5 (high)

A1: fixed: #1828 merged as b85f916, now the base of this head.

@rsi-software-agent

Copy link
Copy Markdown

A1: withdrawn

donjor-agent[bot]: fixed: #1828 merged as b85f916, now the base of this head.

Confirmed b85f916 is an ancestor; this head strips runtime settings after resolving server config.

@donjor-agent

donjor-agent Bot commented Oct 22, 2026

Copy link
Copy Markdown
Author

🤖 claude/anthropic claude-opus-5-5 (high)

Requested a rerun for one exact failed or cancelled CI job on the unchanged pull-request head. GitHub may also rerun dependent jobs.

  • Head: 1b79fde2713b90a133f8a3900b6f9b90fadc940b
  • Workflow: hyprws CI; run 39713994750; pre-rerun attempt 1; open run
  • Job: Test Scripts; id 119611662264; open job
  • Check run: 119611662264
  • Genuine flake reason: npm registry error during Setup Vite+ (Test Scripts, Test Server 1)

donjor added a commit that referenced this pull request Oct 22, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
@donjor-agent

donjor-agent Bot commented Oct 22, 2026

Copy link
Copy Markdown
Author

🤖 claude/anthropic claude-opus-5-5 (high)

Requested a rerun for one exact failed or cancelled CI job on the unchanged pull-request head. GitHub may also rerun dependent jobs.

  • Head: 1b79fde2713b90a133f8a3900b6f9b90fadc940b
  • Workflow: hyprws Body; run 39713994630; pre-rerun attempt 1; open run
  • Job: Body; id 119611661134; open job
  • Check run: 119611661134
  • Genuine flake reason: npm registry 502 outage during Setup Vite+; registry healthy again

@donjor-agent

donjor-agent Bot commented Oct 22, 2026

Copy link
Copy Markdown
Author

🤖 claude/anthropic claude-opus-5-5 (high)

Requested a rerun for one exact failed or cancelled CI job on the unchanged pull-request head. GitHub may also rerun dependent jobs.

  • Head: 1b79fde2713b90a133f8a3900b6f9b90fadc940b
  • Workflow: hyprws CI; run 39713994750; pre-rerun attempt 2; open run
  • Job: Test Web; id 119614019267; open job
  • Check run: 119614019267
  • Genuine flake reason: npm registry 502 outage during Setup Vite+; registry healthy again

…ev and place windows with donjor hypr

Fork-Domain: fork-meta
Fork-Tier: qol
@donjor
donjor force-pushed the t3/remove-dev-app-launcher branch from 7f5a491 to 64514c4 Compare October 22, 2026 03:47
@donjor
donjor merged commit dde8bbe into hyprws Oct 22, 2026
@donjor
donjor deleted the t3/remove-dev-app-launcher branch October 22, 2026 03:58
donjor added a commit that referenced this pull request Oct 23, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## 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
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 24, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## 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
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 27, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## 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
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 27, 2026
…tream dev and place windows with donjor hypr (#1827)
donjor added a commit that referenced this pull request Oct 27, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## 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 30, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Oct 30, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 Oct 30, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Oct 30, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 Oct 30, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Oct 31, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 Oct 31, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Nov 6, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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]>
donjor added a commit that referenced this pull request Nov 6, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Nov 6, 2026
…tream dev and place windows with donjor hypr (#1827)

revealOrCreateIdentity reveals through upstream's revealMain, which waits for a window's first paint.

Fork-Domain: fork-meta
Fork-Tier: qol
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 6, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 6, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 6, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 6, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 6, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 6, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 7, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 7, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 7, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 7, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 7, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 7, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 8, 2026
…settings (#1828)

## Problem

A service unit can pass `T3CODE_PORT`, `T3CODE_HOST`, `T3CODE_MODE`, and `T3CODE_NO_BROWSER` as env.
The server passed them on to every agent and terminal.
A plain `vp run dev` there resolved `serverPort=3773`, the live server, so the dev web proxied to the live install.
The removed dev-app launcher hid this; #1827 makes plain `vp run dev` the agent path.

## Change

- `stripInheritedProviderEnvironment` also drops those four keys
- it now runs after `resolveServerConfig`, which reads them
- `T3CODE_HOME` stays: worktree dev outranks it

## Scope and approval

Found by aftercare A1 on #1827.
Upstream desktop never passes these to its backend, so this stays fork-only.

## Verification

```text
vp test run src/provider/providerSessionEnvironment.fork.test.ts src/provider/providerSessionEnvironment.test.ts src/cli → exit 0 (97 passed)
vp run typecheck → exit 0
vp run fork:ci → exit 0
```

`vp run dev --dry-run` in an agent shell:

| Env | serverPort |
| --- | --- |
| inherited | 3773 (live) |
| stripped | 15977 |

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 6c1ea93 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) (#1828)
- 2ca7974 fixup! 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 8, 2026
…ev and place windows with donjor hypr (#1827)

## Problem

A delegated agent ran `vp run dev:app --external` and a tab opened in the human's own Chrome.
`scripts/lib/dev-app.ts` passed `--browser`, so the server ran `xdg-open`.
The launcher also duplicated desktop placement that `donjor hypr` owns.

## Change

Removed the fork's dev-app launcher and its seams; agents use upstream `vp run dev`.

**Deleted:**

- `dev:app`, `dev:desktop:agent`, `hypr:workspace`
- their scripts, libs, and tests
- `--preview`, `--external`, `--desktop`, `--workspace`
- raw `hyprctl` workspace helpers
- web preview handoff
- desktop agent placement
- desktop user-data override
- `scripts/cli-exemptions.json`

**Restored to upstream:**

- `t3.json`, `.env.example`
- `DesktopUserData.ts`
- `test-t3-app`, `test-t3-mobile` skills
- `runProjectScript` in `useChatTerminalActions.ts`

**Simplified:** the Hyprland rule lifetime option had one caller left; removed.

**Kept:**

- `T3CODE_DESKTOP_DEVTOOLS`: generic dev opt-out
- multi-window web fixes from the same commit
- `t3code.desktop-agent.*` Lua handle names

Agents start the app plainly and open its URL with `donjor hypr cdp page new`.
Nothing auto-opens the human's browser.

**Diff:** 43 files, +41 / −4,854.

## Scope and approval

Fixes RSI-Software/donjor-skills#1200; the human asked for the removal.
GitHub refuses a private-to-public transfer, so that issue closes by hand after merge.

## Verification

```text
vp run typecheck → exit 0
vp run build → exit 0
vp run fork:ci → exit 0
vp test run apps/desktop/src/window apps/desktop/src/app → exit 0 (272 passed)
vp test run src/components/chat (apps/web) → exit 0 (360 passed)
vp run check:changed → exit 1
```

`check:changed` fails one test: `GitManager > includes CLAUDE.md for Claude writers`.
It fails locally with `apps/server` untouched; `hyprws CI` is green on the base.

Claude Opus 5.5, via Claude Code.

## Fork trailers

Squashes:

- 2454228 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- f16654d fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- d651c3e refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)
- 0d96820 fixup! refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) (#1827)

Fork-Domain: fork-meta
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ effective changed lines (test files excluded in mixed PRs).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant