Files
Frank a5fe045b58 docs(vault): one fact, one owner — repair the doubled pages, single-source the facts
Structural repair:
- 13 pages were the same document twice (each exactly 2x its HEAD size),
  a second frontmatter block whose closing fence had been glued onto a body
  line by a frontmatter rewrite that re-read its own output. Un-doubled by
  cutting at the second frontmatter and keeping the copy whose body is a
  superset; the orphan census reports 0 lost tokens against HEAD.
- log.md: one entry per date, bare `## YYYY-MM-DD` headings, newest first —
  66 dated headings merged into 34, titles demoted to bold leads, every
  content line verified present. The file had been descending at the head
  and ascending at the tail.

Ownership moves:
- New `LLM/frank-medium.md` is the locator for the retired Dankserver
  endpoint: era windows quoted from each era page's own banner, no numbers
  restated, and the two unresolved date conflicts recorded instead of
  silently resolved. `frank-archon.md` links to it instead of restating the
  pre-rename window.
- The four Pipeline-Parallelism stubs (frontmatter only, no body) are gone;
  `Multi-Node Runtimes.md` owns runtime construction, launch, mixed-vendor
  verdicts and cross-split spec decode, and the four links that pointed at
  the stubs were repointed at it or at the drafter page.
- Authentik's three stub pages fold into `Authentik.md`, with the process
  detail and the outpost reference split out so the parent stays under the
  length hint.

Verified corrections (host census + live probe, 2026-10-19):
- The MXFP4 checkpoint two pages called the "on-disk rollback" is gone:
  /home/dank/models/ holds StillDeadcode, rad and tpl.jinja. Stated once, on
  the era page that owns that payload; the swap page now links to it.
- frank-medium-radiance-mxfp4: the 4.24/7 accept rate belongs to the DFlash2
  arm measured on the FP8 target, not to the MXFP4 era; the 3-family soak run
  census is kept once (155 requests) instead of twice (~120 and 155).
- Fleet shapes re-confirmed against the live endpoints before touching any
  page: 3x200000 fp8 KV, 2x200704, 2x262144.

Index rows are regenerated, not hand-carved. Net -1,849 vault lines.
2026-10-19 05:00:43 -07:00

4.1 KiB

type, title, description, tags, timestamp
type title description tags timestamp
reference Command Center Dotfiles How the dotfiles repo deploys: stow-equivalent packages, full-replica rsync, the pre-overwrite audit, transport gotchas.
dotfiles
omp
deploy
rsync
blankpad
2026-10-05T00:00:00-07:00

Command Center Dotfiles

Repo ~/.omp is itself the deployment: packages are home-relative trees under dotfiles/<pkg>/; scripts/deploy.sh symlinks live files into the repo checkout. git pull + deploy.sh is the whole propagation story.

Transport decision (agreed with Frank, executed 2026-09-09)

  • Ship via full-replica rsync of /home/dank/.omp/ including .git to <user>@<host>:/home/<user>/.omp/, NOT clone-from-Gitea — main can be ahead of origin/main; push is a user-only trigger, so clone would ship stale state.
  • Deploy runs on-target as the target user: bash /home/<user>/.omp/scripts/deploy.sh (resolves the repo via git -C $(dirname $(realpath $0)) rev-parse --show-toplevel, so .git must be present at the target path — full-replica transport guarantees this).

Pre-overwrite audit (MANDATORY before first sync on a non-blank host)

Diff every file that deploy.sh --check reports as DRIFT against the repo copy BEFORE letting quarantine-and-replace run. Host-specific divergence belongs in an override package, not in quarantine:

  1. Pull divergent live files from target (ssh ... 'cat <path>' > local-staged-copy).
  2. Secret-audit staged copies (grep token/secret/password/key shapes) before anything enters git.
  3. Compose dotfiles/zz-<hostname>/ on the source machine from those live copies; commit to repo first.
  4. Ship the package dir via rsync, then run deploy sync — override deploys LAST and win over base packages.

deploy.sh mechanics (verified on blankpad)

  • --check = pure report (ADOPT/LINK/DRIFT lines), writes nothing. Run it first, always.
  • Default mode = sync: adopt identicals silently, link new, quarantine-and-replace divergents into .quarantine/<host>/<ts>/ (gitignored; never rm).
  • Override-target bug (fixed cc2c652): zz-<host> packages nest base-package dirs internally (zz-blankpad/niri/.config/...); target derivation must strip the nested package segment, else overrides deploy to phantom $HOME/niri/.config/... while real targets keep pointing at canonical copies (visible symptom: check shows 0 actions but readlink ~/.zshrc points at base zsh/.zshrc).
  • systemd units auto-enable only when ExecStart binary resolves on that host; dconf packages load via dconf load /, never symlinks.
  • core.hooksPath=.githooks is armed by deploy.sh per machine — set it once post-transfer even before first sync.

ssh/sshpass transport gotchas (all bit live)

  • Resolve the target via mDNS FQDN (avahi-resolve -4 -n <host>.local); a bare hostname may not resolve. Drop-not-refuse on port 22 = sshd down or firewall default-drop, not auth failure — needs a local/console fix on target.
  • SSHPASS='...' sshpass -e ssh ... inline per invocation; an env passed via the tool's env parameter did not propagate to the sshpass child process.
  • The remote login shell may be fish: never send bash syntax (for/do/done, $?) bare through ssh host 'cmd'; wrap as bash -c "..." or ship a script. See SSH and Remote Access.
  • File shipping: ssh 'cat > /remote/path' < localfile (stdin redirect). A here-doc attached to the ssh command is consumed by cat — the intended script body becomes the file content, silently. Verify shipped bytes with an md5sum compare on both ends; do NOT compare /dev/stdin after cat drained it (false DIVERGED).

Verification of a completed deploy

Re-run deploy.sh --check → expect exactly zero actions/quarantined/skipped = idempotent steady state. Spot-check readlink on override files points into dotfiles/zz-<host>/, not base packages.