Skip to content

atuin: drop empty sync_address that broke settings load - #15

Merged
ns408 merged 1 commit into
mainfrom
fix/atuin-sync-address
Jul 29, 2026
Merged

atuin: drop empty sync_address that broke settings load#15
ns408 merged 1 commit into
mainfrom
fix/atuin-sync-address

Conversation

@ns408

@ns408 ns408 commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • Remove sync_address = "" from dotfiles/atuin/config.toml. Atuin parses that key as an absolute URL, so an empty string fails deserialization of the entire settings file.
  • auto_sync = false (already present) is the real switch, and atuin does not sync at all unless you are logged in.
  • Align the documented snippet in .ai/knowledge/modern-cli-tools.md, which showed sync_frequency = "0" rather than what the repo actually ships.

Why

Every new shell on both accounts printed:

Error: could not load client settings
Caused by: failed to deserialize: relative URL without a base: "" for key `sync_address`

More than cosmetic: .zshrc runs eval "$(atuin init zsh)". With settings broken, atuin init zsh writes the error to stderr, writes nothing to stdout, and still exits 0. The shell keeps working, so the failure is silent, but the atuin Ctrl+R binding is never installed. This restores history search.

Both accounts were affected, since install/bootstrap.sh symlinks this one file into each home. It was just more visible via su -, which spawns a fresh login shell.

Test plan

Verified against atuin 18.18.1 (Homebrew), reproduced before and confirmed after:

  • atuin init zsh emits the zsh widget definitions on stdout with empty stderr (before: error only, nothing on stdout).
  • atuin status returns You are not logged in to a sync server, the correct local-only result, proving settings deserialize.
  • zsh -l -i -c 'bindkey | grep atuin' shows "^R" atuin-search plus the up-arrow variants.

No install/bootstrap.sh re-run needed: the deployed config is a symlink into the repo, so the fix takes effect on the next shell.

Atuin parses sync_address as an absolute URL, so `sync_address = ""`
fails deserialization of the entire settings file. `atuin init zsh` then
emitted nothing while still exiting 0, silently leaving Ctrl+R unbound in
every shell on both accounts. auto_sync = false already disables sync.
@ns408
ns408 merged commit 763588b into main Jul 29, 2026
3 checks passed
@ns408
ns408 deleted the fix/atuin-sync-address branch July 29, 2026 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant