Skip to content

fix(desktop): symlinked desktop and client settings stay linked - #74

Merged
yordis merged 2 commits into
mainfrom
yordis/fix-desktop-settings-follow-symlinks
Oct 3, 2026
Merged

yordis merged 2 commits into
mainfrom
yordis/fix-desktop-settings-follow-symlinks

Conversation

@yordis

@yordis yordis commented Oct 3, 2026 •

Copy link
Copy Markdown
Member
  • Keeping the desktop and client settings in a dotfiles repository breaks on the first save, because the desktop app replaces the linked file with a regular one, the same silent drift fix(server): symlinked settings stay linked when saved #73 fixed for server settings.
  • Both desktop settings files should be versionable the same way server settings already are.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

yordis added 2 commits October 2, 2026 22:11
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 19 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: TrogonStack/t3code/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d0320261-b0b3-4562-9912-c30265ffb3fc
📥 Commits

Reviewing files that changed from the base of the PR and between 1769f6b and 915aff3.

📒 Files selected for processing (10)
  • apps/desktop/src/settings/DesktopAppSettings.test.ts
  • apps/desktop/src/settings/DesktopAppSettings.ts
  • apps/desktop/src/settings/DesktopClientSettings.test.ts
  • apps/desktop/src/settings/DesktopClientSettings.ts
  • apps/server/src/atomicWrite.ts
  • apps/server/src/serverSettings.ts
  • docs/fork/0027-symlinked-settings-stay-linked.md
  • docs/fork/README.md
  • packages/shared/package.json
  • packages/shared/src/symlink.ts
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
Localized change to settings persistence paths with regression tests; non-symlink setups behave the same as before.

Overview
Extends the symlink-safe settings write behavior from server settings (#73) to desktop app settings and desktop client settings, so dotfiles symlinks into the T3 home are not replaced by a regular file on the first save.

resolveSymlinkTarget is moved into @t3tools/shared/symlink and reused by desktop writers and server atomicWrite / settings watching. Atomic persist now resolves the link, writes a temp file next to the real target, and renames onto that path—leaving the symlink in place while updating the linked file.

New effect tests cover symlinked desktop and client settings paths; fork doc 0027 and the ledger note PR #74 alongside #73.

Reviewed by Cursor Bugbot for commit 915aff3. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Oct 3, 2026
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 4.9 KiB 4.9 KiB −40 B (−0.8%) 6.8 KiB ✅
Codex Thread snapshot wire 3.7 KiB 3.7 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.1 KiB −40 B (−3.3%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.4 KiB 20.4 KiB −41 B (−0.2%) 29.3 KiB ✅
Codex Live turn messages 2 1 −1 (−50.0%) 8 ✅
Claude Total thread wire 4.9 KiB 4.9 KiB 0 B (0.0%) 6.8 KiB ✅
Claude Thread snapshot wire 3.7 KiB 3.7 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 20.8 KiB 20.8 KiB 0 B (0.0%) 29.3 KiB ✅
Claude Live turn messages 2 2 0 (0.0%) 8 ✅

Baseline: db570dd · PR result: 915aff3 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 106.1 KiB
  • Claude decoded thread snapshot: 106.4 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@yordis
yordis merged commit 78af4c4 into main Oct 3, 2026
29 checks passed
@yordis
yordis deleted the yordis/fix-desktop-settings-follow-symlinks branch October 3, 2026 02:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant