feat(vdb-menu): menu-first follow-ups (notify config, viewer detection)
Clears the three follow-ups left after the menu-first work (!1 (merged), !2 (merged)).
-
vault_notify reads
vdb-config.yaml → integrations.notificationsfirst, legacyvault-setup.json → notificationsfallback. Soft pyyaml import, still fails silently. Tests:tests/test_vault_notify.py. -
DB-viewer detection extracted to textual-free
scripts/vdb_viewers.py; vdb-menu imports it. Exposed viavdb_cli --detect-viewers(installed viewers richest-first + install hints when only sqlite3 present).vdb-setupPhase 5d suggests a browser. Test intests/test_cli.py. -
Bare TUI without textual already prints a friendly install hint via the
__main__guard (verified by forcing ImportError); marked done.
Full suite green (mise run test, exit 0).