Commit Graph
140 Commits
Author SHA1 Message Date
Frank 872e86399a agent: repoint FLM-NPU model roles off the retired provider; sync memory/skills
config.yml: vision -> llamacpp (dankclaw)/frank-large:auto,
tiny -> llamacpp (dankserver)/frank-small:off,
task -> llamacpp (dankclaw)/frank-large:medium (was flm dankclaw-npu),
matching the flm (dankclaw-npu) provider removal in models.yml.

Memories/managed skills: rollouts and learned notes from the frank-large
KV-pool + sampler work and the noctalia recolor; merged the duplicate
noctalia-palette-recolor skill into noctalia-custom-palette-recolor (adds
the dotfiles-tracking step and the +show-config delta gotcha) and dropped
the superseded legacy memory skills whose ghostty USR1 reload recipe is
wrong for this fleet.
2026-09-13 23:51:43 -07:00
Frank c32584e093 dotfiles: ghostty 12px + monochrome freetype rendering
Captures the live ghostty config state: font-size 14 -> 12 and
freetype-load-flags hinting,light -> hinting,monochrome (1-bit, AA off).
2026-09-13 23:51:22 -07:00
Frank 93bd4737f3 dotfiles: recolor noctalia theme yellow to red
Adds custom palette "Gruber Red" (live at
~/.config/noctalia/palettes/Gruber Red.json, symlinked into this repo's
noctalia package). Derived from community "Gruber Darker" with jq:
dark mPrimary/terminal yellow/terminal foreground -> #f43841 (bright
yellow -> #ff4f58), light-mode yellows -> the light error reds. Custom
source, so the community-palette md5 sync cannot revert it.

gtk-3/gtk-4 noctalia.css are regenerated artifacts of templates-apply
(accent_* now red) committed so every host renders the same recolor.
2026-09-13 23:51:11 -07:00
Frank 60dc0bba92 models: set frank-large contextWindow to 200000
Also carries previously-uncommitted edits already in the working file:
maxTokens 262144 -> 65536 (HALOGEN_MAX_TOKENS_CAP) with the KV-pool
admission note, and removal of the flm (dankclaw-npu) provider block.

Live check: halogen /health reports context=262144, so 200000 is inside
the served window; 200000 + 65536 = 265536 against a 401408-position pool.
2026-09-13 23:14:21 -07:00
Frank 4b82f35354 Add blankpad-host auto-learn skills and memory store
Tracked the harness artifacts accumulated on blankpad (blank@), matching
the existing convention for the --home-dank-* memory stores and the 36
already-tracked managed-skills.

managed-skills (9): authentik-proxy-provider-app-link,
dankclaw-guard-chain-layer-diagnosis, e2e-arr-rawip-reachability-triage,
halogen-kv-pool-fit, lan-client-split-dns-fix, noctalia-reference,
rootless-quadlet-log-retrieval, ssh-key-bootstrap-no-sshpass,
swapfile-resize-safe-ordering.

memories (2 stores): --home-blank-.omp-- (dotfiles_git, handy_lifecycle,
input_permissions) and --home-blank-Projects-serverAppConfig--
(frank_large_quadlet).

Secret sweep before staging: no PEM blocks, no credential literals.
Content is fleet topology/IPs only, same class as the tracked dank stores.
2026-09-13 00:25:29 -07:00
Frank b60e95158c frank-large: pin Qwen3.8-Flash-Next sampler settings + preserve_thinking
halogen-flash-server has no server-side sampler defaults (temperature absent
or 0 = greedy), so the endpoint decoded greedy for OMP, whose global
sampling settings default to -1 (not sent).

compat.extraBody merges these top-level into every request body after the
compat policy, so they win:
  temperature=1.0 top_p=0.95 top_k=20 min_p=0.0
  presence_penalty=0.0 repetition_penalty=1.0 preserve_thinking=true

Verified against the live dankclaw endpoint: preserve_thinking is honoured
(350 vs 75 prompt tokens for a replayed reasoning turn), and the exact
body shape returns 200.
2026-09-12 23:58:38 -07:00
Frank ccf72a2a3e Fix Ghostty: font-hinting -> freetype-load-flags = hinting,light 2026-09-11 00:36:11 -07:00
Frank 268dcbdea4 Fix Ghostty: font-hinting = hinting (flag-based, not light value) 2026-09-11 00:34:54 -07:00
Frank df3331026d Ghostty: switch font-hinting from no-hinting to light 2026-09-11 00:33:25 -07:00
Frank 4c84f028c5 Fix Ghostty: font-hinting = no-hinting (not font-subpixel-render) 2026-09-11 00:31:55 -07:00
Frank 5ad39bdfea Ghostty: disable font subpixel antialiasing 2026-09-11 00:28:53 -07:00
Frank 49afdfeda4 Noctalia theme migration: Niri IPC, GTK palette, alacritty import
- Switch Niri keybinds from qs-wrapped IPC calls to direct 'noctalia msg'
- Add noctalia.kdl include to niri config
- Replace alacritty theme with import of noctalia.toml
- Ghostty: Retro Legends → noctalia theme
- GTK3/4: accent palette shift from lavender (#bfc2ff) to purple (#b267e4)
- systemd swayidle-lock.service updated
2026-09-11 00:26:56 -07:00
Frank d0c90fccbd fix(install): replace set-diff membership with per-package pacman -Qq --quiet query (deterministic) 2026-09-10 21:01:55 -07:00
Frank c8cac879e6 fix(deploy): managed symlinks changing owners relink silently; quarantine reserved for genuine divergence 2026-09-10 20:41:14 -07:00
Frank 0883ae5660 fix(packages): amd-u-code is not a pkgbase; real name is amd-ucode 2026-09-10 20:32:41 -07:00
Frank 07a95815d2 fix(install): manifest parser emitted comment-padded tokens; AUR phase must run unprivileged (makepkg refuses root) with primed sudo timestamp 2026-09-10 20:26:56 -07:00
Frank ea8d378a40 chore(lfs): track wallpaper collection as LFS; wallpapers move into repo tree under noctalia data path 2026-09-10 19:42:57 -07:00
Frank afc7c2be64 feat(shells): zoxide cd replacement in all three shells + guarded system-wide oh-my-zsh source 2026-09-10 19:42:57 -07:00
Frank 118390a9e2 feat(niri): flameshot takes screenshot binds CTRL+Shift+1/2/3 on both hosts 2026-09-10 19:42:57 -07:00
Frank 9a5387b6c0 feat(systemd-user): swayidle idle-lock unit with noctalia IPC fallback chain 2026-09-10 19:42:57 -07:00
Frank 779b65af8c feat(install): idempotent per-host package installer with host-gated enablement 2026-09-10 19:42:57 -07:00
Frank a30cd771f3 chore(agent): thinking-block visibility toggle 2026-09-10 16:58:00 -07:00
Frank 9683d1f5c1 noop 2026-09-10 16:57:10 -07:00
Frank 35b871162c chore(memory): flush runtime memories and promote managed skills
Memory-file flush for the dotfiles-deploy session with the blankpad admin
credential scrubbed to a placeholder; sessions transcripts untracked
(gitignored) since harness transcripts can carry raw secrets.
Managed skills: command-center-dotfiles-import, ssh-fish-host-remote-exec,
stash-supersession-audit-before-drop.
2026-09-10 16:57:10 -07:00
Frank 2db711964b feat(zz-blankpad): ghostty terminal bind and bun PATH for omp
blankpad runs quickshell 0.3.1 from repos with the noctalia shell; flip
Mod+Return to spawn ghostty (installed) instead of alacritty, and put the
bun global bin dir on PATH so the pi-coding-agent/omp shim resolves in
interactive zsh.
2026-09-10 15:09:39 -07:00
Frank cc2c652cc2 fix(deploy): override packages target home-relative paths
zz-<host> packages nest base-package dirs internally (zz-blankpad/niri/.config/...);
stripping only the package prefix yielded targets like $HOME/niri/.config/... .
Strip the nested package segment for zz-* packages so overrides land on the
same home-relative target as the base copy they override.
2026-09-09 19:45:44 -07:00
Frank 5efb218061 feat(dotfiles): zz-blankpad host override package
Host-specific divergence for blankpad deployed last with override semantics:
display layout (its own outputs, not Dankware's DP/eDP rig), autostart and
keybinds targeting the bare 'noctalia' CLI instead of qs -c noctalia-shell,
misc without renderD129, rules without the Noctalia floating-window rule, and
blank's own .zshrc. All other packages deploy canonical from base.
2026-09-09 19:32:56 -07:00
Frank a9127a08e9 feat(dotfiles): import env layer as stow-style packages with deploy.sh
Import Dankware's environment layer into the repo as home-relative package
trees (niri, gtk-3/4, ghostty, alacritty, fish, zsh, bash, profile,
systemd-user, dconf). scripts/deploy.sh implements stow-equivalent semantics
(check|adopt|sync modes): identical files adopt to symlinks, new files link,
divergent files quarantine-and-replace under .quarantine/<host>/<ts>/ (gitignored).
zz-<hostname> override packages deploy last with override semantics.

Secrets never enter git: GITEA_TOKEN moved from .zshrc into untracked
~/.config/environment.d/secrets.env (0600); tracked .zshrc sources it
guarded. core.hooksPath armed by deploy.sh so the pre-commit secret gate is
live on every machine that deploys.
2026-09-09 18:09:38 -07:00
Frank dfb3a8f69a chore(gitignore): ignore per-host runtime state and local backups
Runtime state now ignored: agent/blobs (blob store), install-id (per-host
identity), puppeteer/ (browser cache), .AGENTTRASH/, *.save, *.bak-*.
Backups parked in .AGENTTRASH/ per trash convention (never rm user files).
2026-09-09 16:21:47 -07:00
Frank 2a3c0da740 chore(memory): flush runtime memory updates for .omp and serverAppConfigs roots
MEMORY.md/learned.md/memory_summary.md/raw_memories.md churn from live sessions
(DIFR deadlock diagnosis, model-swap ops, outpost verification etc.); new
memory root --home-dank-.omp-agent-- started with learned.md.
2026-09-09 16:20:42 -07:00
Frank 9bfa0be85d chore(skills): promote runbook skills to managed-skills; drop superseded SKILL.md
- 31 new managed skills (anubis/arr/authentik/hermes/freetoken/podman/llm-swap
  runbooks etc.) now tracked.
- Removed superseded skills: omp_harness_config, peon_ping_integration
  (replaced by user-authored peon-ping-* managed skills),
  rocmfp4-strix-benchmark-orchestration.
- New memory-root skills: niri_compositor_ops, omp_git_workflow,
  omp_model_config, quadlet-media-migration, homelab-service-triage,
  hermes-dankclaw-ops, frank-default-large-ops, caddy-auth-dns-playbook.
2026-09-09 16:20:28 -07:00
Frank 7be39d60dd feat(config): rewire model roles to frank-small/frank-large + NPU flm provider
- models.yml: rename frank-default-small -> frank-small (dankserver),
  frank-default-large -> frank-large (dankclaw-gpu, text-only input);
  add 'flm (dankclaw-npu)' provider with gemma4-it:e4b and nuextract3:4b.
- config.yml: point modelRoles at renamed models; vision -> nuextract3:4b:auto,
  tiny/task -> gemma4-it:e4b:off; compaction reorder (snapcompact added,
  idleThresholdTokens 200k->100k, thresholdPercent -1->85); hideThinkingBlock true;
  statusline transparency + compact thinking level; images.urls backends list.
2026-09-09 16:19:54 -07:00
Frank ac1608e71f docs(niri): fold AGENTS.md overwrite into niri KB section
The working tree had replaced the operating contract in AGENTS.md with a
niri config-reload + keybinding-constraints note. Content relocated to its
proper home: tips.md 3-config-reload (SIGHUP footgun, load-config-file) and
key-bindings-syntax.md constraints section. AGENTS.md restored from HEAD.
2026-09-09 16:19:02 -07:00
Frank 898519712b docs: add README.md — command center knowledge base overview 2026-08-31 15:45:47 -07:00
Frank 5e27c67d87 release: 1.0.0 — command-center v1: OKF knowledge base, operating contract, secret gate v1.0.0 2026-08-28 07:58:36 -07:00
Frank 109038f71e merge: KB rebuild — OKF v0.1 knowledge base, live-verified fleet facts, contract + linter 2026-08-28 07:57:44 -07:00
Frank 5e051f1ce9 feat: operating contract (AGENTS.md) + KB conformance linter (scripts/kb-lint.sh) 2026-08-28 07:57:13 -07:00
Frank 02883d3ed2 docs: rebuild KB in OKF v0.1 with live-verified facts
Copy of the legacy ~/.pi/agent/docs tree rebuilt as the command-center
knowledge base: concept files promoted to path identity, index listings
stripped of frontmatter, all wikilinks/relative links resolved, every
checkable claim verified against the live fleet (Dankserver = Ryzen 7
7700X + RTX 3090; Strix Halo is Dankclaw), unverifiable claims tagged.
kb-lint exits 0.
2026-08-28 07:57:13 -07:00
Frank 552d1ef8bf chore: track live agent config (config, models, append-system, managed-skills, memories, plugin lock) 2026-08-28 07:56:47 -07:00
Frank 772607434a chore: birth — state-out ignore policy + secret-gate pre-commit hook
Config in, state out: databases, WAL/SHM sidecars, caches, logs, sessions,
run dirs, ssh-control sockets stay OUT of history. Quarantine list: auth.json,
.env, trust.json, private keys never tracked. Pre-commit hook scans staged diff
for live-secret shapes (sk-, ghp_, github_pat_, glpat-, xox, AKIA, PEM headers,
JWTs) before anything reaches the Gitea remote.
2026-08-28 01:47:22 -07:00