Repository navigation
Add SQLite-backed per-user config store - #84
Merged
Merged
Conversation
IConfigStore/ITopicConfig plus a Dapper-over-Microsoft.Data.Sqlite implementation with one table per topic. Bump version to 7.2.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
Builds a `config` topic by walking the finished command tree, applies stored defaults (action > group > topic > built-in) via default-value factories, adds the WithImmutableDefault marker, IConfigStore interfaces, and isolates ToolkitProcess config home per invocation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
…dd config integration tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
Add docs/config.html covering set, show and unset, precedence, what can not be configured, and storage. Add a config card to docs/index.html. In CLAUDE.md, add config examples, the topic list entry, the Dapper dependency, and a Per-user config section for developers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
When a stored config value failed to parse, SetErrorCore replaced the option's DefaultValueFactory with one that only added an error and returned default. --help renders the factory's return value, so help showed "[default: 0]" instead of the built-in default. The error factory now captures the option's existing factory and returns its value after recording the error. The parse still fails for the action, and help shows the built-in default. Adds regression tests for help output and for the invalid-default error on a normal parse. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD
Contributor
There was a problem hiding this comment.
LGTM. CI is green, the version is bumped (7.1.0 to 7.2.0), docs are updated, and tests are included.
Non-blocking nit: SqliteConfigStore.GetAll opens the database with SqliteOpenMode.ReadWrite (Services/SqliteConfigStore.cs:352). A read-only config file or directory would make every topic command fail with "unreadable". ReadOnly is enough for a read.
Automated review of 44e164e
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
IConfigStore/ITopicConfig plus a Dapper-over-Microsoft.Data.Sqlite
implementation with one table per topic. Bump version to 7.2.0.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_017gKT7yHfLjdTqeKrP5YFbD