compinit security-checked and rebuilt the dump on every shell start, the
largest fixed cost before fzf-tab, atuin, zoxide, direnv and starship
load. Verified both branches yield the same 1980 completions.
Co-Authored-By: Claude <noreply@anthropic.com>
Off by default: it is only useful on an NVIDIA host, and no binary cache
serves it (cuda-maintainers was measured to change nothing), so enabling
it rebuilds Blender, OpenUSD, OpenSubdiv and OpenImageDenoise.
Co-Authored-By: Claude <noreply@anthropic.com>
mpv shipped as a bare package with no config, so every host decoded video
in software. hwdec is the only vendor-specific part, so it is an option:
auto-safe everywhere, overridden on NVIDIA hosts.
Co-Authored-By: Claude <noreply@anthropic.com>
Review sessions post findings on the PR instead of rev, entry paths
follow the checkout out of ~/tea/yolo, and the session's forge token is
named so reviewers stop reaching for the daemon's.
Picks up sandboxed PR review sessions. The two dokploy entries were
already gone from the live settings file, so the mutable-file check
aborted every switch until nix matched it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds the maestro flake as an input and imports its Home Manager module.
yolo enables both user services; web binds 0.0.0.0:8081 because aoe-web
already holds 8080 on this host.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Shells set TMUX_TMPDIR to the runtime dir; the unit did not, so the
daemon ran a second tmux server under /tmp. Every boot resumed duplicate
agents there, the dashboard diverged from the TUI, and polling the
invisible sessions fired an error push per session. Same fix pr-daemon
got.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fork carries two patches on v1.14.1+: worktree_info on plain add
(grouping) and reaping agent processes that survive tmux teardown.
Also brings upstream the settings drift the mutable-file guard caught:
fable model, secret-guard hook chain, verbose, confirm_delete.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Guest samba share of /home/naps62 on yolo, limited to the private
nets via hosts allow. arrakis and konishi mount it with the same
lazy automount used for the NAS media share.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Global config keeps bash at "ask", which stalls every unattended opencode
session on git and grep. yolo runs the PR daemon's reviewers, so the prompt
is a deadlock there rather than a gate.
Merges like claude-settings.json: home/yolo/opencode.json holds only the
override, so agents, commands and skills still come from common. Reviewers
run on branches under review, so this drops that prompt too.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
pr-daemon, hourlog and week-review are defined by the agent-skills
home-manager module now, next to the scripts they run; this host just
enables them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Agent tmux sessions the daemon starts live in its cgroup; a restart was
killing every session it had created.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The XF86 binds survived the noctalia -> eww switch, but the popup they
drew did not, so volume and brightness changed with no feedback. swayosd
replaces it: swayosd-client both applies the change and draws the OSD.
Also fixes two binds that pointed at binaries no host installs any more:
XF86AudioMicMute called volumectl (avizo, removed) and the brightness
keys called brightnessctl, which only arrakis has.
Commands are referenced by store path because Hyprland execs binds with
the PATH the session was started with.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Watches GitHub and Gitea PRs and routes them to aoe sessions. Lives here
rather than in agent-skills' nix module for the same reason the timers
do: it belongs to one box.
Config and tokens are outside the store, so the unit refuses to start
without them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
opencode has no @file imports, so the shared home-manager module
concatenates the claude-md fragments into .config/opencode/AGENTS.md
(the screenshots line moved there as a fragment) and links commands/
into place. Keeps only the opencode-specific agents, commands and
skills here.
Two dokploy MCP tools declare ttl with the draft-04 "exclusiveMinimum":
true. Synthetic validates tool schemas against draft-2020 and rejects the
whole request, so every session died on a bodiless 500. Deny those two.
Haiku moves to GLM Flash: Qwen3.6-27B rejects Claude Code multi-block
system prompt.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Binds the opus/sonnet/haiku aliases to Kimi K3, GLM-5.2 and Qwen3.6 so
they can be swapped mid-session, and registers the wrapper as an aoe agent.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
noctalia publishes no binary cache, so `flake update` means a local Qt/QML
build every time. quickshell comes from nixpkgs and is cached, so the
nixpkgs follows stays; only the noctalia ref is pinned.
Pinned to the rev already locked, so this rebuilds nothing.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Packages the prebuilt pi release binary and puts it on PATH alongside
Claude Code, Codex and opencode.
pi has no `@file` imports in context files, so the shared agent-skills
fragments are concatenated into ~/.pi/agent/AGENTS.md. Skills need no
wiring: pi already reads ~/.agents/skills.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
gpg-agent is the ssh agent here, and signing blocks forever on a pinentry
prompt with no TTY, so git push hung right after "Server accepts key".
The key file has no passphrase, so read it directly instead.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>