Repository navigation
fix: gs sync materializes gentle-ai configs; stop symlinking tui.json - #70
Conversation
gentle-ai sync refuses to read symlinks and aborts (and fails rollback) on ~/.config/opencode/tui.json. Seed it once, convert our old symlink in place, and keep the file once a tool owns it. Refs #69
gentle-ai cannot persist PATH for fish login shells, so the OpenCode background launcher in ~/.gentle-ai/bin never took effect. Refs #69
gs sync only rebuilt binaries, so managed configs drifted per host. It now runs gentle-ai sync (scoped by GS_SYNC_AGENTS, skippable with GS_SKIP_AI_SYNC=1), reports failures without aborting, and flags legacy upgrade scripts so gs sync is the single entry point. Closes #69
* fix(install): add profile files install.sh already links install.sh on main links herdr, ghostty, fish and pi profile files that were never committed, so install.sh --check fails and CI stays red. Refs #69 * docs: restore Linux Home Manager rows the nix preflight requires Dropped by the README restore in dc56614. Refs #69
gentle-ai sync refuses to read symlinks and aborts (and fails rollback) on ~/.config/opencode/tui.json. Seed it once, convert our old symlink in place, and keep the file once a tool owns it. Refs #69
gentle-ai cannot persist PATH for fish login shells, so the OpenCode background launcher in ~/.gentle-ai/bin never took effect. Refs #69
gs sync only rebuilt binaries, so managed configs drifted per host. It now runs gentle-ai sync (scoped by GS_SYNC_AGENTS, skippable with GS_SKIP_AI_SYNC=1), reports failures without aborting, and flags legacy upgrade scripts so gs sync is the single entry point. Closes #69
Fleet review (glm)Lens: requirements + adversarial. Verified against issue #69's proposal at head b647f50: the tui.json symlink is replaced by a seed copy (install.sh), Suggestion (1)
Verdict: ready to merge |
Closes #69
What changes
opencode/tui.jsonis seeded as a regular copy (scripts/seed-file.sh). An existing symlink to our file is converted in place; a regular file is kept (tool-owned); a foreign symlink is left alone. Fixesrefusing to read symlinkingentle-ai sync.~/.gentle-ai/bingoes first on PATH when present (gentle-ai cannot persist PATH for fish).gentle-ai syncafter the binaries step.GS_SYNC_AGENTSscopes runtimes per host,GS_SKIP_AI_SYNC=1skips it. Failures print the output without aborting. Legacy upgrade scripts are flagged (not removed).Tests
bash scripts/check-install-symlinks.sh— new seed_file cases (absent, own symlink, tool-owned, foreign, dry run)fish fish/tests/w7-gentle-ai-path.fish— newbash scripts/test-gs-sync.sh— new, isolated HOME/PATH, no networkw5b-herdr-ssh.fishfails on main too (unrelated).After merge (manual, per host)
./install.sh(converts tui.json), thengs sync.GS_SYNC_AGENTSin99-local.fish, thengs sync.opencode-review-transport.tshas custom bytes; move it aside so gentle-ai can manage it.