- .zshrc: replace the zsh-autosuggestions plugin with deja (deja supersedes
it), and move the auto-dedup PATH block to the top so ~/.local/bin is on
PATH before plugins/modules load.
- bootstrap scripts (arch/debian + gentoo): clone the deja OMZ plugin and
install the deja binary via the official checksum-verified installer. The
binary install now compares the installed version to the latest release
tag and re-runs the installer when they differ, so re-running the script
UPGRADES deja (0.4.1 -> 0.4.2) rather than skipping an existing install.
Adopts live agent config: streamFirstEventTimeoutSeconds/streamIdleTimeoutSeconds
= 900 (matches llama-swap healthCheckTimeout), default model ciru-strix-iu4,
statusline/TUI tweaks drifted since last adoption.
llama-swap holds the request until a swapped model finishes loading; the
default first-event watchdog aborted mid-swap and triggered a fallback-model
switch that then cold-loaded too, repeating the stall. Env vars live in
.omp/agent/.env (decrypted from this blob); 0 would disable the watchdog.
Pins git.melonbread.xyz (Forgejo) to port 222 with the machine key
only — the forge SSH daemon does not listen on 22. All boxes pushing
to the forge need this stanza; known_hosts/authorized_keys stay
per-machine and unmanaged.
update-neovim.sh and the topgrade [commands] entry that calls it are
only meaningful where neovim is not a distro package. On arch-family
boxes the template renders empty, so chezmoi removes the script
instead of deploying a no-op, and topgrade no longer runs a step that
could fail on unmanaged paths.
paru's SudoLoop keeps sudo credentials alive for the whole run instead of
prompting per operation. Disable it — matches the local edit in
~/.config/paru/paru.conf.
- Merge active settings from shadow ~/.config/topgrade.toml (set_title,
assume_yes, disable, git repos) into chezmoi-managed file; topgrade
prefers the former path, so the managed config was never read.
- Replace invalid 'oh-my-zsh' step with 'shell' (no per-framework
variant) — config failed to deserialize, so no steps were disabled.
- Delete shadow config; topgrade now reads the chezmoi-managed file.
- omp: re-add config.yml as private_config.yml (matches live fallback
chains; minimax removed, slow -> deepseek/deepseek-v4-pro:high)
- omp: re-encrypt models.yml; llama-swap.miche static list synced to
live /v1/models (21 models), stale entries dropped
- pi: fix broken settings.json tracking — dir_dot_pi/ mapped to a
literal ~/dir_dot_pi, real ~/.pi/agent/settings.json was never
managed. Track it via dot_pi/agent/settings.json.tmpl
- Remove static model lists from llama-swap.byte and llama-swap.miche
(discovery: type: proxy fetches live models from /v1/models)
- Update byte model IDs in config.yml to current roster:
qwen3.6-35b-heretic-mtp -> qwen36-35b-genesis
gemma-4-12b-heretic -> gemma4-12b-hauhau
qwen3.6-35b-a3b-mtp -> qwen36-35b-genesis
Both run_once_20-install-user-packages-gentoo.sh.tmpl and
run_once_40-install-sway-gentoo.sh.tmpl were missing the os_family
template guard (the overlays script got it in the previous fix but
these two slipped through). On non-gentoo boxes — arch, debian —
chezmoi apply would run them and they'd try to 'emerge', failing
with 'sudo: emerge: command not found' and exit status 1, which
breaks topgrade.
Wrap each body in '$0{ if eq .os_family "gentoo" }' / '$0{ else }',
mirroring the chaotic-aur script's pattern and the overlays fix from
the previous commit. On non-gentoo boxes the rendered script reduces
to a single 'skipping' log line and exits 0; on gentoo boxes the full
body (including the existing .sway_setup gate on the sway script) is
preserved.
Verified by rendering both scripts with a gentoo-config override:
arch (live) -> 'skipping gentoo user-packages' / 'skipping sway'
gentoo -> full body (293 / 87 lines)
Both pass bash -n and actually exit 0 when run on this arch box.
Previously 'node' failures were silently skipped. With this removed,
any non-zero step exit code aborts the run, matching the user
preference of 'I dont want it to skip anything'.
The script's body was never wrapped in an os_family template conditional
despite the header claiming it was 'guarded by the chezmoi template
engine'. So topgrade/chezmoi apply would run it on every box and die
with '/var/db/repos/gentoo missing' on arch/debian.
Wrap the body in '{{ if eq .os_family "gentoo" }}' / '{{ else }}' (same
pattern the arch-only chaotic-aur script already uses). On non-gentoo
boxes the rendered script reduces to a single 'skipping' log line.
Also fix two stale comments in the header (filename was 05, not 10).
Verified by rendering with --config override: arch → no-op log line,
gentoo → full body intact, both pass bash -n.