Skip to content

test(conformance): golden-transcript scenario format, newsletter seed, and outcome tool - #3876

Closed
gspencergoog wants to merge 52 commits into
a2ui-project:mainfrom
gspencergoog:test/e2e-scenario-format-and-outcome
Closed

gspencergoog wants to merge 52 commits into
a2ui-project:mainfrom
gspencergoog:test/e2e-scenario-format-and-outcome

Conversation

@gspencergoog

Copy link
Copy Markdown
Collaborator

Summary

Defines the golden-transcript end-to-end scenario format (action: e2e_scenario) in conformance/, adds the multi-turn newsletter_signup v1.0 seed scenario, and provides the renderer-visible outcome normalizer and comparison CLI (e2e_outcome.py and compare_e2e_outcome.py).

Changes

  • conformance/conformance_schema.json: Adds $defs/E2eScenarioTest, E2eTurn, E2eUiOp, E2eViewTrees, and E2eSource, and registers e2e_scenario in the conformance action enum.
  • conformance/e2e/newsletter_signup.yaml & conformance/tests/test_e2e_scenarios.py: Adds the multi-turn v1.0 newsletter signup scenario (with both direct_json and express streaming model chunks, expectWire, expectViewTree, uiOps, expectDataModel, and expectOutbound) and validates every scenario against the protocol JSON schemas and @a2ui/agent / a2ui.agent parsers.
  • conformance/scripts/e2e_outcome.py, conformance/scripts/compare_e2e_outcome.py, & conformance/tests/test_e2e_outcome.py: Computes the renderer-visible outcome of a scenario (normalizing model-chosen component, surface, and function call IDs while ignoring non-UI chat prose changes) and provides a CLI comparison tool for nightly drift detection.
  • conformance/manifest_corpora.json, conformance/README.md, & conformance/conformance_harness_implementation_guide.md: Registers the e2e corpus and documents the golden-transcript harness specification.

Testing

  • pytest conformance/tests/test_e2e_scenarios.py conformance/tests/test_e2e_outcome.py conformance/tests/test_conformance_yaml.py -q

… dispatch

Add suite_registry.dart and suite_registry_test.dart to map every conformance/core/*.yaml suite and action to its test file, record executed cases to A2UI_CONFORMANCE_MANIFEST_DIR, enforce known-key checks across all Dart core conformance harnesses, default matchesErrorFields onUnassertedField to fail, and verify the manifest in Flutter CI.
…ispatch

Have the Python core conformance harness emit executed-case manifest records when A2UI_CONFORMANCE_MANIFEST_DIR is set, validate every case and expectation block against known-key tables, verify that UNRUNNABLE_SUITES, UNSUPPORTED, and EXPECTED_FAILURES entries match loaded cases, and check the manifest in Python CI.
…it scaling and skip tables

Re-raise UnknownConformanceKeyError from expected-failure wrappers in Python, Dart, and Swift so YAML schema drift is not recorded as xfailed. Verify SKIP_TEST_NAMES in TypeScript verifyHarnessInvariants, add key validation and manifest recording to Swift MessageProcessorScalingConformanceTests, and update the Swift CI exclude reason.
Allow the payload key in Dart message_processor_scaling_conformance_test, handle .integer in ConformanceTestHelper.fromJSONValue, isolate ConformanceManifest.runAsync to MainActor, and unwrap optional action string interpolation in ValidatorConformanceTests.
…rrors

Wrap captured RendererError values in a reference box in ExpressionsConformanceTests so outboundListener does not mutate a local array while assertValidateStepError holds an active reference.
Add DataError case to ValidatorConformanceTests.assertErrorCategory so test_error_response_update_data_model_prototype_pollution verifies A2UIDataError.
Why: Wireit cached test:conformance with an empty output list, skipping conformance_test.mjs on cache hits and leaving A2UI_CONFORMANCE_MANIFEST_DIR empty when CI runs check_executed_cases.py.
What: Remove the files and output properties from the test:conformance Wireit script so it runs on every test invocation like test and test:timing.
…derer-conformance-manifests

# Conflicts:
#	typescript/renderers/angular/karma.conf.js
#	typescript/renderers/angular/src/adapter_conformance.spec.ts
…ftui-hosted-view-driver

# Conflicts:
#	typescript/renderers/angular/karma.conf.js
#	typescript/renderers/angular/src/adapter_conformance.spec.ts
…pter-conformance-expect-outbound

# Conflicts:
#	typescript/renderers/angular/karma.conf.js
#	typescript/renderers/angular/src/adapter_conformance.spec.ts
…rmance-manifests

# Conflicts:
#	typescript/renderers/lit/src/tests/adapter_conformance.test.ts
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@github-project-automation github-project-automation Bot moved this to Todo in A2UI Nov 3, 2026
@gspencergoog

Copy link
Copy Markdown
Collaborator Author

Consolidated into #3918.

🤖 Agent-generated

@github-project-automation github-project-automation Bot moved this from Todo to Done in A2UI Nov 3, 2026
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