Skip to content

feat(command): add bounded command schema foundation - #216

Merged
zackees merged 18 commits into
feat/json-documentsfrom
feat/command-schema
Sep 13, 2026
Merged

zackees merged 18 commits into
feat/json-documentsfrom
feat/command-schema

Conversation

@zackees

@zackees zackees commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the first bounded, facade-owned command-schema layer for #215. clap remains a private, opt-in implementation detail; default consumers do not resolve it.

This is intentionally a foundation rather than fastled-wasm adoption: optional values, repetition, conflicts, requirements, and help modelling still need the fuller schema requested by the issue.

Validation

  • soldr --no-cache cargo test --features command-schema --test command_schema_contract
  • soldr --no-cache cargo test --no-default-features
  • soldr --no-cache cargo clippy --features command-schema --all-targets -- -D warnings
  • review follow-up clean after fixes for selected-path collection, schema panic prevention, test feature gating, and native non-UTF-8 input.

Stack

Refs #215. Keep Clap private behind an opt-in facade with bounded input and schema validation.
Refs #215. Add bounded optional values, repeated strings, relations, and exclusive groups.
Refs #215. Preserve nested command matches and bounded positional parsing.
Refs #215. Add typed f64 and u32 schema values with validated defaults.
Refs #215. Render deterministic command help without exposing Clap.
zackees added a commit to FastLED/cli that referenced this pull request Sep 13, 2026
Refs zackees/kernal-api#216. Point the migration override at the command-schema facade.
zackees added a commit to FastLED/cli that referenced this pull request Sep 13, 2026
Refs zackees/kernal-api#216. Parse toolchain and source command trees with the bounded kernel schema.
Refs #215. Enforce finite float values and defaults in the facade.
Refs #215. Keep internal options parseable while omitting them from help.
Refs #215. Add deterministic version metadata and rendering.
Refs #215. Apply option relations only to caller-supplied options.
Refs #215. Allow explicitly declared OS-string arguments without a lossy UTF-8 conversion while retaining bounded input validation and relation checks.
Refs #218. Provide owned errors, source chains, context helpers, and a Result alias without a third-party error carrier.
@zackees

zackees commented Sep 13, 2026

Copy link
Copy Markdown
Owner Author

Added the error-context migration support in b73b195, 9f978f2, and 073995a: bounded message construction, alternate source-chain rendering, Option/Result context, and generic ? conversions through the boxed facade boundary. Verified with soldr cargo test --features error-context error::tests::context_retains_source_and_bounds_display. fastled-wasm now consumes this facade without a direct anyhow dependency.

@zackees

zackees commented Sep 13, 2026

Copy link
Copy Markdown
Owner Author

Added b2d3ec7 for the requested automatic GitHub release flow with registry publishing deferred behind explicit repository variables. Focused release-workflow tests and YAML parsing pass.

zackees added a commit to FastLED/cli that referenced this pull request Sep 13, 2026
Refs zackees/kernal-api#216. Point the migration override at the command-schema facade.
zackees added a commit to FastLED/cli that referenced this pull request Sep 13, 2026
Refs zackees/kernal-api#216. Parse toolchain and source command trees with the bounded kernel schema.
@zackees
zackees marked this pull request as ready for review September 13, 2026 18:06
@zackees
zackees merged commit 784c56b into feat/json-documents Sep 13, 2026
51 of 52 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