- board: detect cuaU* serial ports in fallback scanner, filter .init/.lock nodes
- board: fall through to OS scan when arduino-cli returns empty (serial-discovery
uses unsupported Linux syscalls on FreeBSD)
- board: recognize cuaU* port names as USB in is_usb()
- upload.sh: fix silent exit under set -euo pipefail when vid_pid grep finds
nothing (|| true on LOCAL_PORT and LOCAL_VID_PID greps)
- upload.sh: add cuaU to auto-detect port pattern
- doctor: detect dialer and operator group membership, offer --fix for both
- doctor: detect avr-size installed but not on PATH, offer --fix to add to
shell rc file via detect_shell_rc()
- doctor: context-aware hardware section (suppress misleading messages when
groups not yet applied)
- doctor: FreeBSD-specific troubleshooting hints throughout
- devices: suppress arduino-cli board detection section on FreeBSD (broken
due to serial-discovery syscall issues)
- devices: always show USB hub tip on FreeBSD
- devices: FreeBSD-specific troubleshooting checklist with sequential numbering
on all platforms
- Remove build/upload/monitor subcommands (projects are self-contained)
- Remove ctrlc dependency (only used by removed monitor watch mode)
- Update next-steps messaging to reference project scripts directly
- Add 'anvil refresh [DIR] [--force]' to update project scripts
to latest templates without touching user code
- Fix Windows port detection: replace fragile findstr/batch TOML
parsing with proper comment-skipping logic; add _detect_port.ps1
helper for reliable JSON-based port detection via PowerShell
- Add .anvil.local for machine-specific config (gitignored)
- 'anvil devices --set [PORT] [-d DIR]' saves port + VID:PID
- 'anvil devices --get [-d DIR]' shows saved port status
- VID:PID tracks USB devices across COM port reassignment
- Port resolution: -p flag > VID:PID > saved port > auto-detect
- Uppercase normalization for Windows COM port names
- Update all .bat/.sh templates to read from .anvil.local
- Remove port entries from .anvil.toml (no machine-specific config in git)
- Add .anvil.local to .gitignore template
- Expand 'anvil devices' output with VID:PID, serial number, and
usage instructions