Skip to content

Define config format v2 and prepare 0.1.13 - #92

Merged
sidkmenon merged 6 commits into
mainfrom
codex/config-v2
Oct 7, 2026
Merged

sidkmenon merged 6 commits into
mainfrom
codex/config-v2

Conversation

@sidkmenon

@sidkmenon sidkmenon commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Diffr now reports config format 2 and prepares release 0.1.13. Whiteboard can migrate saved v1 settings before it starts this binary.

v1 key v2 key
plugins.bundled.<name> plugins.shape.bundled.<name>
plugins.external.<name> plugins.shape.<name> with path
plugins.order plugins.shape.order; retain bundled., remove external.
classifier plugins.classify.bundled
Custom classifier.path plugins.classify.<manifest-name>.path
version = 2

[plugins.shape.bundled.context]
lines = 8

[plugins.classify.bundled]
hide = ["generated", "vendored"]

Custom plugins use path; they do not need an external section. Exactly one classifier runs, and two shape entries with the same manifest name cannot both be enabled.

Config behavior Result
Explicit v1 Reject before decoding old fields
Omitted version Use v2 defaults
Config edits Write version 2; schema, show, and set use the same keys
Custom prompts Keep saved text; remove the old prompt-default cleanup
Stock entries Cannot set path
Custom shape names starting with bundled. Reject before entries can collide

The branch is rebased on #91 and retains its missing-key behavior: summaries turn off and diffr continues. The summarizer component was rebuilt with the new config paths.

Review commits in order:

  1. Reject v1.
  2. Remove old prompt cleanup.
  3. Add the final plugin namespaces and update native consumers.
  4. Update TUI fixtures.
  5. Update config examples.
  6. Prepare 0.1.13.

Deslop removed duplicate source state, tests that mirror defaults, and new documentation prose. Config editing, failed-write safety, plugin identity, schema validation, and UI interaction tests remain.

Validation: Rust tests, TUI tests/typecheck, formatting, typo checks, and Whiteboard candidate integration pass. GitHub checks are tracked on this PR.

Release 0.1.13 is not published. After user review and release, Whiteboard #956 must pin it and check the installed packages before merge.

AI assistance: implemented with OpenAI Codex; reviewed and cleaned up with Claude Code and OpenAI Codex.

sidkmenon added a commit to devdotfast/whiteboard that referenced this pull request Oct 6, 2026
Move settings to native shape/classify keys and consume the current tree-based wire protocol. Preserve supported saved overrides and custom prompts with a validated, backed-up migration of the shared config file.

The final 0.1.13 npm pin remains blocked on review and publication of devdotfast/diffr#92. Keep this PR in draft until published package validation completes.

AI assistance: implemented and validated with OpenAI Codex.

Agent-Session: 01a10ff2-f5c2-7ec1-852f-8ebe516d8af9
@sidkmenon
sidkmenon force-pushed the codex/config-v2 branch 2 times, most recently from 117966c to 62d160f Compare October 7, 2026 01:30
Bump the config format to 2 and check the version before decoding any
other field, so the format changes that follow report a version error
instead of an unknown key.

AI assistance: implemented with OpenAI Codex; split and cleaned up with Claude Code.

Agent-Session: 01a112e3-6825-7fa1-b0e5-79eef03d80f0
Agent-Session: 3fe0d4c3-fe2b-4417-9b14-24659a5e68a8
Agent-Session: 79e2268e-5c55-4f1c-a7b9-f2a6d613fe4f
Agent-Session: 62ad3106-de8d-4fd7-b0ff-ee63a836fbd2
Only format 1 files can hold it, and those are now rejected.

AI assistance: implemented with OpenAI Codex; split and cleaned up with Claude Code.

Agent-Session: 01a112e3-6825-7fa1-b0e5-79eef03d80f0
Agent-Session: 3fe0d4c3-fe2b-4417-9b14-24659a5e68a8
Agent-Session: 79e2268e-5c55-4f1c-a7b9-f2a6d613fe4f
Agent-Session: 62ad3106-de8d-4fd7-b0ff-ee63a836fbd2
Keep stock shape entries under bundled and custom entries directly under their manifest names. Require path for custom plugins and retain order references and runtime identity.

AI assistance: implemented with OpenAI Codex; cleaned up with Claude Code and OpenAI Codex.

Agent-Session: 79e2268e-5c55-4f1c-a7b9-f2a6d613fe4f
AI assistance: implemented with OpenAI Codex; cleaned up with Claude Code and OpenAI Codex.

Agent-Session: 79e2268e-5c55-4f1c-a7b9-f2a6d613fe4f
AI assistance: implemented with OpenAI Codex; cleaned up with Claude Code and OpenAI Codex.

Agent-Session: 79e2268e-5c55-4f1c-a7b9-f2a6d613fe4f
AI assistance: implemented with OpenAI Codex; cleaned up with Claude Code and OpenAI Codex.

Agent-Session: 79e2268e-5c55-4f1c-a7b9-f2a6d613fe4f
@sidkmenon
sidkmenon marked this pull request as ready for review October 7, 2026 01:33
@sidkmenon
sidkmenon merged commit efe2a5a into main Oct 7, 2026
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant