Skip to content

feat: dynamic config system#3

Open
JEHoctor wants to merge 12 commits intomainfrom
dev/config
Open

feat: dynamic config system#3
JEHoctor wants to merge 12 commits intomainfrom
dev/config

Conversation

@JEHoctor
Copy link
Copy Markdown
Owner

No description provided.

JEHoctor and others added 12 commits April 27, 2026 18:20
- Fix __delitem__: decrement _len, guard against intermediate nodes,
  clean up empty branches so paths can be reused as leaves
- Fix __getitem__: raise KeyError(key) consistently rather than leaking
  internal branch/leaf details
- Fix __setitem__: raise ValueError(key) for structural conflicts instead
  of KeyError, which is conventionally reserved for missing keys
- Fix ConfigWidget.on_input_changed: use _id_to_field lookup for the key
- Implement ConfigWidget.collect_config: start from model_dump() and
  apply changes at their correct nested paths before validating
- Add tests for PathMapping covering all operations and edge cases

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace dots with hyphens in generated widget IDs; Textual only allows
  letters, numbers, underscores, and hyphens in identifiers
- Pass the duplicate name to ValueError in new_tab so the error is
  informative rather than a bare raise

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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