Skip to content

Support optional-single keyed queries with explicit Scene inputs #39

Closed

Description

@woksin

User need

A modeled keyed query returning an optional single read model must be usable from a Scene screen: supply its explicit parameters, execute the actual registered Arc query, and display either the returned model or absence. A collection table is not an equivalent result shape.

Existing work to reuse

  • Scene model/engine/React and the named command/query binding registry.
  • Arc query proxies and Components runtime.
  • Forward explicit query arguments in Scene data tables #38 now forwards explicit argument objects through collection tables. It does not make an optional-single query compatible with a table.

Scope

  • Select or add the smallest reusable lookup/detail adapter around existing query execution, not per-screen generated TSX or another renderer.
  • Bind an exact registered query and explicit argument sources; retain parameter types and identity.
  • Define loading, validation, failure, result and not-found states without inventing another query.
  • Keep Scene's platform-neutral model distinct from the web adapter; do not silently settle Decide and document the component-library manifest authority across Scene and Components #27 through incidental schema changes.

Acceptance

  • Required projectId reaches the registered canonical ProjectById proxy unchanged.
  • Missing/invalid input prevents execution and is visible to the user.
  • A present ID displays the returned model; an absent valid ID displays not found.
  • Missing/ambiguous bindings fail visibly; no fallback to an unmodeled AllProjects query or guessed route.
  • Current collection-table and parameterless behavior remain compatible.
  • Adapter tests distinguish props/binding validation from actual Arc query execution; the latter is verified in standalone generated-app acceptance.

Part of #7. Standalone Stage artifact-profile composition and Studio coherent capture are separate integration work; this issue alone does not complete full-stack generation.

Activity

  1. woksin commented on Sep 16, 2026

    @woksin
    ContributorAuthor

    The collection-table prerequisite from #38 is released in v3.4.0 and its published runtime bundle was checked. Work here must still use an optional-single result contract and real registered query execution; do not reuse that table by wrapping absence/single results into invented collection semantics. Current focus is the smallest reusable lookup/detail adapter and its explicit-input/state tests.

  2. woksin commented on Sep 16, 2026

    @woksin
    ContributorAuthor

    Implementation scoping found a concrete existing boundary: current Scene binding resolution does not provide editable-input-to-query-argument wiring or a result data context for already-rendered external-component slots. The collection-table fix therefore cannot complete this issue. Next work must verify the published native Arc query lifecycle (context configuration, validation, cancellation and stale responses), then define the smallest reusable optional-single view plus explicit input/result binding. Any initial host-controlled argument implementation must be labeled partial, and acceptance still requires the editable input → ProjectById → result/not-found path through the real Scene renderer. No alternate AllProjects query, per-screen TSX generator or new transport is planned.

  3. woksin commented on Sep 16, 2026

    @woksin
    ContributorAuthor

    First concrete increment is in draft PR #41: an explicitly enabled singleResult view with exact registered-query selection, host-controlled immutable arguments, native Arc execution, safe scalar-own-field display and cancellation/stale-result guards. 39 native-client HTTP-boundary cases and 171 component tests pass locally, with independent runtime review. This issue remains open: editable parameter input/commit wiring, general result binding and the actual generated keyed-query vertical are not implemented by this increment.

  4. woksin commented on Sep 16, 2026

    @woksin
    ContributorAuthor

    PR #41 is now normally merged at 484ee93 after native Arc integration tests, forced clean type checks and full JavaScript/Storybook CI passed. It supplies the bounded singleResult component with host-committed arguments, visible states and safe own-field display, plus corrected typed native adapters and radio group naming without changing FieldBinding. Publication is running. This issue deliberately remains open: editable Scene input/commit wiring, broader result binding and the actual generated ProjectById application acceptance are not supplied by this component alone.

  5. woksin commented on Sep 16, 2026

    @woksin
    ContributorAuthor

    The bounded singleResult increment is now released as v3.5.0. All eight npm and both NuGet artifacts were registry/provenance-verified against merge 484ee93; the published components archive contains the lazy single-result execution and typed binding bridge. Required runtime peers remain optional for Arc-free preview. This establishes the released host-controlled view, not editable Scene input binding or deployed ProjectById acceptance; those remaining criteria keep this issue open.

  6. woksin commented on Sep 22, 2026

    @woksin
    ContributorAuthor

    PR #42 is normally merged, and the editable lookup capability is released in all eight npm packages at 3.6.0, with archive integrity and merge-commit provenance verified.

    • queryInputForm commits explicit string inputs on submit, supports native String/Guid query descriptors, preserves exact values, and reuses the existing optional-single execution and cancellation behavior.
    • Identity-aware registrations detect collisions and remain usable by existing query views; legacy registration replacement remains unchanged.
    • 265 component tests pass, including real Scene rendering with the generated Guid-query shape and native Arc execution at the HTTP boundary.

    This issue remains open: Stage composition and actual generated-application/browser acceptance are still being integrated. The successful publish job also accepted the two NuGet uploads, but their public registry availability is not yet verified; the npm capability does not depend on that pending verification.

  7. woksin commented on Sep 23, 2026

    @woksin
    ContributorAuthor

    The editable keyed lookup and explicit native command form are now released in Scene 3.7.0. Stage 3.22.0 composes both from an admitted canonical model. A local generated application built its backend and frontend and was driven in an isolated browser against the emitted Chronicle 18.2.0 kernel: a native command submit returned HTTP 200, querying the same Guid visibly displayed the projected name, a different valid Guid showed Not found, and invalid/empty inputs showed validation without another command POST. The generated planned files were unchanged during the run.

    This proves one canonical optional-single scalar display path, not general result composition, persistence after restart, production, or all Screenplay models. Keep #39 open for the broader result-binding/shape criteria rather than treating the bounded vertical as universal support.

  8. woksin commented on Sep 23, 2026

    @woksin
    ContributorAuthor

    Optional-single keyed queries with explicit inputs shipped in #41 and #42 and are released in 3.7.0. Keeping this open only for the broader result-binding criteria; anything not concrete enough to test will be closed rather than carried.

  9. woksin commented on Sep 30, 2026

    @woksin
    ContributorAuthor

    Optional-single keyed queries with explicit inputs shipped in #41 and #42 (editable keyed lookup, released in 3.6.0) and #43 (native command forms, released in 3.7.0). A present id displays the model, an absent valid id shows not found, and invalid or empty input is rejected before execution, as verified in a generated application. Result binding for command responses in continuations is tracked in #53.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions