1
0
Fork 0
Commit graph

111 commits

Author SHA1 Message Date
3414885fda omp: adopt live agent config and models on nibble (smol=kat-coder-v2.5-dev, default=ox-alpha) 2026-08-28 01:07:46 -04:00
73a9cea5ff omp: raise first-event stream watchdog to 180s for OpenAI-compat providers
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.
2026-08-27 23:57:03 -04:00
5df196c2e8 ssh: forge stanza pins only user/port 222
Drop IdentitiesOnly/IdentityFile pinning — every box just offers its
own default key to the forge; only registered keys authenticate.
2026-08-27 22:32:27 -04:00
85d0874aba ssh: manage fleet ssh config via chezmoi
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.
2026-08-27 22:23:01 -04:00
bfa49d6546 topgrade: gate neovim tarball updater to debian family only
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.
2026-08-27 21:58:38 -04:00
77ae70468b kitty: switch font from FiraMono Nerd Font to Maple Mono NF 2026-08-26 15:02:03 -04:00
70d339140b bootstrap: install maplemono-nf from AUR via paru, keep GitHub zip fallback 2026-08-26 15:02:03 -04:00
63106f5e3f bootstrap: require chaotic-aur repo in pacman.conf for skip; topgrade cargo fallback 2026-08-26 13:52:35 -04:00
0bdaefcf97 age: add nibble recipient, rekey secrets 2026-08-26 13:41:16 -04:00
0a1f58dc5d age: add nibble recipient, rekey secrets 2026-08-26 13:38:02 -04:00
e6b148e059 hosts: add nibble.local (192.168.1.19) to LAN entries 2026-08-26 13:33:22 -04:00
100ee63772 omp: retarget fallback chains to llama-swap.miche, disable zai/minimax/nvidia providers 2026-08-24 17:15:06 -04:00
51b5dbd51d pi: drop herdr-managed extension from source 2026-08-22 22:36:23 -04:00
5e8a002b32 pi: update herdr integration to v8 2026-08-22 22:21:34 -04:00
5b5ae288b4 herdr: manage config.toml via chezmoi
Ignore herdr runtime state (session.json, logs, sockets, plugin lock).
2026-08-22 21:56:53 -04:00
ca9d9d206b kitty: bump background opacity to 0.85 2026-08-22 21:56:53 -04:00
1286fbdd34 kitty: bump background opacity to 0.8 2026-08-22 21:46:22 -04:00
3c61391f3f Gate sway stack configs on sway_setup via .chezmoiignore.tmpl
Only the install script respected the flag; dot_sway/wofi/foot/mako/
waybar deployed unconditionally. Now ignored when sway_setup=false.
2026-08-22 20:33:41 -04:00
a0b92d65a0 show thinking blocks: hideThinkingBlock false 2026-08-21 17:32:12 -04:00
bacafdf715 fold omp runtime config and remaining pi extensions into source 2026-08-21 17:29:47 -04:00
6c3a47f350 pi: manage caveman-native extension via chezmoi template 2026-08-21 17:29:47 -04:00
fd4eb2a059 pi: add powerline-footer and themes-bundle, fold runtime settings 2026-08-21 17:29:47 -04:00
0c363443bb llama-swap: require LLAMA_SWAP_API_KEY auth 2026-08-21 17:29:47 -04:00
6f4e0c8b68 zsh: auto-update omp before launch 2026-08-21 17:29:47 -04:00
488d613cbb pi: trim extensions to 10, drop 22 unused
Remove from settings + npm manifest + disk: pi-powerline, pi-bar,
pi-subagents, gentle-engram, pi-prompt-template-model, pi-simplify,
pi-add-dir, pi-slopchop, pi-btw, pi-interactive-shell, pi-terminal-theme,
@plannotator/pi-extension, @tmustier/pi-raw-paste, @tmustier/pi-usage-extension,
@victor-software-house/pi-curated-themes, ponytail, pi-caveman.
Also drop unregistered pi-token-speed, pi-web-access, statusline-pi,
@juanibiapina/pi-powerbar (dup of pi-powerline), context-mode.
Keep: pi-mcp-adapter, pi-intercom, pi-ask-user, @juanibiapina/pi-extension-settings,
@devkade/pi-plan, @tmustier/pi-ralph-wiggum, @danielmeneses/pi-llama-swap,
pi-llama-cpp-stats, firecrawl, autoresearch.
2026-08-20 19:12:19 -04:00
eccb9b8c7b pi: default to miche.llama/qwen38-27b, changelog 0.84.2; restore exec bit on update-neovim.sh 2026-08-19 13:08:55 -04:00
6d6deb459f kitty: add transparency, no noctalia include 2026-08-19 13:08:55 -04:00
a223473fc2 Scope update-neovim.sh to debian: arch gets neovim from pacman; guard no-ops elsewhere 2026-08-19 13:08:55 -04:00
f692fbf01e Remove update-neovim.sh tarball installer — neovim comes from system package (pacman), topgrade keeps it current 2026-08-19 13:08:55 -04:00
bdcf11467a pi: add host-aware llama-swap extension (byte.llama + miche.llama providers) 2026-08-17 22:48:32 -04:00
358c66b8f6 age: add rain (new Arch box) recipient, re-encrypt secrets 2026-08-17 21:49:56 -04:00
986f300a85 chore(paru): disable SudoLoop
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.
2026-08-05 19:28:18 -04:00
ae18077d97 fix(topgrade): make managed config effective, fix disable list
- 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.
2026-08-05 19:21:55 -04:00
8013d616fc omp: re-encrypt models.yml with tadbit + bopad recipients
re-add preserved the old 7-recipient set; re-encrypted to the full
9 recipients so every box can decrypt models.yml
2026-08-05 19:13:25 -04:00
86df3f33ab chore(dotfiles): sync omp + pi agent configs to chezmoi
- 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
2026-08-05 19:11:51 -04:00
df30dab5f6 Re-encrypt secrets: add bopad recipient (fixed rekey) 2026-07-29 13:13:52 -04:00
461b0bab56 Re-encrypt secrets with bopad recipient 2026-07-29 13:08:50 -04:00
cb98092783 Add bopad (CachyOS) to age recipients 2026-07-29 13:07:33 -04:00
5c06f37c4d omp: drop static model lists, fix stale model refs (miche)
- Remove static model lists from llama-swap.miche and llama-swap.byte
  (discovery: type: proxy now fetches live models from /v1/models)
- Update byte model IDs: qwen3.6-35b-heretic-mtp/a3b-mtp -> qwen36-35b-genesis,
  gemma-4-12b-heretic -> gemma4-12b-hauhau
- Update miche model IDs: gemma4-12b -> gemma4-12b-hauhau,
  qwen3.6-27b-mtp-rocmfp4-turbo -> qwen3.6-27b-mtp,
  qwen3.6-35b-a3b-mtp-rocmfp4 -> qwen36-35b-genesis
2026-07-06 13:34:38 -04:00
78754a31de omp: drop static model lists, use proxy discovery only
- 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
2026-07-06 13:24:11 -04:00
42d647b9c3 feat(pi): add settings.json to chezmoi tracking (includes pi-llama-cpp-stats) 2026-07-05 17:06:31 -04:00
309c7cf9f6 feat(zshrc): add Firecrawl env vars for self-hosted instance on kaiser.local 2026-07-05 16:23:04 -04:00
13fa1a01dc chore: drop lazy-lock from chezmoi; sync omp agent config + dir mode from host 2026-07-02 18:11:11 -04:00
b78e23aa16 gentoo install scripts: guard with os_family like overlays
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.
2026-06-25 18:58:27 -04:00
c54e770914 topgrade: drop ignore_failures so step failures halt the run
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'.
2026-06-25 18:41:21 -04:00
6b64fe0625 gentoo-overlays: guard with os_family so non-gentoo boxes skip it
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.
2026-06-25 18:33:58 -04:00
d61ffacc22 omp secrets: use encrypted_private_ prefix (decrypts + 0600)
chezmoi parses attribute prefixes left-to-right and 'encrypted_' must
precede 'private_'. The 'private_encrypted_' order silently breaks
decryption: chezmoi consumes 'private_', then treats 'encrypted_foo.age'
as a literal filename and copies the ciphertext verbatim instead of
decrypting it.

models.yml was named 'private_encrypted_models.yml.age' since commit
3c3fab7 and was never decrypting — a stale 'encrypted_models.yml.age'
blob was sitting in ~/.omp/agent/ and the plaintext models.yml was an
unmanaged leftover. .env and zai.key used the plain 'encrypted_'
prefix and were decrypting at umask 0644 (world-readable in isolation;
the 700 ~/.omp/agent/ dir was the only thing shielding them).

This commit:

  * renames all three to encrypted_private_{zai.key,.env,models.yml}.age
    so chezmoi decrypts AND lands them at 0600 natively
  * rewrites run_onchange_35 as 'ensure-omp-secret-perms.sh' covering
    all three, as belt-and-suspenders for any box where a secret still
    sits at 0644 from a prior apply
  * removes the stale encrypted_models.yml.age verbatim blob and its
    orphan state entry
  * corrects the README perms section to document the prefix-order
    gotcha (was misleadingly claiming 'private_' alone gave 0600)

Verified end-to-end on this box: chezmoi managed lists all three as
decrypted targets, scoped apply writes them at 600, chmod script is
idempotent. Other boxes need a 'chezmoi apply' to pick up the rename
and the onchange chmod.
2026-06-25 18:33:58 -04:00
27ae3a3b18 sway: drop -t 2000/-t 3000 from notify-send, source restore-wayland-env in toggle-dropdown/wifi-menu
The actual cause of 'caffeine notification doesn't show' was the
-t 2000 timeout: the notification popped for 2 seconds and self-cleared
before the user could see it. Manual notify-send from a terminal (no
-t flag) used mako's default-timeout=5000 and was visible — so the user
saw my test notifications but not their own clicks.

Fix: drop the -t flag everywhere so mako config owns the duration.
Added: source restore-wayland-env.sh in toggle-dropdown.sh and
wifi-menu.sh — same env-loss pattern as caffeine.sh, would have
been next on the bug list.

Verified on tadbit: -t 2000 notification visible at +0.5s, gone at
+2.5s (user missed it). No -t flag: visible at +0.5s, gone at +5.5s
(visible long enough to read).
2026-06-23 22:24:16 -04:00
d78ba4152b sway: factor env restoration into restore-wayland-env.sh, fix caffeine notify
caffeine.sh click was working (icon toggled, swayidle restarted) but
the 'Caffeine ON/OFF' notification never appeared. Same root cause as
the prior swayidle bug: waybar's on-click context strips WAYLAND_DISPLAY
from the spawned script's env. notify-send writes to D-Bus (exit 0) but
mako can't display because it has no Wayland socket to render on. Click
appears to do nothing visually.

Fix: extract the /proc/*/environ probe into a shared helper
(restore-wayland-env.sh) and source it from both caffeine.sh AND
start-swayidle.sh. Now any future on-click script in this repo can
`. restore-wayland-env.sh` to inherit the right env.

Verified on tadbit:
- click 1 (caffeine ON): swayidle killed, flag set, 'Caffeine ON'
  notification appeared in mako
- click 2 (caffeine OFF): swayidle restarted, flag cleared, 'Caffeine
  OFF' notification appeared in mako

Both are visible in makoctl history now.
2026-06-23 22:18:01 -04:00
05e75bc41e sway: extract start-swayidle.sh as single source of truth (fix caffeine)
caffeine.sh click was silently breaking idle lock. Two bugs that
compounded:

1. caffeine.sh inlined its own swayidle command (with swaylock -f -i
   , not lock-fancy.sh), drifted out of sync with sway/config
   which used lock-fancy.sh. Toggle off would restart swayidle with a
   different lock command than the rest of the session.

2. WAYLAND_DISPLAY isn't set in waybar's on-click context. When
   caffeine.sh called 'swaymsg output * power off' (part of the
   restart command) and later called swaylock / grim (via lock-fancy),
   those failed silently. swayidle itself can run without
   WAYLAND_DISPLAY but it can't actually monitor input/output, so it
   exits immediately. Result: user clicks caffeine off, flag clears,
   icon goes back to 'inactive', but auto-lock is silently dead.
   The user thinks they turned caffeine off. They didn't. They're
   just unprotected.

Fix:
- new start-swayidle.sh holds the canonical swayidle command
- sway/config: exec $HOME/.config/sway/start-swayidle.sh
- caffeine.sh: killall swayidle; start-swayidle.sh &
- start-swayidle.sh probes /proc/*/environ for a Wayland client's
  env (mako always has it) and exports WAYLAND_DISPLAY /
  DBUS_SESSION_BUS_ADDRESS / XDG_RUNTIME_DIR / DISPLAY if missing
  before exec'ing swayidle

Single source of truth + env restoration = click works on every box
that has the same Wayland-capable process tree (mako, swaybar, etc.),
no matter who/what is calling the script.

Verified on tadbit: pre-fix toggle off killed swayidle permanently.
Post-fix: toggle off restarts swayidle successfully, env inherited
from mako's /proc/PID/environ.
2026-06-23 21:51:09 -04:00