This repository was archived by the owner on Oct 9, 2026. It is now read-only.
Repository navigation
Own Whiteboard config migration and typed batch saves - #95
Merged
Merged
Conversation
AI assistance: implemented with OpenAI Codex. Agent-Session: 79e2268e-5c55-4f1c-a7b9-f2a6d613fe4f
Merged
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Whiteboard currently owns a TOML editor and config migration code. Add two native commands so clients can migrate saved Whiteboard settings and save a typed settings patch without editing TOML themselves.
diffr config migrate --jsonconverts the v1 settings exposed by Whiteboard to v2. It keeps saved toggles, context lines, hide settings, summary credentials/options, and custom prompts. Historical stock prompts follow the new default. It drops custom plugins, pipeline order, grouping,instances, and other v1 plugin fields outside that UI; theme and diff limits remain. Missing/current files are unchanged.diffr config set --stdin --jsonaccepts a nested JSON partial config. Provider resets run before explicit patch values, so a provider and its credentials save together. Omitted fields remain, and rejected batches write nothing. The existing single-key command and TUI keep using the same writer.Both commands validate the candidate in memory, serialize native writers with a file lock, and replace the file atomically. They create no backup. JSON failures include the cause, config path, and a copyable coding-agent repair prompt; TOML diagnostics omit source excerpts that could contain credentials.
Validation: full
cargo test --lockedpassed; final config tests passed (56); CLI tests passed (13). Whiteboard's consumer branch passed 33 settings/startup tests, 12 runtime integration tests with the local candidate binary, server typecheck, lint, and format checks.AI assistance: implemented with OpenAI Codex.