Remove the `just goose2 wipe` recipe and its related changes from
the justfile, keeping only the Rust migration and backfill changes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
- Remove redundant EXISTS subquery in thread_messages INSERT since the
JOIN already limits results to sessions that have messages
- Remove ineffective ORDER BY in INSERT...SELECT (SQLite does not
guarantee insertion order from ORDER BY in this context)
- Fix user_set_name to be FALSE when name falls back to 'New Chat',
avoiding contradictory state where user_set_name=true but the name
is a default placeholder
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Legacy CLI and old desktop sessions only had rows in `sessions` and
`messages` tables, making them invisible to Goose2 which reads from
`threads` and `thread_messages`. This adds migration v12 that creates
thread entries for existing user/acp sessions that have messages but
no thread_id, and copies their messages into thread_messages. The same
backfill runs after fresh legacy JSONL imports since new databases skip
migrations.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
The .jsonl files are the goose1 migration source. Deleting them
prevents re-testing the goose2 migration on next launch. Revert the
.jsonl deletion while keeping the new ~/.goose/projects/ cleanup.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
The wipe recipe previously preserved legacy .jsonl session files and
didn't touch ~/.goose/projects/. This meant projects and threads
reappeared after wipe because the .jsonl files were re-imported on next
launch and projects lived outside the sessions DB.
Now deletes ~/.goose/projects/ and $DATA_DIR/sessions/*.jsonl so wipe
truly resets to a clean state.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Add a `confirm` parameter (default "no") to the `just goose2 wipe`
recipe. When invoked with `confirm=yes`, the interactive prompt is
skipped, allowing scripted/piped usage without hanging on stdin.
Interactive: just goose2 wipe
Scripted: just goose2 wipe confirm=yes
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Deletes the sessions DB, dev webview storage, and Tauri caches so the
next dev launch shows onboarding and re-migrates legacy sessions.
Preserves config, secrets, keyring, legacy .jsonl files, and prod data.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>