fix(fish): restore agent homes and the attribution PATH shim after config.fish

fish gets no wrapper rc file, so the only hook that runs after the user's own
startup files is `--init-command`. Both halves of the POSIX wrapper contract
were missing there:

- a config.fish that sets its own CODEX_HOME/OPENCODE_CONFIG_DIR/MIMOCODE_HOME
  beat Orca's routed home, so agents launched against the wrong account and the
  account switcher looked like a no-op
- macOS fish's bundled config.fish runs path_helper, which rebuilds PATH and
  demotes Orca's prepended attribution shim to near-last, so commits made in
  fish panes lost the Orca trailer / PR footer

Fold both into the single `-C` string that already carries the shell-ready
marker (multi-`-C` support varies by fish version), and give it to the
markerless attribution path too — that is the pane where a user types
`git commit` by hand. The marker itself stays gated on ORCA_SHELL_READY_MARKER.
This commit is contained in:
Neil
2026-08-12 18:49:15 -07:00
parent f1ee3088a5
commit 7821f222de
8 changed files with 253 additions and 18 deletions
+2
View File
@@ -246,6 +246,7 @@ jobs:
src/main/providers/local-pty-shell-ready.test.ts \
src/main/providers/__tests__/shell-ready-framework-example.test.ts \
src/main/pty/omp-shell-wrapper.node-pty.test.ts \
src/main/fish-startup-environment.node-pty.test.ts \
src/renderer/src/components/terminal-pane/fish-color-scheme-child-stdin.node-pty.test.ts \
src/shared/posix-command-path-lookup.test.ts
@@ -282,6 +283,7 @@ jobs:
--exclude=src/main/providers/local-pty-shell-ready.test.ts \
--exclude=src/main/providers/__tests__/shell-ready-framework-example.test.ts \
--exclude=src/main/pty/omp-shell-wrapper.node-pty.test.ts \
--exclude=src/main/fish-startup-environment.node-pty.test.ts \
--exclude=src/renderer/src/components/terminal-pane/fish-color-scheme-child-stdin.node-pty.test.ts \
--exclude=src/shared/posix-command-path-lookup.test.ts \
--exclude=tests/e2e/cross-version-wire/** \