What you're trying to do
Today the AppImage hardcodes $HOME/.vouch/ (or $VOUCH_KB_PATH). Real users have a .vouch/ per project; vouch-the-CLI walks up from cwd to find it. The desktop app needs an explicit picker so a user can keep three projects open in sequence without env-var dance.
Suggested shape
File → Open KB… (folder picker — must contain .vouch/)
File → Recent KBs ▸ (last 5, persisted in ~/.config/vouch-desktop/recent.json)
File → New KB… (folder picker, runs `vouch init` then opens)
- Recent KBs list lives in
~/.config/vouch-desktop/state.json (xdg-config-home compliant).
- Window title updates to reflect the active KB.
- Switching KBs restarts the python sidecar against the new root; in-flight requests cancelled.
- Refusing to open a folder without
.vouch/ shows an inline error with a "create KB here" button (calls vouch init).
Acceptance
- A user can switch KBs from the menu without restarting the app; the queue re-renders against the new KB within 2s.
- Recent-KBs list persists across app launches.
New KB… against an empty folder produces a usable KB (verified by vouch status returning a row for the starter claim).
Out of scope
- Side-by-side multi-KB views in one window — one window, one KB in v1.
- Cross-KB search (federation territory).
What you're trying to do
Today the AppImage hardcodes
$HOME/.vouch/(or$VOUCH_KB_PATH). Real users have a.vouch/per project; vouch-the-CLI walks up from cwd to find it. The desktop app needs an explicit picker so a user can keep three projects open in sequence without env-var dance.Suggested shape
~/.config/vouch-desktop/state.json(xdg-config-home compliant)..vouch/shows an inline error with a "create KB here" button (callsvouch init).Acceptance
New KB…against an empty folder produces a usable KB (verified byvouch statusreturning a row for the starter claim).Out of scope