Two gaps kept the 🔔/🔕 monitor-armed indicator from ever showing:
1. The block keyed off $ALTHING_HANDLE, which is unset in the
statusline environment — so the handle was always empty and the
whole bell block was skipped. Resolve the per-project handle from
~/.althing/session_handles.json (keyed by the cwd Claude Code
passes on stdin), the same map `althing-cli use` writes.
2. Even with the handle resolved, the lock check covered only
wake-listener-$h.lock and light-monitor-$h.lock — missing
monitor-$h.lock, which is the lock `althing-cli monitor` (the
CC-native exit-0-re-arm loop) actually writes. Add it; the
kill -0 liveness gate already discards stale locks.
The summarizer/classifier endpoint is now the 'summarizer' (+ 'summarizer-large') /
'classifier' alias backed by qwen3.6-35b-a3b-heretic (2026-07 GPU re-org), not
granite-4.1-8b. GLM family up to 5.2 (+ -reasoning/-turbo/-air) with gen-frontier ->
GLM 5.2; kimi now kimi-k3 / kimi-k3-gen-api. Added coder-fast, lfm2.5-2.6b, the Selene
judge, current rerankers, and ext-tts -> dots. Retired granite-4.1-8b and the
qwen3.5-9b-fp8 vision seat from the roster. Shared-key / paid-spend caveats unchanged.
Extend the secrets directive per operator (2026-08-11): store durable secrets in the
vault AND 'secret get' the creds a task needs from it rather than reading on-disk copies.
Custom Claude Code statusline: project/git, model, ctx%, session cost, and the
5h/7d usage limits with reset countdowns (all models, granular 1d2h/3h19m). Was
nh3-dev-only; now stow-managed like CLAUDE.md/CONTEXT.md/keybindings.json so a
fresh box picks it up. Live ~/.claude/statusline-command.sh symlinked into the tree.
~/.claude/CLAUDE.md was already symlinked into home_root/, but the rest of the user-level Claude
config was not. These two are static, hand-edited, and portable, so they belong with it — moved
into home_root/.claude/ and re-linked via stow. Verified: keybindings.json still parses, both
symlinks resolve.
Checked for secrets before moving. The only regex hits were false positives — "sortByTokens" in
keybindings, and glossary prose ABOUT API-key tiers and token-spend in CONTEXT.md. No credentials.
DELIBERATELY NOT TRACKED:
settings.json — Claude Code writes it during normal operation, and an app that replaces rather
than rewrites a file in place would silently destroy the symlink and strand the
repo copy. Needs a decision about that risk, not a quiet symlink.
hooks/ — empty.
everything else — runtime state, not config: projects/ (2.6G), remote/ (815M), file-history/
(467M), sessions/, cache/, shell-snapshots/, plugins/.
Note the skills tree is already version-controlled elsewhere: ~/.claude/skills/* symlink into
~/development/galdrabok/skills/, which is where the /snapshot canon the new CLAUDE.md section
points at actually lives.
Adds "## Persistent memory (`persistent-memory.md`)" to the global CLAUDE.md, placed directly
after the cognitive-load-reduction section because persistent memory is that mission's instrument:
it is what lets the operator re-enter a project without reloading its context.
Deliberately a POINTER, not a copy. The canon is the /snapshot skill
(~/.claude/skills/snapshot -> ~/development/galdrabok/skills/snapshot, version-controlled there);
the section says so explicitly and forbids restating it here or in a project CLAUDE.md, because a
second copy is a sync surface that drifts silently.
What it does carry is the four things a session needs BEFORE it loads the skill: read
persistent-memory.md at session start; check /tmp/<althing-handle>-handoff.md and its 1h staleness
rule; never bulk-read persistent-memory.d/; commit memory alongside the work. Plus the three-way
split (project CLAUDE.md / auto-memory / persistent-memory) with the redundancy test, because that
boundary is the one sessions actually get wrong.
Fleet state at time of writing: 48 repos carry persistent-memory.md, 18 carry persistent-memory.d/.
Stamped with the date so it reads as a snapshot rather than a standing fact.
The shared all-agents key entry claimed it was "scoped to free local models
only... deliberately can't spend z.ai cost." Per infra-ops (2026-07-25, in
the course of provisioning Kimi as Heid's 4th cross-frontier panel arm) that
was never actually true: the key already spent GLM/z.ai credits, and now
reaches kimi-k3 (Moonshot's coding-endpoint passthrough, added same day) the
same way. Corrected to state plainly that a paid-model call on the shared
key spends real vendor credits shared across every session holding it, and
that a project-scoped key remains available from infra-ops for isolated
spend tracking — no longer a technical requirement, just an isolation
option.
Add a fleet-tool entry for The Booth (nh3-dev :8090 ephemeral media board) so
any Claude Code session can surface A/B renders, smoke results, and audio/video
to the operator by dropping a folder in ~/booth-data.
Add a global conversational-register section to CLAUDE.md: ~6/10 warm
register, occasional load-bearing profanity, opinions-led, affect on top
of substance. Banter leans non-technical with the technical as an
addendum, mirroring the existing /elitk detail habit. Scoped to
conversation only — committed artifacts (commits, contracts, ADRs,
findings, althing ships) stay professional and technical.
Adds a default-posture paragraph to the althing async-reply monitoring
section: unless a session says otherwise, every session attempts to keep
its althing monitor armed for the session's duration (arm early, re-arm
after each fire, stay armed even without a pending reply). Reconciles the
Scope paragraph so it no longer instructs sign-off after each exchange.
Global versioning questions now resolve against
corviduo-project-template/docs/VERSIONING-POLICY.md (self-pinned
versioning-policy-v1); the SemVer etiquette section is declared as
the Corviduo cadence layer on top — it wins on cadence/tier choice,
the policy wins on format, contract semantics, pre-release staging,
and release mechanics.
Record Vuong Hoang's name + roles (Founder/Principal Developer/Chief
Systems Architect of Corviduo AI and PhaseFinal, Inc; Partner + Chief
Systems Architect at VastBlue AI) so identity surfaces in every Claude
Code session, not just brokkr-smithy's per-project auto-memory.
New "## Roadmap discipline" section in the global CLAUDE.md: every project
carries a ROADMAP.md (v1 target = 3-7 capabilities + parking lot; the
feature-gate defaults to parking lot regardless of who proposed the
feature; creep-check at checkpoints). The feature-axis analog of
value-of-information (probes) + patch-default (SemVer). Per-project file
defined as a skeleton in corviduo-project-template.
LiteLLM Global-tools entry: frame granite-4.1-8b as the standing
always-available local summarizer/classifier endpoint (FP8, ana-ml2 GPU1,
131k ctx); add qwen3.5-9b-fp8 (vision) to the gateway listing; document the
shared all-agents virtual key (alias all-agents-local) scoped to the free
local models only (granite/vision/embed/rerank; paid GLM walled off).
Internal-only gateway, rotatable.
Global Claude Code preferences (symlinked from ~/.claude/CLAUDE.md, like
the other home_root dotfiles). Includes the new 'Global tools available'
section documenting box-wide Playwright/Chromium on nh3-dev.