Conversation
Distribution packages run the app on a shared Electron, whose process.resourcesPath is that Electron's own resources directory. The desktop app then looks there for the GNOME extension, the KDE and Hyprland capture helpers, the browser-secret helper and the resource monitor, and finds none of them. T3CODE_DESKTOP_RESOURCES_PATH lets the package name its own resources directory; unset, nothing changes. Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Adds an optional resource-directory override for distribution packages while preserving the existing Electron resource path when unset. The centralized path change is covered by tests and affects only existing resource lookups, with no product-default or static-analysis changes. Notes:
You can add or adjust custom eligibility rules. Learn more. |
Dismissing prior approval to re-evaluate 4c2803c
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughDesktop configuration now reads ChangesDesktop resources path override
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Suggested reviewers: Merge Risk: ⚪ Minimal · up to Packagers can supply the app’s resources directory as documented; no issue identified here needs resolution before merging. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The override preserves default behavior and does not demonstrate a new remote attack path or privilege elevation. However, changing the resource directory can leave Windows WSL fallback execution using previously cached backend code. Safe deployment also depends on protecting the launch configuration and selected directory. Retained concerns
Security review detailsSecurity Blast Radius
Security Findings and Attack Paths
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Problem
Linux distribution packages (Nix, Arch, …) run the app's
app.asaron the distribution's shared Electron.process.resourcesPathis then that Electron's own resources directory, so the desktop app can't find any of the resources the build places next toapp.asar. On Linux that breaks the GNOME extension setup, the KDE and Hyprland capture helpers, the browser-secret helper and the resource monitor. For example, SnapShots setup fails with:Change
T3CODE_DESKTOP_RESOURCES_PATHnames the app's resources directory.DesktopEnvironmentresolves it once, and every lookup already goes throughenvironment.resourcesPath: the helpers above,app-update.yml,package-type, and the Windowsserver.asarroot. When it's unset,process.resourcesPathis used as before, so normal builds don't change.I chose an explicit setting over inferring the directory from the loaded
.asar, because packages may run a plain app directory or keep the resources in a separate location. A short note indocs/operations/development.mdtells packagers about it.Scope and approval
There's no prior issue or discussion. This is focused configuration of an existing capability: the desktop app already reads these resources from one directory, and the option only sets where that directory is. With the variable unset, nothing changes. It pairs with #8668, which gives distribution packages a stable
t3code://launcher.Verification
DesktopEnvironmenttest: a packaged Linux app on a shared Electron readsresourcesPath,app-update.ymland the icon candidates from the configured directory. The existing environment tests still pass (8 tests).ENOENTabove when setting up the GNOME extension. I haven't rerun that manual setup with the variable set.Implemented with Claude Opus 5.5 in Claude Code.
🤖 Generated with Claude Code