- Add mount management UI to all frontends (anvillm TUI, Assist, anvilwebgw, anvillm.el)
- Mount commands default to directory basename if name not specified
- Server validates directory exists before mounting
- Umount accepts either mount name or cwd path
- Fix server bug: all beads operations now use mount-specific store
- Remove currentMount global - all operations require explicit mount parameter
- Each Tasks window tracks its own windowMount independently
- Bead detail windows receive mount from parent window
- When no mounts exist, show instructions to mount a project
- When unmounting current mount, switch to first available or show empty state
- Mount validation: Select command checks mount exists before switching
- Database path: ~/.beads/<cwd-hyphenated> to prevent cross-contamination
- anvilwebgw: init logging in startCmd
- anvilweb: init logging in main
- anvillm: init logging in main
- Assist: init logging in main
Each program now creates its own timestamped log file
- Created internal/logging package with zap logger
- Added panic recovery to anvilsrv main loop, monitor goroutine, and mail processing
- Replaced log.Printf/Fatal with zap in debug, p9, tmux packages
- Fixed beads race condition: clear assignee before closing issue
- All errors and crashes now logged to ~/.config/anvillm/logs
- Replace interface{} with any
- Use strings.CutPrefix instead of HasPrefix+TrimPrefix
- Use strings.SplitSeq for efficiency
- Use slices.Contains instead of manual loops
- Use tagged switches for clarity
- Remove debug logging
- Fix race condition in server.go defer cleanup
- Add nil check after GetIssue in beads.go
- Replace strings.Trim with TrimPrefix to fix path traversal (beads.go, skills.go, tools.go)
- Remove unused role parameter in readReady
- Use RLock instead of Lock in read operation
- Add error check for os.Getwd
- Include model in session list output (eliminates N+1 reads)
- Add jq error handling in Supervisor dispatch_ready_beads
- Use process substitution in Supervisor to avoid subshell variable scope
- Fix claude backend Execute to return error (commands go through PTY)
- Make createSubtask return childID (eliminates duplicate O(n) scan)
Fixes: bd-1z2, bd-73r, bd-cid, bd-viu, bd-vdi
- Conductor: spawn per-worktree researcher, route worker QUERY_REQUESTs
through researcher, add post-completion review gate with Reviewer bot,
auto-approve trivial/docs/config beads
- Taskmaster: handle review rejection by parsing findings into new beads
- claude.go: enable slash command support (pass through to Claude CLI)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Extends lintDescription() with 8 new rules: Acme address format correction
(file:N-N → file:N,N), imperative verb start, vague language detection, how
signal, no first-person voice, forbidden vague phrases, inline code (backticks),
and cross-reference on long descriptions (>150 chars). Updates containsLineRef()
to also recognise #N char-position addresses; adds containsAcmeRegexAddr(),
containsHyphenRange(), and containsBdRef() helpers. Adds 32 tests covering every
rule in beads_lint_test.go.
Updates bot-templates/Conductor (6-question cold-completion gate, File Addressing
section), bot-templates/Taskmaster (File Addressing section with grammar
reference), and skills/beads/SKILL.md (Description Quality section with full lint
rule table and Acme addressing guide).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add description lint check to beads new command (bd-3bu.3):
warns to stderr on missing file path, function/line ref, short
description, or missing acceptance criterion; --no-lint and
IDEA:-prefixed titles bypass lint
- Add post-completion write-back convention to beads SKILL.md
(bd-3bu.2): quality ratings good/missing-location/missing-pattern/
too-vague, plus anti-pattern for closing without a quality comment
- Update Taskmaster prompt with five-field schema, KB query
requirement, and type-specific templates bug/feature/refactor/idea
(bd-3bu.1, bd-3bu.4)
- Add P1/P2 cold-completion gate to Conductor prompt (bd-3bu.5):
five-question checklist before assigning high-priority beads to bots
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>