Skip to content

FRR - #430

Open
andimarek wants to merge 477 commits into
airbnb:mainfrom
rstata:qplan
Open

FRR #430
andimarek wants to merge 477 commits into
airbnb:mainfrom
rstata:qplan

Conversation

@andimarek

@andimarek andimarek commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

🪄

Raymie Stata added 30 commits September 26, 2026 00:49
Retain the exact executor Throwable in EngineErrorData and carry it through resolver-input reads and GraphQL completion instead of collapsing it to an uninformative sentinel.

Enable the nested and list node failure feature tests, and update the execution inventory and validation counts.
Remove the four PathArgs disables now that Resolver26 grounds argument-bearing object-path providers correctly.

Retire the obsolete blocker category and update the execution support documentation and test counts.
andimarek and others added 10 commits September 30, 2026 22:21
Replace ViaductSchema delegation with an explicit three-reference holder. Keep the canonical lowered schema in TestWorld and Assumptions, move source-output conversion into SourceSchemaAdapter, and update parsing callers and benchmarks to use the source schema explicitly.

Validation: all qplan test suites, benchmark compilation, and ktlint passed. The model check also passes after removing unrelated exploratory tests. Full check remains blocked by the pre-existing ForbiddenImport finding in TypeCheckerStressCoverageTest.
Move the source/lowered schema holder and reusable selection parsing APIs into model main. Keep SDL setup, Fragment wrappers, and registry composition in test fixtures.

Use main-source field coordinate mapping in completion and limit model fixture dependencies to execution tests. Add regression coverage for schema preparation, parsing, and fixture-free completion wiring.
Move the ten registry preparation source files without changing their contents. The adjacent follow-up updates packages, dependencies between sources, callers, and focused tests.
Place resolver definitions, variable declarations, and registry assembly in model.registry. Expose resolverRegistryOf and move shared fragment/schema preparation helpers into main. Keep TestWorld composition, SDL restrictions, and missing-Query-resolver defaults in fixtures, delegating to the same factory without changing registry validation or dispatch.

Update callers and model boundary guidance. Add seven main-API-only tests covering registry execution, typename and node lowering, variable ownership, checker registration, missing resolvers, foreign coordinates, and demand cycles.

Validation: model, arbitrary, and execution checks; all qplan lint checks; documentation labels; JMH compilation; and fixture-free execution main classpaths pass. The semantics suite has one pre-existing aggregate coverage failure: resolver26-type-checker-success misses NESTED_PATH_VARIABLE for seed 6210546641266903896 at size 10:3:5. Exact replay produces identical failure details on the original a34d873 revision and after extraction.
Require explicit resolver ownership for unbound fragment variables and ordinary input data for bindings. Keep owner inference and DSL argument-error injection in fixtures, sharing parsed-fragment provider-path compilation with production.

Update callers with their real owners and add 11 regression tests. Verified the full qplan check task and semantics benchmark compilation.
Expose context-bound executor registry inputs and use them from the feature-test harness. Share variable compilation, invocation context, demand conversion, built-ins, and output normalization without fixture dependencies in main. Use the production EngineSelectionSet implementation.

Keep missing-resolver defaults, nullable-node completion, and synthetic inline Node IDs in fixtures. Promote fragment-document decoding to model parsing with explicit unbound-variable ownership. Document request-context lifetime and add nine adapter and parsing tests.

Validation: execution, model, and arbitrary checks, benchmark compilation, documentation checks, and main-classpath fixture audit passed. Full qplan checks encounter the pre-existing resolver26-type-checker-mixed aggregate coverage failure for seed -4391999910976896484, size 10:3:5, case all (FROM_QUERY_PATH_VARIABLE and NESTED_PATH_VARIABLE). The same replay fails on baseline ac708f8 with identical coverage counts; no generator or coverage assertions were changed.
Move production code into runtime2 main, keep development implementations and generators in unpublished support, and preserve test and benchmark coverage in their respective source sets.

Reuse core build conventions, wire runtime2 into the runtime publication, verify package and publication boundaries, and relocate documentation and developer tools while removing the separate qplan build.

Validation: full runtime2 check passed; 2,315 test cases preserved (2,089 executed, 226 skipped). Runtime publication checks passed. This change does not yet wire runtime2 into StandardViaduct.
@andimarek andimarek changed the title Qplan FRR Oct 2, 2026
andimarek and others added 19 commits October 2, 2026 01:37
Propagate the runtime2 configuration-cache opt-out to the publication verification entry task so composite builds succeed without changing the global cache policy.

Validated runtime2 check, engine API/runtime tests, and runtime2 publication verification after merging upstream main.
Thread the request-owned EngineExecutionContext through shared and child resolution scopes so field resolvers and checkers can expose it during invocation. Scope production variable-provider access to the invoking coroutine without replacing its Job or exception identity, and preserve explicit resolver-variable ownership when lowering document fragments.
Adapt production dispatcher registration and execution to runtime2, implement Engine API selection-set and root-reference execution, instrument dispatcher calls, and select engine2 from StandardViaduct wiring behind the construction flags.

This branch has not been deployed

No deployments
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.

2 participants