-
Notifications
You must be signed in to change notification settings - Fork 2.3k
docs: session storage migration #5682
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR documents the session storage migration from .jsonl files to SQLite database, and makes related documentation updates including session ID format changes and the addition of a new search feature using the Chatrecall extension.
Key changes:
- Updates session storage documentation to reflect SQLite database migration (version 1.10.0+)
- Changes session ID format documentation from timestamp-based to
YYYYMMDD_<COUNT>format - Adds "Search Across All Session Content" sections documenting the Chatrecall extension feature
- Updates CLI command examples with new session IDs and removes obsolete flags
- Temporarily reverts capitalization to lowercase "goose" throughout touched files
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
documentation/docs/troubleshooting/diagnostics-and-reporting.md |
Updates session diagnostics command examples to use --id flag instead of --session-id |
documentation/docs/guides/sessions/session-management.md |
Updates session storage references from .jsonl files to SQLite database, changes session ID format, adds Chatrecall extension search documentation, and updates "goose" capitalization |
documentation/docs/guides/recipes/session-recipes.md |
Reverts "Goose" to lowercase "goose" throughout the file |
documentation/docs/guides/multi-model/creating-plans.md |
Updates session output format in examples and changes "Goose" to lowercase "goose" |
documentation/docs/guides/logs.md |
Updates session storage documentation from .jsonl files to SQLite database with migration notes |
documentation/docs/guides/goose-cli-commands.md |
Adds session storage migration note, updates session ID examples, removes --verbose option from session list, and adds new filtering options |
documentation/docs/troubleshooting/diagnostics-and-reporting.md
Outdated
Show resolved
Hide resolved
|
alexhancock
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great, thanks for documenting!
|
|
||
| ## Flag Naming Conventions | ||
|
|
||
| Goose CLI follows consistent patterns for flag naming to make commands intuitive and predictable: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
some of these are still relevant right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@alexhancock correct us if we're wrong, but we believe these changes havent been released yet. our docs shouldnt be ahead of any features, so we're temporarily removing them and will restore once released.
|
|
||
| # Save diagnostics to a custom location | ||
| goose session diagnostics --session-id 20250305_113223 --output /path/to/my-diagnostics.zip | ||
| goose session diagnostics --session-id 20251108_5 --output /path/to/my-diagnostics.zip |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh i didnt realize this part changes as well. thank you
| - **`-n, --name <name>`**: Name for this run session (e.g. `daily-tasks`) | ||
| - **`-r, --resume`**: Resume from a previous run | ||
| - **`-p, --path <PATH>`**: Path for this run session (e.g. `./playground.jsonl`) | ||
| - **`-p, --path <PATH>`**: Path for this run session (e.g. `./playground.jsonl` for legacy session storage) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wonder if this line could be confusing if you're not familiar with the legacy session storage. is it possible to run path for session for any other situation and do a diff example? or am i misunderstanding
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like it's just for that. goose run --help says "Legacy parameter for backward compatibility. Extracts session ID from
the file path (e.g., '/path/to/20250325_200615.jsonl' -> '20250325_200615')."
I separated out the "Used for legacy file-based session storage" to hopefully make it easier to parse. The note in the Session Management section gives a bit more context.
blackgirlbytes
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approving with a small comment for improvement
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.
| goose will search your session history and show relevant conversations with context from matching sessions. | ||
|
|
||
| :::info | ||
| This functionality requires the built-in `Chatrecall` extension to be enabled (it's enabled by default). |
Copilot
AI
Nov 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Chat Recall extension is not enabled by default. According to the code in crates/goose/src/agents/extension.rs, the chatrecall extension has default_enabled: false. This documentation should either say "if enabled" or remove the claim about being enabled by default.
| This functionality requires the built-in `Chatrecall` extension to be enabled (it's enabled by default). | |
| This functionality requires the built-in `Chatrecall` extension to be enabled (it is not enabled by default). |
| goose will search your session history and show relevant conversations with context from matching sessions. | ||
|
|
||
| :::info | ||
| This functionality requires the built-in `Chatrecall` extension to be enabled (it's enabled by default). |
Copilot
AI
Nov 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Chat Recall extension is not enabled by default. According to the code in crates/goose/src/agents/extension.rs, the chatrecall extension has default_enabled: false. This documentation should either say "if enabled" or remove the claim about being enabled by default.
| This functionality requires the built-in `Chatrecall` extension to be enabled (it's enabled by default). | |
| This functionality requires the built-in `Chatrecall` extension to be enabled (it is not enabled by default). |
|
|
||
| **Options:** | ||
| - **`--session-id <session_id>`**: Export a specific session by session ID | ||
| - **`-i, --id <ID>`**: Export a specific session by ID |
Copilot
AI
Nov 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incorrect short flag. According to the code in crates/goose-cli/src/cli.rs, the session_id argument has long = "session-id" with alias = "id", but no short form. This should be documented as --id <ID> or --session-id <ID> (without the -i short option).
| - **`-i, --id <ID>`**: Export a specific session by ID | |
| - **`--id <ID>`**: Export a specific session by ID |
| In addition, these platform extensions provide core goose functionality. They are also always available and enabled by default: | ||
|
|
||
| - Chat Recall: Search conversation content across all your session history | ||
| - Extension Manager: Discover, enable, and disable extensions dynamically during sessions | ||
| - [Todo](/docs/mcp/todo-mcp): Manage task lists and track progress across sessions | ||
|
|
Copilot
AI
Nov 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Chat Recall extension is listed under platform extensions that are "always available and enabled by default", but according to the code in crates/goose/src/agents/extension.rs, Chat Recall has default_enabled: false. Either move this to a separate section for "available but not enabled by default" extensions, or update the introductory text to clarify that not all listed platform extensions are enabled by default.
| In addition, these platform extensions provide core goose functionality. They are also always available and enabled by default: | |
| - Chat Recall: Search conversation content across all your session history | |
| - Extension Manager: Discover, enable, and disable extensions dynamically during sessions | |
| - [Todo](/docs/mcp/todo-mcp): Manage task lists and track progress across sessions | |
| In addition, these platform extensions provide core goose functionality. They are always available, but not all are enabled by default: | |
| **Enabled by default:** | |
| - Extension Manager: Discover, enable, and disable extensions dynamically during sessions | |
| - [Todo](/docs/mcp/todo-mcp): Manage task lists and track progress across sessions | |
| **Available but not enabled by default:** | |
| - Chat Recall: Search conversation content across all your session history |
| - **`-v, --verbose`**: Include session file paths in the output | ||
| - **`-f, --format <format>`**: Specify output format (`text` or `json`). Default is `text` | ||
| - **`--ascending`**: Sort sessions by date in ascending order (oldest first) | ||
| - **`-p, --working-dir <path>`**: Filter sessions by working directory |
Copilot
AI
Nov 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incorrect short flag ordering. According to the code in crates/goose-cli/src/cli.rs, the working_dir parameter has short = 'w' with short_alias = 'p'. The documentation should show the primary short form first: -w, --working-dir <path> (with -p as an alias if mentioned).
| - **`-p, --working-dir <path>`**: Filter sessions by working directory | |
| - **`-w, --working-dir <path>`**: Filter sessions by working directory |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The -w change isn't released yet, per --help
-p, --working_dir <WORKING_DIR>
Filter sessions by working directory
| - **`--session-id <session_id>`**: Remove a specific session by its session ID | ||
| - **`-n, --name <name>`**: Remove a specific session by its name | ||
| - **`-r, --regex <pattern>`**: Remove sessions matching a regex pattern | ||
| - **`-i, --id <ID>`**: Remove a specific session by its session ID |
Copilot
AI
Nov 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incorrect short flag. According to the code in crates/goose-cli/src/cli.rs, the session_id argument has long = "session-id" with alias = "id", but no short form. This should be documented as --id <ID> or --session-id <ID> (without the -i short option).
| - **`-n, --name <name>`**: Name for this run session (e.g. `daily-tasks`) | ||
| - **`-r, --resume`**: Resume from a previous run | ||
| - **`-p, --path <PATH>`**: Path for this run session (e.g. `./playground.jsonl`) | ||
| - **`-p, --path <PATH>`**: Path for this run session (e.g. `./playground.jsonl`). Used for legacy file-based session storage. |
Copilot
AI
Nov 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: "file- based" should be "file-based" (remove the space before the hyphen).
* origin/main: (29 commits) chore: Update governance to include Discord (#5690) Ollama improvements (#5609) feat: add Supabase MCP server to registry (#5629) Unlist VS Code extension tutorials from MCP and experimental sections (#5677) fix: make image processing work in github copilot provider (#5687) fix: do not take into account gitignore in developer mcp (#5688) docs: session storage migration (#5682) New maintainers (#5685) chore: Update governance (#5660) chore(release): release version 1.14.0 (minor) (#5676) fix : action icons overlap session title in chat history (#5684) Document recent goose PRs (#5683) docs: add GOOSE_PATH_ROOT environment variable documentation (#5678) feat: SessionManager integration for acp sessions (#5657) teach copilot our CI (#5672) bump openapi version directly (#5674) governance: update MAINTAINERS.md to reflect new maintainers (#5675) chore: upgrade rmcp to 0.8.5 (#5673) Update release instructions (#5662) Swapped out to_string_lossy with display for user facing text (#5666) ...
* 'main' of github.com:block/goose: Fix: Always show autocompact threshold ui (#5701) chore: Update governance to include Discord (#5690) Ollama improvements (#5609) feat: add Supabase MCP server to registry (#5629) Unlist VS Code extension tutorials from MCP and experimental sections (#5677) fix: make image processing work in github copilot provider (#5687) fix: do not take into account gitignore in developer mcp (#5688) docs: session storage migration (#5682) New maintainers (#5685) chore: Update governance (#5660) chore(release): release version 1.14.0 (minor) (#5676)
* main: (27 commits) hackathon banner (#5710) Fix documentation-only change detection for push events (#5712) Added transaction commits to multi sql functions in session_manager (#5693) fix: improve and simplify tool call chain rendering (#5704) Fix: Always show autocompact threshold ui (#5701) chore: Update governance to include Discord (#5690) Ollama improvements (#5609) feat: add Supabase MCP server to registry (#5629) Unlist VS Code extension tutorials from MCP and experimental sections (#5677) fix: make image processing work in github copilot provider (#5687) fix: do not take into account gitignore in developer mcp (#5688) docs: session storage migration (#5682) New maintainers (#5685) chore: Update governance (#5660) chore(release): release version 1.14.0 (minor) (#5676) fix : action icons overlap session title in chat history (#5684) Document recent goose PRs (#5683) docs: add GOOSE_PATH_ROOT environment variable documentation (#5678) feat: SessionManager integration for acp sessions (#5657) teach copilot our CI (#5672) ...
…eanup * 'main' of github.com:block/goose: (46 commits) Fix context progress bar not resetting after /clear command (#5652) docs: removing double announcements (#5714) docs: mcp sampling support (#5708) hackathon banner (#5710) Fix documentation-only change detection for push events (#5712) Added transaction commits to multi sql functions in session_manager (#5693) fix: improve and simplify tool call chain rendering (#5704) Fix: Always show autocompact threshold ui (#5701) chore: Update governance to include Discord (#5690) Ollama improvements (#5609) feat: add Supabase MCP server to registry (#5629) Unlist VS Code extension tutorials from MCP and experimental sections (#5677) fix: make image processing work in github copilot provider (#5687) fix: do not take into account gitignore in developer mcp (#5688) docs: session storage migration (#5682) New maintainers (#5685) chore: Update governance (#5660) chore(release): release version 1.14.0 (minor) (#5676) fix : action icons overlap session title in chat history (#5684) Document recent goose PRs (#5683) ...
Signed-off-by: Blair Allan <[email protected]>
Summary
This PR documents the session storage migration from
.jsonlfiles to SQLite database.It also temporarily overwrites doc changes from PR #5516 and changes to lowercase "goose" in touched files.
Documentation updates:
documentation/docs/guides/goose-cli-commands.md:removeoptionsdocumentation/docs/guides/logs.md:documentation/docs/guides/multi-model/creating-plans.md:documentation/docs/guides/recipes/session-recipes.md:documentation/docs/guides/sessions/session-management.md:Type of Change
Testing
Manual testing