Skip to content

feat: GUI domain selector with batched release evidence - #38

Merged
EauDoon merged 1 commit into
mainfrom
feat/gui-domain-selector
Sep 9, 2026
Merged

feat: GUI domain selector with batched release evidence#38
EauDoon merged 1 commit into
mainfrom
feat/gui-domain-selector

Conversation

@EauDoon

@EauDoon EauDoon commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Capability

The GUI can now select the synthetic action domain (refund or inventory
allocation), matching the CLI's --domain. Validated server-side with the
other run options and rejected when unknown.

Also batches the release evidence pending since PRs #32/#33 with the
substantive merges since, and states explicitly that browser tests are a
separate evidence category from component and orchestrator unit tests.

Verification

  • npm test: 107/107 (2 new: selector presence/defaults and the inline
    request shape; endpoint accepts inventory and rejects unknown domains).
  • npm run test:browser: 10/10, including a new real inventory journey
    asserting its own policy reference (aas-inventory-gate-v1), rail-review
    mode, and a recomputed digest match in the bindings panel.
  • npm run integration unchanged and green.

Devin Review

Track B parity: the CLI has supported --domain since the inventory
domain landed, but the GUI had no way to select it. Added a Domain
selector (default refund), validated on the server like every other run
option, and pushed through to the orchestrator.

Also records the batched release evidence for the review-workspace,
replay, integrator-example, settled-review, history/comparison, inventory,
and extension-guide merges, including the pending run-lifecycle and
replay-stdin entries, and distinguishes browser tests from component and
orchestrator unit tests.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

Comment thread bin/aas-gui.mjs
const selectedResponse = url.searchParams.get("response") ?? "pass";
const selectedFault = url.searchParams.get("fault") ?? "none";
const selectedProve = url.searchParams.get("prove") ?? "simulate";
const selectedDomain = url.searchParams.get("domain") ?? "refund";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Duplicate domains bypass validation

A request with domain=refund&domain=payments passes because get() inspects only the first value. The server runs a refund instead of rejecting the unknown domain.

Suggested change
const selectedDomain = url.searchParams.get("domain") ?? "refund";
const selectedDomains = url.searchParams.getAll("domain");
const selectedDomain = selectedDomains.length === 0 ? "refund" : selectedDomains.length === 1 ? selectedDomains[0] : null;
Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@EauDoon
EauDoon merged commit 696e1b8 into main Sep 9, 2026
6 of 10 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