Skip to content

Request options UI requirements

These requirements track the live implementation of the request options UI specification.

Stable IDs use the ROUI-NNN convention. Implementation values use Not started, In progress, Implemented, Deferred, or Removed. Verification values use Unverified, Automated, Human verified, or Not applicable. Documentation values use Pending, Documented, or Not applicable.

Existing contract

ID Requirement Implementation Verification Documentation Evidence
ROUI-001 A non-empty string array leaf generates one ordinary fixed-choice select element whose string values and labels preserve declaration order. Implemented Automated Documented array shorthand test, mixed-array filtering test, current package guide
ROUI-002 "string", "number", "boolean", and "checkbox" leaves generate text, number, and checkbox controls with labels derived from their request-option paths. Implemented Automated Documented string test, number test, boolean test, label test, current package guide
ROUI-003 Nested mappings generate flat element keys, nested config_path values, and defaults copied from the corresponding nested request_options values. Implemented Automated Documented nested label/default test, nested generation test, current package guide
ROUI-004 Flat UI overrides are removed from top-level config, inflated into their nested paths, deep-merged without discarding sibling request fields, and injected into the provider request payload. Implemented Automated Documented flat merge test, flat-key removal test, nested deep-merge test, sibling-preservation test, flat end-to-end flow, nested end-to-end flow
ROUI-005 Missing, empty, non-mapping, unknown, or partially invalid UI declarations do not prevent valid sibling elements from being generated. Implemented Automated Documented unknown leaf test, invalid nested subtree test, empty-list test, missing-config test, non-mapping test

Rich fixed-choice descriptor target

ID Requirement Implementation Verification Documentation Evidence
ROUI-006 A leaf object with type: "select" and a non-empty string options array is recognized as a fixed-choice descriptor rather than a nested request-options subtree. Implemented Automated Documented descriptor parity test, rich descriptor test
ROUI-007 A select descriptor without rich_ui: true generates the same ordinary element semantics as the existing string-array shorthand, including key, label, options, config_path, and nested default. Implemented Automated Documented descriptor parity test, current package guide
ROUI-008 A select descriptor with rich_ui: true keeps the ordinary element and adds a standard rich dropdown with the generated label and options, placements: ["composer"], default_pinned: true, show_label: false, and show_icon: false. Implemented Automated Documented generated schema test, reference-provider rich normalization test, fixed-choice rich normalization test, default-config application integration
ROUI-009 A rich select descriptor uses a static ordinary sliders fallback icon, text-only option labels equal to their values, no option tones or icons, and no custom-value declaration. Implemented Automated Documented generated schema test, mobile rich-control test
ROUI-010 Select descriptors work at supported nesting depths and preserve the existing flat-key inflation, sibling-preserving deep merge, and request-payload injection behavior. Implemented Automated Documented nested descriptor schema test, nested descriptor full-flow test
ROUI-011 Existing shorthand declarations retain their current generated schemas and runtime behavior after descriptor support is added. Implemented Automated Documented Complete request-options feature regression suite
ROUI-012 Mobile and desktop consume the generated reasoning-effort rich element through the standard config rich-UI contract and mutate the existing flat request-option override key without a request-options-specific renderer or action path. Implemented Automated Documented default-config application integration, fixed-choice rich normalization test, mobile rich-control test, desktop production ChatPane test
ROUI-013 Current package-user documentation describes shorthand leaves, nested paths, select descriptors, rich_ui: true, generated defaults, and the unchanged flat-key/deep-merge behavior after implementation. Implemented Automated Documented current package guide, generated schema test, nested full-flow test
ROUI-014 Malformed or unsupported leaf descriptors are ignored without preventing valid sibling shorthand or descriptor elements from being generated. Implemented Automated Documented invalid descriptor isolation test