assist v0.174
SQLite backlog storage and search
The big move today was switching backlog storage from YAML files to SQLite, with JSONL kept alongside as a synced mirror for diffing and git history. The migration path also updates .gitignore automatically when the DB is created, so the binary never accidentally ends up committed. A handful of follow-up fixes fell out of this — surfacing parse errors instead of silently dropping items, detecting the SQLite DB in backlog gates, handling null comment phases in the JSONL, and stripping unknown keys in planTaskSchema so legacy rows don’t crash backlog ls.
On the feature side, backlog add now takes CLI options instead of reading from a file — a breaking change but much nicer for scripting and for the /draft flow. I added a wontdo status for items I’ve decided not to pursue, full-text search across item fields, and browser routing to the backlog web UI so deep links and back/forward finally work. A few UX fixes landed too: prompting before auto-starting a single item, skipping the phase prompt for terminal items, and allowing literal backticks in quoted args for splitCompound.