Testing digest
A live view of corpus readiness, promotion gates, and scenario health. The corpus owns promotion; real-project rows are transfer validation only.
public://_hypermake/testing/latest.json readiness public://_hypermake/testing/readiness.json source data://testing-scenarios.json Open scenario index -> Active graph-owned corpus rows.
Expression and scope canaries.
Graph-owned source pages.
No transport, no hidden reloads.
Current Inspector evidence
The active Source DOM coherence plan promotes behavior only when the graph-owned digest has an explicit local evidence row. Detailed timings are exposed in the WebExtension Testing tab and the inspector digest JSON.
| Behavior | Status | Pass | Evidence | Signal |
|---|---|---|---|---|
| Resident corpus and browser runtime default | pass | 17/17 | fixtures/lzr-testing/rendered/public/_hypermake/testing/wr-browser-runtime-evidence.json | Promoted runtime evidence covers packet/projection contracts, JS stream runtime, native DOM deltas, generation storage, ServiceWorker diagnostics, and lzr-testing runtime route. |
| Admin vertical patch flow | pass | 17/17 | fixtures/lzr-testing/rendered/public/_hypermake/testing/wr-admin-vertical-evidence.json | Admin controls use typed data patches and committed effects against graph-owned data roots. |
| Testing digest current promotion rows | pass | 2/2 | fixtures/lzr-testing/rendered/public/_hypermake/inspector/testing/latest.json | Current promotion rows and non-promoting corpus rows are green. |
Promotion gates
Every promoted behavior must satisfy these gates in lzr-testing before project-specific rows can count as transfer validation.
| Gate | Requirement | Status |
|---|---|---|
| Correctness | source/data truth, rendered target, browser DOM, and diagnostics agree | specified |
| No hidden reload | atomic DOM mutations patch in place or report an explicit reload/refusal | specified |
| Server budget | warm mutation work stays under 5ms excluding transport and browser orchestration | specified |
| Browser budget | hydration and patch orchestration stay within page-class budgets | specified |
| Timeline accounting | all server/client stages add up without disappearing or double-counted events | specified |
| Transfer separation | Kunst and 744 rows remain visible and cannot promote core behavior alone | specified |
WR feature completion
A slice is only complete when the real path, graph-owned evidence, WebExtension visibility, diagnostics, and fallback/timing budgets all agree.
| Slice | Goal | Status | Product path | Evidence | Next action |
|---|---|---|---|---|---|
0 | Feature-completion gates | pass feature_complete | lzr-testing Testing page and installed WebExtension Testing tab | wrFeatureCompletion table | Use this matrix as the control board for Slice 1 request-mode promotion. |
1 | Request-mode render path | pass feature_complete | hypermake up / hypermake serve request handling | wrRequestModeEvidence table | Use Slice 1 request evidence as the default request-mode contract for Slice 2 scope/read promotion. |
2 | Early scope and typed reads | pass feature_complete | render lowering, Source/Scope/Data views, expression mutations | wrScopeReadEvidence table in lzr-testing and WebExtension Testing | Use Slice 2 scope/read identity as the input contract for Slice 3 tape-block execution promotion. |
3 | Tape-block execution | pass feature_complete | main render execution via RenderPreparedPageArtifacts | wrRenderEvidence table in lzr-testing and WebExtension Testing shows execution kind, by-reference bytes, dynamic entry-walk bytes, avoided walk bytes, and gates | Use Slice 3 tape-block execution counters as the performance/proof input for Slice 4 Inspector and WebExtension UX. |
4 | Inspector and WebExtension UX | pass feature_complete | installed WebExtension Source selected-object details, Scope WR projection, Data read-impact lens, Timeline WR projection lanes, Diagnostics WR rows, Testing tab, and graph-owned WR inspector artifacts | wrInspectorUXEvidence table in lzr-testing and WebExtension Testing; Source right rail renders WR identity trace; Scope renders WR projection from wr-inspector artifacts; Data lens renders WR read impact from backend source-map refs; Timeline appends backend WR artifact lanes; Diagnostics shows backend WR artifact rows; Testing reports WR artifact, scope, timeline, diagnostics, fallback accounting, installed-extension WR parity, browser data-fid coverage, and bytes | Use Slice 4 Inspector evidence as the visibility contract for Slice 5 mutation reconciliation. |
5 | Mutation reconciliation | pass feature_complete | MapBoundPatchProposal ->ValidatedMutationPlan ->CommittedMutationEffect | mutation and browser patch rows expose map-bound validation count, compatibility route count, fallback count, full-render/watch/reload counters, live patch counts, committed-effect status, and mutationWRCoordinateRows. | Slice 5 complete; continue with Slice 6 operation batching evidence. |
6 | Operation batching | pass feature_complete | image-derivative scheduler execution via govips batch manifest | wrOperationBatchingEvidence in public testing latest and installed WebExtension Testing digest | Slice 6 complete; use operation-batching counters as scheduler evidence while Slice 7 promotes dev-service residency. |
7 | Dev-service residency | pass feature_complete | hypermake up, warm startup, inspector/session/readiness | wrDevServiceResidencyEvidence in public testing latest and installed WebExtension Testing digest | Slice 7 complete; use dev-service residency and cache canary evidence as the runtime baseline for Slice 8 browser LZR runtime. |
8 | Browser LZR runtime | pass feature_complete | ServiceWorker last-mile LZR templating | wrBrowserRuntimeEvidence in public testing latest and installed WebExtension Testing digest | Use the browser runtime route as the baseline for Slice 9 admin patch acknowledgement and cross-surface propagation. |
9 | Browser admin vertical | pass feature_complete | lzr-testing mock admin area | wrAdminVerticalEvidence in public testing latest and installed WebExtension Testing digest | Slice 9 promotion evidence is complete; continue with Slice 10 closeout so the feature set remains auditable, repeatable, and documented. |
10 | Testing and documentation evidence | pass feature_complete | graph-owned Testing digest, lzr-testing docs/scenarios, WebExtension Testing tab | wrSlice10CloseoutEvidence is embedded in public testing latest and installed WebExtension Testing digest; installed digest now builds from graph-owned lzr-testing evidence instead of meta/plans/evidence or 744 readiness scans; static rendered/public/testing.html consumes the same inspector digest alias for active scenario row links | Feature-completion plan is closed; keep wr-slice10-closeout-evidence as the regression gate for Testing digest, row links, project-independent scenarios, and documentation visibility. |
WR request-mode evidence
Served HTML targets must expose WR sidecar accounting at the request boundary. Missing sidecars are visible fallbacks, not hidden work.
| Case | Target | Status | Mode | Fallback | Blocks | Occurrences | Gates |
|---|---|---|---|---|---|---|---|
scope.lineage | rendered/public/scope/lineage.html | pass | wr_graph_sidecar | none | 274 | 843 | clear |
data.data-root | rendered/public/data/data-root.html | pass | wr_graph_sidecar | none | 146 | 383 | clear |
stress.data-heavy | rendered/public/stress/data-heavy.html | pass | wr_graph_sidecar | none | 314 | 1142 | clear |
WR tape-block execution evidence
Slice 3 promotion requires observed default execution where proof allows it, plus structured fallback accounting when dynamic blocks still require entry walking.
| Case | Target | Status | Execution | Bytes by ref | Dynamic walk | Avoided walk | Occurrences | Blocks | Fallback | Gates |
|---|---|---|---|---|---|---|---|---|---|---|
scope.lineage | rendered/public/scope/lineage.html | pass | default_execution_observed | 5902 | 6752 | 5902 | 843 | 274 | rendered_mixed_by_ref | clear |
data.data-root | rendered/public/data/data-root.html | pass | default_execution_observed | 3311 | 2049 | 3311 | 383 | 146 | rendered_mixed_by_ref | clear |
stress.data-heavy | rendered/public/stress/data-heavy.html | pass | default_execution_observed | 6661 | 4844 | 6661 | 1142 | 314 | rendered_mixed_by_ref | clear |
WR Inspector UX evidence
Source-map artifacts must carry backend-authored WR projection and per-fragment WR refs so the WebExtension can display identity without reconstructing it. Compatibility fallback must be counted and intentionally accepted.
| Case | Target | Status | WR artifact | Scope WR | Timeline WR | Diagnostics WR | Fallbacks | WR coverage | Fragments | Blocks | Resolved | Occurrences | Data lens | Selector | Gates |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scope.lineage | rendered/public/scope/lineage.html | pass | yes 3700772 | yes 46 | yes 1 | yes 4 | backend_projection_default c=0 cr=0 m=0 | 1000 | 92 / 92 | 274 | 1 | 843 | yes | yes | clear |
WR scope/read evidence
Resolved scope, typed reads, and fallback diagnostics are now tracked from graph-owned tape ledgers before Slice 2 promotes the same identity one phase earlier.
| Case | Target | Status | Scopes | Data reads | Resource reads | Bindings | Diagnostics |
|---|---|---|---|---|---|---|---|
scope.lineage | rendered/public/scope/lineage.html | pass | 1 | 46 | 46 | 46 | 7 |
testing.scenarios | rendered/public/testing/scenarios.html | pass | 1 | 879 | 879 | 879 | 402 |
data.data-root | rendered/public/data/data-root.html | pass | 1 | 44 | 44 | 44 | 5 |
expressions.mixed | rendered/public/expressions/mixed.html | pass | 1 | 41 | 41 | 41 | 7 |
controls.branching | rendered/public/controls/branching.html | pass | 1 | 30 | 30 | 30 | 6 |
proof.missing-output-span | rendered/public/proof/missing-output-span.html | pass | 1 | 29 | 29 | 29 | 2 |
stress.data-heavy | rendered/public/stress/data-heavy.html | pass | 1 | 158 | 158 | 158 | 52 |
WR browser runtime evidence
Promoted browser runtime coverage: packet/projection contracts, the JS stream runtime, native delta-to-DOM operations, generation-safe browser storage, ServiceWorker diagnostics/patch sync, and the lzr-testing runtime route are tested.
| Gate | Status | Signal |
|---|---|---|
executable_stream_packet_contract | pass | ServiceWorkerTapePacket and BrowserProjectionPacket validate compact backend-issued dictionaries. |
evaluated_snapshot_compatibility_subset | pass | Go runtime can assemble the current evaluated projection subset. |
server_required_fallback_visible | pass | Server-only payloads and unsafe postprocesses remain visible blockers. |
stale_generation_refusal | pass | Stale runtime roots and delta base mismatches fail closed. |
missing_payload_refusal | pass | Missing cached payloads fail closed. |
occurrence_mapping | pass | Rendered offsets resolve back to occurrence + resolved fragment + tape block. |
first_class_executable_control_nodes | pass | Packet carries backend-issued if/else branch sub-plans and foreach item templates with reference validation. |
js_stream_runtime_prototype | pass | Browser-native JS runtime evaluates backend-issued if/foreach control-node packets and linear tape compatibility without parsing LZR source. |
delta_to_dom_mapping | pass | Runtime plans stream deltas as native DOM operations and applies them with textContent/setAttribute/removeAttribute/classList/insertBefore/remove without broad innerHTML. |
browser_storage_generation | pass | Runtime can persist and restore generation-keyed records, refuse runtime-root mismatches, refuse stale generation updates, and exposes path-owned IndexedDB records plus cache-shaped browser paths. |
webextension_shared_runtime_bridge | pass | The WebExtension panel exposes a host-adapter bridge that loads the shared runtime/browser/lzr-runtime.js distribution from a generated vendor asset instead of forking runtime semantics. |
serviceworker_route_diagnostics | pass | lzr-testing ships a ServiceWorker fetch route with runtime diagnostics/probe endpoints. |
serviceworker_patch_sync | pass | ServiceWorker accepts a typed runtime patch packet, stores it locally under path-owned IndexedDB records, syncs through the mutation-shaped inspector endpoint, and exposes the changed data through the WASM-backed route state. |
lzr_testing_runtime_canaries | pass | Headless Chromium executes the bang-owned lzr-testing runtime route and proves ServiceWorker diagnostics, local patch storage, narrow backend sync, and WASM route-state. |
WR admin vertical evidence
Slice 9 starts with graph-owned isolated write-root artifacts: admin controls construct typed data patches, backend MapBound validation/commit returns a real committed-effect acknowledgement, canonical fixtures remain unchanged, and cross-surface propagation is verified against shared data roots.
| Gate | Status | Detail |
|---|---|---|
admin_client_graph_route_owner | pass | pass |
admin_packet_runtime_only | pass | pass |
admin_no_custom_spa_runtime_gate | pass | pass |
admin_isolated_write_root | pass | pass |
admin_typed_patch_contract | pass | proposal-admin-82f693bb307842fe:effect |
admin_no_fixture_residue | pass | pass |
admin_no_hidden_reload | pass | pass |
admin_no_fake_backend_or_dom_planner | pass | pass |
admin_backend_ack_budget | committed_fast | proposal-admin-82f693bb307842fe:effect |
admin_cross_surface_propagation | pass | pass |
admin_stale_generation_refusal | rejected_before_write | stale_edit_state |
admin_serviceworker_storage_generation_gate | pass | pass |
admin_journal_record_replay | pass | proposal-admin-82f693bb307842fe:effect |
admin_browser_runtime_e2e | pass | pass |
admin_browser_route_runtime_vertical | pass | pass |
admin_bootstrap_first_install_runtime | pass | pass |
admin_live_backend_mutation | pass | mut-20260813-062651-209796902:data-plan-map-bound:effect |
WR Slice 10 closeout evidence
Closeout checks keep the Testing digest honest: promoted rows must be graph-owned, real-project rows must stay transfer-only, links must be present, and stale evidence must be visible.
public digest inspector digest scenario index docs
| Gate | Status | Signal |
|---|---|---|
graph_owned_evidence_targets | pass | clear |
promoted_feature_rows_current | pass | clear |
testing_slice_visible_as_open_closeout | pass | clear |
scenario_rows_have_metadata | pass | clear |
migration_ledger_resolved_to_local_corpus | pass | clear |
transfer_rows_non_promoting | pass | clear |
fixture_map_links_present | pass | clear |
testing_tab_closeout_ready | pass | clear |
static_testing_page_links_present | pass | clear |
public_aggregate_includes_inspector_digest_alias | pass | clear |
Scenario evidence rows
This table is the current promotion surface from the graph-owned inspector digest. Each row links to scenario, source, rendered output, evidence, diagnostics, and plan slice where available.
Specified scenario rows
Authored scenario intent remains visible here; promotion evidence comes from the graph-owned scenario evidence table above.
| ID | Page | Family | Origin | Effect | Correctness | Budget | Budget status |
|---|---|---|---|---|---|---|---|
corpus.h1.text | basics | text | webextension_panel | replace_payload | not_run | fast | not_run |
corpus.h1.id | basics | source-attribute | webextension_panel | replace_payload | not_run | fast | not_run |
corpus.h2.class-token | basics | class-token | webextension_panel | replace_payload | not_run | fast | not_run |
corpus.column.width | componentBound | component-prop-binding | webextension_panel | replace_payload | not_run | fast | not_run |
corpus.expression.echo | expressions | expression-echo | webextension_panel | rerender_payload | not_run | fast | not_run |
corpus.expression.control-if | controls | control-if | webextension_panel | refresh_control_frame | not_run | fast | not_run |
corpus.proof.data-h1-expression | proof | rendered-effect-proof | webextension_panel | rerender_payload | not_run | fast_refusal_or_fast | not_run |
corpus.proof.component-text | proof | rendered-effect-proof | webextension_panel | rerender_payload | not_run | fast_refusal_or_fast | not_run |
corpus.proof.unrelated-rendered-refusal | proofUnrelated | rendered-effect-proof | direct_inspector_api | visible_refusal | not_run | fast_refusal | not_run |
corpus.stale.edit-shape-refusal | basics | stale-prepared-mutation | direct_inspector_api | visible_refusal | not_run | fast_refusal | not_run |
corpus.stale.payload-generation-refusal | basics | stale-prepared-mutation | direct_inspector_api | visible_refusal | not_run | fast_refusal | not_run |
corpus.attr.style | basics | style-declaration | direct_inspector_api | replace_payload | not_run | fast | not_run |
corpus.attr.dimension | componentBound | dimension | direct_inspector_api | refresh_structural_frame | not_run | fast | not_run |
corpus.attr.media | proof | media-reference | direct_inspector_api | replace_payload | not_run | fast | not_run |
corpus.attr.safe-url | proof | safe-url | direct_inspector_api | replace_payload | not_run | fast | not_run |
corpus.data.scalar | data | data-scalar | direct_inspector_api | rerender_payload | not_run | fast | not_run |
corpus.control.if | controls | control-if | webextension_panel | refresh_control_frame | not_run | fast | not_run |
corpus.control.foreach | controls | control-foreach | direct_inspector_api | refresh_control_frame | not_run | fast | not_run |
corpus.scope.direct-data | scopeLineage | resolved-scope | go_unit_and_render_canary | resolved_scope_projection | not_run | identity | not_run |
corpus.scope.conditional | scopeLineage | conditional-scope | go_unit_and_render_canary | resolved_scope_projection | not_run | identity | not_run |
corpus.scope.loop-local | scopeLineage | foreach-local-scope | go_unit_and_render_canary | resolved_scope_projection | not_run | identity | not_run |
corpus.scope.component-local | scopeLineage | component-local-scope | go_unit_and_render_canary | resolved_scope_projection | not_run | identity | not_run |
corpus.scope.ambiguous-lineage | scopeLineage | ambiguous-lineage | go_unit_and_render_canary | visible_diagnostic | not_run | identity | not_run |
corpus.scope.unsafe-target-fallback | scopeLineage | unsafe-target-fallback | go_unit_and_render_canary | visible_diagnostic | not_run | identity | not_run |
corpus.component.wrapper-text | componentBound | component-wrapper | direct_inspector_api | replace_payload | not_run | fast | not_run |
corpus.slot.fallback-text | slots | slot-fallback | direct_inspector_api | replace_payload | not_run | fast | not_run |
corpus.slot.inserted-text | slots | slot-inserted | direct_inspector_api | replace_payload | not_run | fast | not_run |
corpus.proof.component-h1 | proof | rendered-effect-proof | webextension_panel | rerender_payload | not_run | fast_refusal_or_fast | not_run |
corpus.source-error.malformed-attribute | errors | source-error-fragment | filesystem_ide_watcher | visible_diagnostic | not_run | fast_refusal | not_run |
corpus.source-editor.context-menu | sourceEditor | source-editor-action | webextension_panel | mixed | not_run | fast_refusal_or_fast | not_run |
corpus.source-editor.drag-drop | sourceEditor | structural-edit | webextension_panel | visible_refusal_or_structural_refresh | not_run | fast_refusal | not_run |
corpus.ide.h1-text | basics | ide-two-way | filesystem_ide_watcher | replace_payload | not_run | fast | not_run |
corpus.ide.h1-id | basics | ide-two-way | filesystem_ide_watcher | replace_payload | not_run | fast | not_run |
corpus.ide.expression | expressions | ide-two-way | filesystem_ide_watcher | rerender_payload | not_run | fast | not_run |
corpus.hydration.large-data | stress | hydration-budget | webextension_panel | lazy_graph_owned_data | not_run | hydration | not_run |
corpus.wr.recipe-data-split | fragmentTape | wr-fragment-identity | go_unit_and_render_canary | reuse_recipe_change_resolved_scope | not_run | identity | not_run |
site.address-audit | site | site-honesty | graph_canary | all_addresses_resolve | not_run | fast | not_run |
site.command-audit | site | site-honesty | graph_canary | all_commands_on_surface | not_run | fast | not_run |
site.concept-glossary | docsProtocols | site-honesty | graph_canary | definitions_quote_binary | not_run | fast | not_run |
site.style-lint | site | site-honesty | graph_canary | no_phantom_tokens_and_debt_within_budget | not_run | fast | not_run |
site.page-weight | site | site-honesty | graph_canary | pages_and_assets_within_byte_budget | not_run | fast | not_run |
site.icon-audit | site | site-honesty | graph_canary | all_icons_vendored_and_render_nonempty | not_run | fast | not_run |
controls.branching-truth | controls | site-honesty | graph_canary | branch_released_present_fallback_and_archived_absent | not_run | fast | not_run |
site.tape-explainer | docsFragmentTape | site-honesty | graph_canary | all_segments_linked_or_composite_zero_gaps | not_run | fast | not_run |
site.tape-explainer-e2e | docsFragmentTape | site-honesty | browser_canary | hover_focus_pin_link_within_16ms_and_static_stream_without_js | not_run | interaction_16ms | not_run |
site.inspector-preview | inspector | site-honesty | graph_canary | quadrants_match_source_data_reads_rendered_state | not_run | fast | not_run |
site.inspector-timeline | inspector | site-honesty | graph_canary | lanes_match_latest_inspector_run_or_declared_unavailable | not_run | fast | not_run |
site.playground | playground | site-honesty | browser_canary | data_edit_rerenders_via_engine_with_stage_timings_no_serviceworker | not_run | render_50ms_roundtrip | not_run |
WR fragment identity evidence
These rows track the resolved-fragment/tape work that is now visible in the local corpus instead of only in package-local tests.
| ID | Page | Fixture | Assertion | Occurrences | Blocks | Projection | Query | Status |
|---|---|---|---|---|---|---|---|---|
wr.recipe-data-split | fragmentTape | internal/lzr/tapeledger.TestWRDynamicSlotIdentityKeepsRecipeStableWhenReadDigestChanges | same expression and read shape reuses FragmentRecipeID/TapeBlockID while changed read digest allocates new DataReadID, ResolvedScopeID, and ResolvedFragmentID | n/a | n/a | n/a | n/a | pass |
wr.sidecar-data-split | fragmentTape | internal/lzr/client.TestRenderPageFileWRSidecarCacheHitsButResolvedScopeChangesAfterDataChange | source/doctrine sidecar cache hits across data value changes while resolved-scope and resolved-fragment fingerprints change | n/a | n/a | n/a | n/a | pass |
wr.scope-lineage-corpus | scopeLineage | fixtures/lzr-testing/src/scope/lineage.html | local corpus page covers direct, conditional, loop-local, component-local, ambiguous, and unsafe resolved-scope lineage cases | n/a | n/a | n/a | n/a | pass |
wr.fragment-graph-sidecar | scopeLineage | cache/hypermake/lzr/fragment-graphs/rendered/public/scope/lineage.fragment-graph.json | compact graph-owned WR fragment sidecar carries runtime-root packet metadata and WR occurrence coordinates without decoding the full tape-ledger projection | 887 | 43 | 340773 | 6885 | pass |
wr.data-fanout-impact-budget | scopeLineage | data/campaign.json | data-file fanout loads small data-read sidecars before WR coordinates and stays below the reverse-impact query budget | 10 | 10 | 11040 | 84077 | pass |
Transfer validation rows
Transfer rows prove that corpus behavior survives real projects. They do not promote core behavior by themselves.
| Project | Scope | Linked corpus | Status | Reason |
|---|---|---|---|---|
| kunst-sehen | h1 text/id/class and column width canaries | basics/text-and-attributes, components/component-bound | transfer | real-project regression surface after corpus proof |
| 744-ads | large source maps, campaign data, route captures, and legacy template cleanup | stress/data-heavy, proof/missing-output-span, data/data-root | transfer | real-project scale and migration proof after corpus proof |
Migration ledger
Historical Kunst, 744, and plan-evidence rows are either ported into local fixtures, merged into broader corpus rows, or kept as transfer-only checks.
| Row | Owner | Decision | Local scenario | Fixture |
|---|---|---|---|---|
webextension_h1_text | kunst | ported_to_lzr_testing | corpus.h1.text | fixtures/lzr-testing/src/basics/text-and-attributes.html |
webextension_h1_id_class | kunst | ported_to_lzr_testing | corpus.h1.id | fixtures/lzr-testing/src/basics/text-and-attributes.html |
webextension-standard:kunst-reconciliation-panel | kunst | merged_into_local_fixture | corpus.h1.id | fixtures/lzr-testing/src/basics/text-and-attributes.html |
blocker:webextension-standard | kunst | merged_into_local_fixture | corpus.h1.id | fixtures/lzr-testing/src/basics/text-and-attributes.html |
webextension_column_width_toggle | kunst | ported_to_lzr_testing | corpus.column.width | fixtures/lzr-testing/src/components/component-bound.html |
webextension_h2_class | kunst | ported_to_lzr_testing | corpus.h2.class-token | fixtures/lzr-testing/src/basics/text-and-attributes.html |
webextension_data_scalar | synthetic | ported_to_lzr_testing | corpus.data.scalar | fixtures/lzr-testing/src/data/data-root.html |
webextension_h2_expression | kunst | ported_to_lzr_testing | corpus.expression.echo | fixtures/lzr-testing/src/expressions/mixed.html |
webextension_set_expression | kunst | ported_to_lzr_testing | expression-set-literal-single-use | fixtures/lzr-testing/src/expressions/mixed.html |
ide_supported_reconciliation | plan_evidence | ported_to_lzr_testing | corpus.ide.h1-text | fixtures/lzr-testing/src/basics/text-and-attributes.html |
ide_accounting_complete | plan_evidence | ported_to_lzr_testing | corpus.ide.expression | fixtures/lzr-testing/src/expressions/mixed.html |
no_hidden_reload_fast_classification | plan_evidence | ported_to_lzr_testing | corpus.proof.unrelated-rendered-refusal | fixtures/lzr-testing/src/proof/unrelated-rendered.html |
inspector-744-readiness:hydration-budget | 744 | kept_as_transfer_validation_only | corpus.hydration.large-data | fixtures/lzr-testing/src/stress/data-heavy.html |
inspector-744-readiness:mutation-transport | 744 | kept_as_transfer_validation_only | corpus.proof.unrelated-rendered-refusal | fixtures/lzr-testing/src/proof/unrelated-rendered.html |
source-error-performance:* | plan_evidence | ported_to_lzr_testing | corpus.source-error.malformed-attribute | fixtures/lzr-testing/src/errors/malformed-repair.html |
recent:* | plan_evidence | merged_into_local_fixture | transfer-only | n/a |
coverage-hole:* | hole | retired_with_reason | transfer-only | n/a |
Fixture map
Promotion fixtures live in fixtures/lzr-testing/src. Real projects are only checked after the local row is represented here.
| Fixture | Source | Rendered | Families | Scenarios |
|---|---|---|---|---|
basics-text-and-attributes | fixtures/lzr-testing/src/basics/text-and-attributes.html | rendered/public/basics/text-and-attributes.html | text, source-attribute, class-token, style-declaration, safe-url, mixed-text-attribute-context | corpus.h1.text, corpus.h1.id, corpus.h2.class-token, corpus.attr.style, corpus.ide.h1-text, corpus.ide.h1-id |
expressions-mixed | fixtures/lzr-testing/src/expressions/mixed.html | rendered/public/expressions/mixed.html | expression-echo, set-definition, jq-expression, multiple-expressions-same-text-node, ide-expression | corpus.expression.echo, corpus.ide.expression, expression-echo-h2-simple, expression-echo-two-expressions-first, expression-set-literal-single-use, expression-set-jq-length |
controls-branching | fixtures/lzr-testing/src/controls/branching.html | rendered/public/controls/branching.html | control-if, control-elseif, control-else, control-foreach, control-shape-refresh | corpus.control.if, corpus.control.foreach, expression-control-if-condition |
component-bound | fixtures/lzr-testing/src/components/component-bound.html | rendered/public/components/component-bound.html | component-prop-binding, component-wrapper, dimension, component-attribute-expression | corpus.column.width, corpus.component.wrapper-text, corpus.attr.dimension, expression-attr-component-width, expression-set-used-in-component-attr |
data-root | fixtures/lzr-testing/src/data/data-root.html | rendered/public/data/data-root.html | data-scalar, data-tab, json-patch-data, data-rendered-fanout | corpus.data.scalar |
scope-lineage | fixtures/lzr-testing/src/scope/lineage.html | rendered/public/scope/lineage.html | resolved-scope, direct-data-lineage, conditional-scope, foreach-local-scope, component-local-scope, ambiguous-lineage, unsafe-target-fallback | corpus.scope.direct-data, corpus.scope.conditional, corpus.scope.loop-local, corpus.scope.component-local, corpus.scope.ambiguous-lineage, corpus.scope.unsafe-target-fallback |
source-editor-actions | fixtures/lzr-testing/src/source-editor/actions.html | rendered/public/source-editor/actions.html | source-editor-action, context-menu, copy-delete-insert-attribute, structural-edit, drag-drop-node | corpus.source-editor.context-menu, corpus.source-editor.drag-drop |
malformed-repair | fixtures/lzr-testing/src/errors/malformed-repair.html | rendered/public/errors/malformed-repair.html | source-error-fragment, malformed-source-recovery, escaped-quotes, manual-ide-malformed-source | corpus.source-error.malformed-attribute |
whitespace-handling | fixtures/lzr-testing/src/docs/whitespace-handling.html | rendered/public/docs/whitespace-handling.html | whitespace, inline-span-spacing, browser-like-text-spacing | corpus.source-error.whitespace-inline-span |
missing-output-span | fixtures/lzr-testing/src/proof/missing-output-span.html | rendered/public/proof/missing-output-span.html | rendered-effect-proof, proof-refusal, native-coarse-proof-gap, media-reference | corpus.proof.data-h1-expression, corpus.proof.component-text, corpus.proof.component-h1, corpus.attr.media, corpus.attr.safe-url |
unrelated-rendered-refusal | fixtures/lzr-testing/src/proof/unrelated-rendered.html | rendered/public/proof/unrelated-rendered.html | rendered-effect-proof, visible-refusal, stale-prepared-mutation | corpus.proof.unrelated-rendered-refusal, corpus.stale.edit-shape-refusal, corpus.stale.payload-generation-refusal |
stress-data-heavy | fixtures/lzr-testing/src/stress/data-heavy.html | rendered/public/stress/data-heavy.html | hydration-budget, large-data, template-tree-size, campaign-style-route-data | corpus.hydration.large-data |
Expression taxonomy
Expression rows separate normal fast-path expectations from known control-flow and foreach gaps.
| ID | Category | Context | Expected |
|---|---|---|---|
expression-echo-h2-simple | expression_echo_text | standalone_text | pass |
expression-echo-h2-mixed-text | expression_echo_text | single_expression_mixed_text | pass |
expression-echo-two-expressions-first | expression_echo_text | multiple_expressions_same_text_node_first | pass |
expression-echo-two-expressions-second | expression_echo_text | multiple_expressions_same_text_node_second | pass |
expression-control-if-condition | control_expression | if_condition_source_expression | pass |
expression-echo-string-escape | expression_echo_text | html_escape_literal | pass |
expression-echo-string-concat | expression_echo_text | string_concat | pass |
expression-echo-arithmetic-parentheses | expression_echo_text | arithmetic_parentheses | pass |
expression-echo-foreach-index | foreach_expression | foreach_index_text | refuse |
expression-echo-foreach-item-field | foreach_expression | foreach_item_field_text | refuse |
expression-set-literal-single-use | set_definition | single_text_use_literal | pass |
expression-set-derived-single-use | set_definition | single_text_use_derived | pass |
expression-set-jq-length | set_definition | single_text_use_jq_data | pass |
expression-set-used-in-native-attr | set_definition | single_native_attr_use | pass |
expression-set-used-in-component-attr | set_definition | single_component_attr_use | pass |
expression-set-multiple-same-context | set_definition | multiple_same_text_context | pass |
expression-set-mixed-text-and-attr | set_definition | mixed_text_and_attr_context | pass |
expression-set-controls-if | set_definition | control_if_shape | refuse |
expression-set-controls-foreach | set_definition | control_foreach_items_shape | refuse |
expression-attr-native-id | attribute_expression | native_id | pass |
expression-attr-native-class | attribute_expression | native_class | pass |
expression-attr-native-href | attribute_expression | native_href | pass |
expression-attr-component-width | attribute_expression | component_width | pass |
expression-attr-component-class | attribute_expression | component_class | pass |
expression-attr-foreach-alt | foreach_expression | foreach_attr_alt | refuse |
expression-attr-foreach-src | foreach_expression | foreach_attr_src | refuse |