Before submitting
Area
TritonAI Harness desktop install
Steps to reproduce
Environment
- macOS, one admin account + one standard (non-admin) account, both running TritonAI Harness
- Installer version: 0.3.0
Issue 1 — shared launcher stub hardcodes the installing account's home directory
/Applications/TritonAI Harness.app's launcher script is generated by
buildMacLauncherScript(), using os.homedir() of whichever account ran the
installer, with no per-account resolution. Every path gets baked in literally
(e.g. /Users/<admin-account>/.agents/ucsd/...).
Effect: after installing as the admin account, any other local account
that opens the same /Applications/TritonAI Harness.app launches paths
belonging to the admin's home directory — silently misdirected to the wrong
user's data, not just a crash.
Suggested fix: emit $HOME-relative paths in the generated script instead
of the installing user's literal home directory.
Issue 2 — installer fails hard on standard (non-admin) accounts
Updating from a standard account fails at the last step:
EACCES: permission denied, mkdtemp '/Applications/.tritonai-harness-launcher-stage-XXXXXX'
at Object.mkdtempSync (node:fs:3038:18)
at writeMacAppLauncher (.../t3code-desktop.js:292:26)
at installMacDesktop (.../t3code-desktop.js:103:26)
/Applications is admin-only on macOS, so this can never succeed under a
standard account. Everything before this step succeeds, though — the
per-user runtime, Codex backend, and app bundle at
~/.agents/ucsd/apps/TritonAI Harness.app all install correctly. Only the
final, optional shared-stub write needs admin rights, yet its failure is
reported as a fatal "Setup paused" error even though the real install already
succeeded.
Possible fix: treat the shared /Applications write as best-effort —
catch EACCES for that step specifically, warn, and still report overall
success. Optionally prompt for admin elevation just for that step.
Combined note
Even with an elevation prompt for issue 2, the shared stub will still only
reflect whichever account most recently ran the installer unless issue 1's
fix is also adopted — every future update from either account re-breaks the
other otherwise.
Expected behavior
Installing or updating TritonAI Harness from any local macOS account on a shared Mac should work correctly for whichever account launches the app afterward — regardless of which account ran the installer, and regardless of whether that account is an admin or a standard (non-admin) user. A failure in an optional/cosmetic step (like refreshing the shared /Applications shortcut) shouldn't block or fail the overall install when the actual per-user app already installed successfully.
Actual behavior
- The shared launcher at
/Applications/TritonAI Harness.app hardcodes the home directory of whichever account ran the installer. Any other local account that opens the same /Applications/TritonAI Harness.app gets silently routed to that account's files instead of its own — not an error, just wrong data.
- Running the installer from a standard (non-admin) account always fails at the last step with
EACCES: permission denied, mkdtemp '/Applications/.tritonai-harness-launcher-stage-XXXXXX', since /Applications is admin-only on macOS. This is shown as a fatal "Setup paused" error, even though the real per-user app and Codex runtime installed successfully immediately before this step.
Impact
Major degradation or frequent failure
Version or commit
v0.3.0
Environment
MacOSX 26.5.2
Logs or stack traces
Provider turn start failed: provider adapter process error:
ProviderAdapterProcessError: Provider adapter process error (codex) for thread 27432c76-bd91-4c1b-976f-eab6e9edaa23: Codex App Server process exited with code 1
at file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:71715:74
at file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/node_modules/effect/dist/internal/effect.js:1310:96
at ~effect/Utils/internal (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/node_modules/effect/dist/Utils.js:79:12)
at startSession (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:85435:59)
at startSession (definition) (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:65431:30)
at ensureSessionForThread (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:85515:10)
at ensureSessionForThread (definition) (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:85372:40)
at processTurnStartRequested (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:85774:12)
at processTurnStartRequested (definition) (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:85601:43)
at processDomainEvent (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:85790:46)
at processDomainEvent (definition) (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:85758:36) {
[cause]: CodexAppServerProcessExitedError: Codex App Server process exited with code 1
at Object.onSuccess (file:///Users/standarduseacct/.agents/ucsd/apps/TritonAI%20Harness.app/Contents/Resources/app.asar/apps/server/dist/bin.mjs:45342:23)
}
installer-20260723T033413Z.log
[2026-07-23T03:34:13.150Z] [start] Installer diagnostics started
[2026-07-23T03:34:13.334Z] [prepare] Verified 1 managed Harness plugin package from pinned commit 993053021b83513e88061411faf5659240d3ee41.
[2026-07-23T03:34:13.334Z] [prepare] Creating UCSD agent folders...
[2026-07-23T03:34:13.339Z] [prepare] Installed 1 managed secure skill; removed 0 previously managed skills.
[2026-07-23T03:34:13.340Z] [prepare] Checking installer prerequisites...
[2026-07-23T03:34:13.340Z] [prepare] Using bundled Node.js runtime at /Users/standarduseracct/.agents/ucsd/runtime/node/node-v22.22.2-darwin-arm64
[2026-07-23T03:34:13.340Z] [connect] Checking TritonAI connection...
[2026-07-23T03:34:14.969Z] [connect] External model access verified.
[2026-07-23T03:34:14.969Z] [connect] TritonAI connection verified.
[2026-07-23T03:34:14.970Z] [connect] Saving TritonAI access key environment...
[2026-07-23T03:34:14.976Z] [connect] Saved private TritonAI Harness environment at /Users/standarduseracct/.agents/ucsd/env
[2026-07-23T03:34:15.217Z] [tools] Found managed Codex 0.144.3; using it for TritonAI Harness.
[2026-07-23T03:34:15.217Z] [tools] Pinned managed Codex to the managed Node.js runtime.
[2026-07-23T03:34:15.359Z] [tools] Verifying TritonAI Codex backend...
[2026-07-23T03:34:15.359Z] [tools] $ /Users/standarduseracct/.agents/ucsd/runtime/codex/openai-codex-0.144.3/bin/codex --version
[2026-07-23T03:34:15.406Z] [tools] codex-cli 0.144.3
[2026-07-23T03:34:15.408Z] [tools] Configuring TritonAI Harness for UCSD routing...
[2026-07-23T03:34:15.413Z] [tools] Applying TritonAI Harness defaults...
[2026-07-23T03:34:15.413Z] [tools] $ /Users/standarduseracct/.agents/ucsd/runtime/node/node-v22.22.2-darwin-arm64/bin/node /Users/standarduseracct/.agents/ucsd/bin/t3code-ucsd-defaults.js
[2026-07-23T03:34:15.446Z] [tools] (node:60135) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
[2026-07-23T03:34:15.450Z] [shortcut] Installing TritonAI Harness desktop app...
[2026-07-23T03:34:15.612Z] [shortcut] Installing TritonAI Harness from bundled image at /Volumes/Double-click to Install/TritonAI Installer.app/Contents/Resources/vendor/t3code-desktop/mac-arm64/TritonAI-Harness-0.3.0-arm64.dmg
[2026-07-23T03:34:15.612Z] [shortcut] Using signed app-bundled TritonAI Harness image; validating with hdiutil before install.
[2026-07-23T03:34:15.612Z] [shortcut] $ hdiutil verify /Volumes/Double-click to Install/TritonAI Installer.app/Contents/Resources/vendor/t3code-desktop/mac-arm64/TritonAI-Harness-0.3.0-arm64.dmg
[2026-07-23T03:34:15.621Z] [shortcut] Checksumming Protective Master Boot Record (MBR : 0)…
[2026-07-23T03:34:15.621Z] [shortcut] Protective Master Boot Record (MBR :: verified CRC32 $F7A82429
Checksumming GPT Header (Primary GPT Header : 1)…
[2026-07-23T03:34:16.005Z] [shortcut] GPT Header (Primary GPT Header : 1): verified CRC32 $68C8C20F
Checksumming GPT Partition Data (Primary GPT Table : 2)…
[2026-07-23T03:34:16.006Z] [shortcut] GPT Partition Data (Primary GPT Tabl: verified CRC32 $99902BF6
Checksumming (Apple_Free : 3)…
[2026-07-23T03:34:17.004Z] [shortcut] (Apple_Free : 3): verified CRC32 $00000000
Checksumming disk image (Apple_HFS : 4)…
[2026-07-23T03:34:17.656Z] [shortcut] disk image (Apple_HFS : 4): verified CRC32 $27A0C103
Checksumming (Apple_Free : 5)…
[2026-07-23T03:34:18.005Z] [shortcut] (Apple_Free : 5): verified CRC32 $00000000
Checksumming GPT Partition Data (Backup GPT Table : 6)…
[2026-07-23T03:34:18.006Z] [shortcut] GPT Partition Data (Backup GPT Table: verified CRC32 $99902BF6
Checksumming GPT Header (Backup GPT Header : 7)…
[2026-07-23T03:34:19.005Z] [shortcut] GPT Header (Backup GPT Header : 7): verified CRC32 $2663CC87
[2026-07-23T03:34:19.006Z] [shortcut] verified CRC32 $5A7C8B30
[2026-07-23T03:34:19.007Z] [shortcut] hdiutil: verify: checksum of "/Volumes/Double-click to Install/TritonAI Installer.app/Contents/Resources/vendor/t3code-desktop/mac-arm64/TritonAI-Harness-0.3.0-arm64.dmg" is VALID
[2026-07-23T03:34:19.009Z] [shortcut] Verified TritonAI Harness installer image.
[2026-07-23T03:34:19.010Z] [shortcut] $ hdiutil attach /Volumes/Double-click to Install/TritonAI Installer.app/Contents/Resources/vendor/t3code-desktop/mac-arm64/TritonAI-Harness-0.3.0-arm64.dmg -nobrowse -readonly -mountpoint /var/folders/q4/m_zg_p3d1svg3kpq_wjln4qh0000gq/T/t3code-desktop-UeC34S
[2026-07-23T03:34:19.081Z] [shortcut] Checksumming Protective Master Boot Record (MBR : 0)…
[2026-07-23T03:34:19.082Z] [shortcut] Protective Master Boot Record (MBR :: verified CRC32 $F7A82429
Checksumming GPT Header (Primary GPT Header : 1)…
[2026-07-23T03:34:20.006Z] [shortcut] GPT Header (Primary GPT Header : 1): verified CRC32 $68C8C20F
[2026-07-23T03:34:20.007Z] [shortcut] Checksumming GPT Partition Data (Primary GPT Table : 2)…
[2026-07-23T03:34:20.007Z] [shortcut] GPT Partition Data (Primary GPT Tabl: verified CRC32 $99902BF6
Checksumming (Apple_Free : 3)…
[2026-07-23T03:34:21.006Z] [shortcut] (Apple_Free : 3): verified CRC32 $00000000
[2026-07-23T03:34:21.007Z] [shortcut] Checksumming disk image (Apple_HFS : 4)…
[2026-07-23T03:34:21.661Z] [shortcut] disk image (Apple_HFS : 4): verified CRC32 $27A0C103
[2026-07-23T03:34:21.661Z] [shortcut] Checksumming (Apple_Free : 5)…
[2026-07-23T03:34:22.006Z] [shortcut] (Apple_Free : 5): verified CRC32 $00000000
[2026-07-23T03:34:22.007Z] [shortcut] Checksumming GPT Partition Data (Backup GPT Table : 6)…
[2026-07-23T03:34:22.007Z] [shortcut] GPT Partition Data (Backup GPT Table: verified CRC32 $99902BF6
[2026-07-23T03:34:22.008Z] [shortcut] Checksumming GPT Header (Backup GPT Header : 7)…
[2026-07-23T03:34:23.006Z] [shortcut] GPT Header (Backup GPT Header : 7): verified CRC32 $2663CC87
[2026-07-23T03:34:23.007Z] [shortcut] verified CRC32 $5A7C8B30
[2026-07-23T03:34:24.200Z] [shortcut] /dev/disk5 GUID_partition_scheme
/dev/disk5s1 Apple_HFS /private/var/folders/q4/m_zg_p3d1svg3kpq_wjln4qh0000gq/T/t3code-desktop-UeC34S
[2026-07-23T03:34:24.201Z] [shortcut] Mounted TritonAI Harness installer image.
[2026-07-23T03:34:24.203Z] [shortcut] $ ditto /var/folders/q4/m_zg_p3d1svg3kpq_wjln4qh0000gq/T/t3code-desktop-UeC34S/TritonAI Harness.app /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app
[2026-07-23T03:34:38.248Z] [shortcut] Copied TritonAI Harness app to staging.
[2026-07-23T03:34:38.249Z] [shortcut] $ /usr/bin/plutil -extract CFBundleIdentifier raw -o - /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Info.plist
[2026-07-23T03:34:38.253Z] [shortcut] edu.ucsd.tritonai.harness
[2026-07-23T03:34:38.253Z] [shortcut] $ /usr/bin/codesign --verify --deep --strict --verbose=2 /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app
[2026-07-23T03:34:40.953Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Squirrel.framework/Versions/Current/.
[2026-07-23T03:34:40.954Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (GPU).app
[2026-07-23T03:34:40.954Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (Plugin).app
[2026-07-23T03:34:40.954Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (GPU).app
[2026-07-23T03:34:40.954Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Squirrel.framework/Versions/Current/.
[2026-07-23T03:34:40.955Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (Plugin).app
[2026-07-23T03:34:40.955Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (Renderer).app
[2026-07-23T03:34:40.955Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Mantle.framework/Versions/Current/.
[2026-07-23T03:34:40.955Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper.app
[2026-07-23T03:34:40.956Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (Renderer).app
[2026-07-23T03:34:40.956Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Mantle.framework/Versions/Current/.
[2026-07-23T03:34:40.956Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/ReactiveObjC.framework/Versions/Current/.
[2026-07-23T03:34:40.956Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper.app
[2026-07-23T03:34:40.956Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/ReactiveObjC.framework/Versions/Current/.
[2026-07-23T03:34:41.332Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
[2026-07-23T03:34:41.378Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Helpers/chrome_crashpad_handler
[2026-07-23T03:34:41.378Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Helpers/chrome_crashpad_handler
--validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
[2026-07-23T03:34:41.378Z] [shortcut] /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app: valid on disk
[2026-07-23T03:34:41.378Z] [shortcut] /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app: satisfies its Designated Requirement
[2026-07-23T03:34:41.395Z] [shortcut] $ /usr/bin/codesign --verify --strict --verbose=2 -R =anchor apple generic and identifier "edu.ucsd.tritonai.harness" and certificate leaf[subject.OU] = "DTZW32QN7F" /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app
[2026-07-23T03:34:44.112Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (Plugin).app
--validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (Plugin).app
[2026-07-23T03:34:44.112Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/ReactiveObjC.framework/Versions/Current/.
--validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/ReactiveObjC.framework/Versions/Current/.
[2026-07-23T03:34:44.113Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (Renderer).app
[2026-07-23T03:34:44.113Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (Renderer).app
[2026-07-23T03:34:44.113Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (GPU).app
[2026-07-23T03:34:44.113Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper (GPU).app
[2026-07-23T03:34:44.113Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper.app
[2026-07-23T03:34:44.113Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/TritonAI Harness Helper.app
[2026-07-23T03:34:44.113Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Mantle.framework/Versions/Current/.
[2026-07-23T03:34:44.114Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Mantle.framework/Versions/Current/.
[2026-07-23T03:34:44.114Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Squirrel.framework/Versions/Current/.
[2026-07-23T03:34:44.114Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Squirrel.framework/Versions/Current/.
[2026-07-23T03:34:44.114Z] [shortcut] --prepared:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
[2026-07-23T03:34:44.114Z] [shortcut] --validated:/Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
[2026-07-23T03:34:44.114Z] [shortcut] /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app: valid on disk
[2026-07-23T03:34:44.114Z] [shortcut] /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app: satisfies its Designated Requirement
[2026-07-23T03:34:44.114Z] [shortcut] /Users/standarduseracct/.agents/ucsd/apps/.tritonai-harness-stage-zCQkV2/TritonAI Harness.app: explicit requirement satisfied
[2026-07-23T03:34:44.132Z] [shortcut] Verified staged TritonAI Harness app.
[2026-07-23T03:34:44.132Z] [shortcut] Stopping any running TritonAI Harness app before upgrading it...
[2026-07-23T03:34:44.132Z] [shortcut] $ /usr/bin/osascript -l JavaScript -e
ObjC.import("AppKit");
const running = () => $.NSRunningApplication
.runningApplicationsWithBundleIdentifier("edu.ucsd.tritonai.harness").js;
for (const app of running()) app.terminate;
for (let attempt = 0; attempt < 75 && running().length; attempt += 1) {
$.NSThread.sleepForTimeInterval(0.2);
}
if (running().length) throw new Error("TritonAI Harness is still running");
[2026-07-23T03:34:44.177Z] [shortcut] Installed TritonAI Harness app into its managed location.
[2026-07-23T03:34:45.964Z] [shortcut] Closing TritonAI Harness installer image.
[2026-07-23T03:34:45.964Z] [shortcut] $ hdiutil detach /var/folders/q4/m_zg_p3d1svg3kpq_wjln4qh0000gq/T/t3code-desktop-UeC34S
[2026-07-23T03:34:46.073Z] [shortcut] "disk5" ejected.
[2026-07-23T03:34:46.073Z] [shortcut] Closed TritonAI Harness installer image.
Workaround
Until fixed upstream, manually patch the shared launcher after every install/update run from the admin account:
- Open
/Applications/TritonAI Harness.app/Contents/MacOS/TritonAI Harness.
- Back up the file.
- Replace every literal
/Users/<installing-account> in the script with $HOME.
- Verify it's still valid shell:
sh -n "/Applications/TritonAI Harness.app/Contents/MacOS/TritonAI Harness".
This makes the shared stub resolve paths at runtime for whichever account launches it, instead of whichever account last ran the installer. Confirmed working across both an admin and a standard account.
For updating a standard (non-admin) account directly: the "Setup paused" EACCES error at the end of install can be safely dismissed — the actual per-user app and Codex runtime install already completed successfully by that point; only the optional shared-stub write failed.
reapply-home-patch.txt
Before submitting
Area
TritonAI Harness desktop install
Steps to reproduce
Environment
Issue 1 — shared launcher stub hardcodes the installing account's home directory
/Applications/TritonAI Harness.app's launcher script is generated bybuildMacLauncherScript(), usingos.homedir()of whichever account ran theinstaller, with no per-account resolution. Every path gets baked in literally
(e.g.
/Users/<admin-account>/.agents/ucsd/...).Effect: after installing as the admin account, any other local account
that opens the same
/Applications/TritonAI Harness.applaunches pathsbelonging to the admin's home directory — silently misdirected to the wrong
user's data, not just a crash.
Suggested fix: emit
$HOME-relative paths in the generated script insteadof the installing user's literal home directory.
Issue 2 — installer fails hard on standard (non-admin) accounts
Updating from a standard account fails at the last step:
EACCES: permission denied, mkdtemp '/Applications/.tritonai-harness-launcher-stage-XXXXXX'
at Object.mkdtempSync (node:fs:3038:18)
at writeMacAppLauncher (.../t3code-desktop.js:292:26)
at installMacDesktop (.../t3code-desktop.js:103:26)
/Applicationsis admin-only on macOS, so this can never succeed under astandard account. Everything before this step succeeds, though — the
per-user runtime, Codex backend, and app bundle at
~/.agents/ucsd/apps/TritonAI Harness.appall install correctly. Only thefinal, optional shared-stub write needs admin rights, yet its failure is
reported as a fatal "Setup paused" error even though the real install already
succeeded.
Possible fix: treat the shared
/Applicationswrite as best-effort —catch
EACCESfor that step specifically, warn, and still report overallsuccess. Optionally prompt for admin elevation just for that step.
Combined note
Even with an elevation prompt for issue 2, the shared stub will still only
reflect whichever account most recently ran the installer unless issue 1's
fix is also adopted — every future update from either account re-breaks the
other otherwise.
Expected behavior
Installing or updating TritonAI Harness from any local macOS account on a shared Mac should work correctly for whichever account launches the app afterward — regardless of which account ran the installer, and regardless of whether that account is an admin or a standard (non-admin) user. A failure in an optional/cosmetic step (like refreshing the shared
/Applicationsshortcut) shouldn't block or fail the overall install when the actual per-user app already installed successfully.Actual behavior
/Applications/TritonAI Harness.apphardcodes the home directory of whichever account ran the installer. Any other local account that opens the same/Applications/TritonAI Harness.appgets silently routed to that account's files instead of its own — not an error, just wrong data.EACCES: permission denied, mkdtemp '/Applications/.tritonai-harness-launcher-stage-XXXXXX', since/Applicationsis admin-only on macOS. This is shown as a fatal "Setup paused" error, even though the real per-user app and Codex runtime installed successfully immediately before this step.Impact
Major degradation or frequent failure
Version or commit
v0.3.0
Environment
MacOSX 26.5.2
Logs or stack traces
Workaround
Until fixed upstream, manually patch the shared launcher after every install/update run from the admin account:
/Applications/TritonAI Harness.app/Contents/MacOS/TritonAI Harness./Users/<installing-account>in the script with$HOME.sh -n "/Applications/TritonAI Harness.app/Contents/MacOS/TritonAI Harness".This makes the shared stub resolve paths at runtime for whichever account launches it, instead of whichever account last ran the installer. Confirmed working across both an admin and a standard account.
For updating a standard (non-admin) account directly: the "Setup paused" EACCES error at the end of install can be safely dismissed — the actual per-user app and Codex runtime install already completed successfully by that point; only the optional shared-stub write failed.
reapply-home-patch.txt