aboutsummaryrefslogtreecommitdiff
path: root/fixtures/acceptance
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-06-23 21:05:16 +0300
committerValentin Popov <valentin@popov.link>2026-06-23 21:05:16 +0300
commitf8e447ffee746cfe6580cc0e78a8a225aa39b546 (patch)
treee37ebc6c5edd908fd9f44cd3aaf7bffed8de8a88 /fixtures/acceptance
parent83d763dd70ef20b7d30a905c15cad3d5531ebc6a (diff)
downloadfparkan-f8e447ffee746cfe6580cc0e78a8a225aa39b546.tar.xz
fparkan-f8e447ffee746cfe6580cc0e78a8a225aa39b546.zip
feat: close stage 0-2 audit groundwork
Remove legacy SDL/OpenGL adapters from the workspace and introduce winit/Vulkan adapter boundaries for the rendered composition root. Add reproducible toolchain and xtask CI coverage for formatting, tests, clippy, docs, policy, deny, acceptance auditing, and hosted OS matrix evidence. Strengthen Stage 1 data contracts with byte-first paths, VFS hardening, structured diagnostics, RsLi writer/edit scaffolding, corpus reporting, and resource error classification. Advance Stage 2 asset preparation by moving mission loading through assets/runtime boundaries, materializing prototype graph data, preserving provenance, and adding inspection/viewer integration. Record the Stage 0-2 audit input, acceptance roadmap, coverage updates, and documentation notes for follow-up evidence.
Diffstat (limited to 'fixtures/acceptance')
-rw-r--r--fixtures/acceptance/coverage.tsv6
-rw-r--r--fixtures/acceptance/stage_0_2_roadmap.md367
2 files changed, 371 insertions, 2 deletions
diff --git a/fixtures/acceptance/coverage.tsv b/fixtures/acceptance/coverage.tsv
index 0985df6..bc67d01 100644
--- a/fixtures/acceptance/coverage.tsv
+++ b/fixtures/acceptance/coverage.tsv
@@ -21,7 +21,7 @@ S0-CORPUS-005 covered cargo test -p fparkan-corpus --offline fingerprint_changes
S0-CORPUS-006 covered cargo test -p fparkan-corpus --offline atomic_report_write
S0-CLI-001 covered cargo test -p fparkan-cli --offline stable_exit_codes_are_mapped
S0-CLI-002 covered cargo test -p fparkan-cli --offline accepts_json_format_option archive_json_has_schema_version
-S0-GL-001 covered cargo test -p fparkan-platform-sdl -p fparkan-render-gl --offline adapter_boundary_is_project_owned_unsafe_free
+S0-GL-001 covered cargo test -p fparkan-render-vulkan --offline backend_tracks_render_request_and_presents
S0-LIMIT-001 covered cargo test -p fparkan-binary --offline rejects_count_stride_overflow
S0-LIMIT-002 covered cargo test -p fparkan-binary --offline rejects_oversized_declared_allocation_before_read
L1-P1-NRES-001 covered cargo test -p fparkan-nres --offline licensed_corpora_nres_roundtrip_gates
@@ -71,6 +71,8 @@ S1-PATH-005 covered cargo test -p fparkan-path --offline rejects_escape
S1-PATH-006 covered cargo test -p fparkan-path --offline rejects_absolute_drive_and_nul_paths
S1-PATH-007 covered cargo test -p fparkan-path --offline join_under_keeps_normalized_path_below_root
S1-PATH-008 covered cargo test -p fparkan-path --offline original_separators_and_raw_bytes_are_preserved
+S1-H02 covered cargo test -p fparkan-path --offline accepts_non_utf8_legacy_bytes
+S1-M01 covered cargo test -p fparkan-vfs --offline memory_vfs_list_prefix_is_boundary_safe
S1-RSLI-001 covered cargo test -p fparkan-rsli --offline parses_minimal_empty_library
S1-RSLI-002 covered cargo test -p fparkan-rsli --offline rejects_invalid_header_fields
S1-RSLI-003 covered cargo test -p fparkan-rsli --offline rejects_entry_table_bounds
@@ -222,7 +224,7 @@ S3-RENDER-008 covered cargo test -p fparkan-render --offline recording_backend_s
S3-RENDER-009 covered cargo xtask policy
S3-GL-001 omitted permanent macOS Desktop GL 3.3 adapter is not implemented; historical CGL probe is retained as external evidence only
S3-GL-002 omitted outside the current macOS-focused goal scope; GLES2 remains documented for portable/non-macOS targets
-S3-GL-003 covered cargo test -p fparkan-render-gl --offline shader_compile_failure_diagnostic_contains_profile_and_log
+S3-GL-003 blocked legacy fparkan-render-gl adapter removed while Vulkan renderer path is being brought in as the stage-3 backend
S3-VIEWER-001 covered cargo test -p fparkan-viewer --offline model_fixture_uses_viewer_service_and_render_commands
S4-ANIM-001 covered cargo test -p fparkan-animation --offline anim_key24_decodes_signed_quaternion
S4-ANIM-002 covered cargo test -p fparkan-animation --offline frame_map_decodes_u16_and_uses_attr_frame_count
diff --git a/fixtures/acceptance/stage_0_2_roadmap.md b/fixtures/acceptance/stage_0_2_roadmap.md
new file mode 100644
index 0000000..f8ad743
--- /dev/null
+++ b/fixtures/acceptance/stage_0_2_roadmap.md
@@ -0,0 +1,367 @@
+# Stage 0-2 acceptance IDs
+
+`L0-COPYRIGHT-001`
+`L0-P1-001`
+`L0-P1-002`
+`L0-P2-001`
+`L0-P2-002`
+`S0-ARCH-001`
+`S0-ARCH-002`
+`S0-ARCH-003`
+`S0-ARCH-004`
+`S0-ARCH-005`
+`S0-ARCH-006`
+`S0-DIAG-001`
+`S0-DIAG-002`
+`S0-CORPUS-001`
+`S0-CORPUS-002`
+`S0-CORPUS-003`
+`S0-CORPUS-004`
+`S0-CORPUS-005`
+`S0-CORPUS-006`
+`S0-CLI-001`
+`S0-CLI-002`
+`S0-GL-001`
+`S0-LIMIT-001`
+`S0-LIMIT-002`
+`L1-P1-NRES-001`
+`L1-P2-NRES-001`
+`L1-P1-NRES-002`
+`L1-P2-NRES-002`
+`L1-P1-NRES-003`
+`L1-P2-NRES-003`
+`L1-P1-RSLI-001`
+`L1-P2-RSLI-001`
+`L1-RSLI-QUIRK-001`
+`L1-P1-PATH-001`
+`L1-P2-PATH-001`
+`S1-NRES-001`
+`S1-NRES-002`
+`S1-NRES-003`
+`S1-NRES-004`
+`S1-NRES-005`
+`S1-NRES-006`
+`S1-NRES-007`
+`S1-NRES-008`
+`S1-NRES-009`
+`S1-NRES-010`
+`S1-NRES-020`
+`S1-NRES-021`
+`S1-NRES-011`
+`S1-NRES-012`
+`S1-NRES-013`
+`S1-NRES-014`
+`S1-NRES-015`
+`S1-NRES-016`
+`S1-NRES-017`
+`S1-NRES-018`
+`S1-NRES-019`
+`S1-NRES-022`
+`S1-NRES-023`
+`S1-NRES-024`
+`S1-NRES-025`
+`S1-NRES-PROP-001`
+`S1-NRES-PROP-002`
+`S1-NRES-FUZZ-001`
+`S1-PATH-001`
+`S1-PATH-002`
+`S1-PATH-003`
+`S1-PATH-004`
+`S1-PATH-005`
+`S1-PATH-006`
+`S1-PATH-007`
+`S1-PATH-008`
+`S1-H02`
+`S1-M01`
+`S1-RSLI-001`
+`S1-RSLI-002`
+`S1-RSLI-003`
+`S1-RSLI-004`
+`S1-RSLI-005`
+`S1-RSLI-006`
+`S1-RSLI-007`
+`S1-RSLI-008`
+`S1-RSLI-009`
+`S1-RSLI-010`
+`S1-RSLI-011`
+`S1-RSLI-012`
+`S1-RSLI-013`
+`S1-RSLI-014`
+`S1-RSLI-015`
+`S1-RSLI-016`
+`S1-RSLI-017`
+`S1-RSLI-018`
+`S1-RSLI-019`
+`S1-RSLI-020`
+`S1-RSLI-021`
+`S1-RSLI-022`
+`S1-RSLI-023`
+`S1-RSLI-PROP-001`
+`S1-RSLI-FUZZ-001`
+`S1-RES-001`
+`S1-RES-002`
+`S1-RES-003`
+`S1-RES-004`
+`S1-VFS-001`
+`S1-VFS-002`
+`S1-VFS-003`
+`S1-VFS-004`
+`L2-P1-UNIT-001`
+`L2-P2-UNIT-001`
+`L2-P1-REG-001`
+`L2-P2-REG-001`
+`L2-P1-GRAPH-001`
+`L2-P2-GRAPH-001`
+`L2-P1-INHERIT-001`
+`L2-P2-INHERIT-001`
+`L2-P1-NONGEO-001`
+`L2-P2-NONGEO-001`
+`L2-P1-GRAPH-002`
+`L2-P2-GRAPH-002`
+`S2-REG-001`
+`S2-REG-002`
+`S2-REG-003`
+`S2-REG-004`
+`S2-UNIT-001`
+`S2-UNIT-002`
+`S2-UNIT-003`
+`S2-UNIT-004`
+`S2-UNIT-005`
+`S2-UNIT-006`
+`S2-UNIT-007`
+`S2-PROTO-001`
+`S2-PROTO-002`
+`S2-PROTO-003`
+`S2-PROTO-004`
+`S2-PROTO-005`
+`S2-PROTO-006`
+`S2-PROTO-007`
+`S2-PROTO-008`
+`S2-PROTO-009`
+`S2-PROTO-010`
+`S2-PROTO-011`
+`S2-PROTO-012`
+`S2-PROTO-013`
+`S2-PROTO-014`
+`S2-GRAPH-001`
+`S2-GRAPH-002`
+`S2-GRAPH-003`
+`S2-GRAPH-004`
+`S2-GRAPH-005`
+`S2-GRAPH-006`
+`S2-PROP-001`
+`S2-FUZZ-001`
+`L3-P1-MSH-001`
+`L3-P2-MSH-001`
+`L3-P1-TEXM-001`
+`L3-P2-TEXM-001`
+`L3-P1-MAT0-001`
+`L3-P2-MAT0-001`
+`L3-P1-WEAR-001`
+`L3-P2-WEAR-001`
+`L3-P1-ASSET-001`
+`L3-P2-ASSET-001`
+`L3-P1-CAPTURE-001`
+`L3-P2-CAPTURE-001`
+`S3-WEAR-001`
+`S3-WEAR-002`
+`S3-WEAR-003`
+`S3-WEAR-004`
+`S3-WEAR-005`
+`S3-MAT0-001`
+`S3-MAT0-002`
+`S3-MAT0-003`
+`S3-MAT0-004`
+`S3-MAT0-005`
+`S3-MAT0-006`
+`S3-MSH-001`
+`S3-MSH-002`
+`S3-MSH-003`
+`S3-MSH-004`
+`S3-MSH-005`
+`S3-MSH-006`
+`S3-MSH-007`
+`S3-MSH-008`
+`S3-MSH-009`
+`S3-MSH-010`
+`S3-MSH-011`
+`S3-MSH-012`
+`S3-MSH-013`
+`S3-MSH-014`
+`S3-MSH-015`
+`S3-MSH-016`
+`S3-MSH-017`
+`S3-MSH-PROP-001`
+`S3-MSH-FUZZ-001`
+`S3-TEXM-001`
+`S3-TEXM-002`
+`S3-TEXM-003`
+`S3-TEXM-004`
+`S3-TEXM-005`
+`S3-TEXM-006`
+`S3-TEXM-007`
+`S3-TEXM-008`
+`S3-TEXM-009`
+`S3-TEXM-010`
+`S3-TEXM-011`
+`S3-TEXM-012`
+`S3-TEXM-013`
+`S3-TEXM-FUZZ-001`
+`S3-MAT0-007`
+`S3-MAT-RESOLVE-001`
+`S3-MAT-RESOLVE-002`
+`S3-MAT-RESOLVE-003`
+`S3-MAT-RESOLVE-004`
+`S3-MAT-RESOLVE-005`
+`S3-RENDER-001`
+`S3-RENDER-002`
+`S3-RENDER-003`
+`S3-RENDER-004`
+`S3-RENDER-005`
+`S3-RENDER-006`
+`S3-RENDER-007`
+`S3-RENDER-008`
+`S3-RENDER-009`
+`S3-GL-001`
+`S3-GL-002`
+`S3-GL-003`
+`S3-VIEWER-001`
+`S4-ANIM-001`
+`S4-ANIM-002`
+`S4-ANIM-003`
+`S4-ANIM-004`
+`S4-ANIM-005`
+`S4-ANIM-006`
+`S4-ANIM-007`
+`S4-ANIM-008`
+`S4-ANIM-009`
+`S4-ANIM-010`
+`S4-ANIM-011`
+`S4-ANIM-012`
+`S4-ANIM-013`
+`S4-ANIM-014`
+`S4-ANIM-PROP-001`
+`S4-MAT-001`
+`S4-MAT-002`
+`S4-MAT-003`
+`S4-MAT-004`
+`S4-MAT-005`
+`S4-MAT-006`
+`S4-FX-001`
+`S4-FX-002`
+`S4-FX-011`
+`S4-FX-012`
+`S4-FX-013`
+`S4-FX-014`
+`S4-FX-015`
+`S4-FX-016`
+`S4-FX-017`
+`S4-FX-018`
+`S4-FX-019`
+`S4-FX-020`
+`S4-FX-021`
+`S4-FX-022`
+`S4-FX-023`
+`S4-FX-024`
+`S4-FX-FUZZ-001`
+`L4-P1-ANIM-001`
+`L4-P2-ANIM-001`
+`L4-P1-CAPTURE-001`
+`L4-P2-CAPTURE-001`
+`L4-P1-FX-001`
+`L4-P2-FX-001`
+`L4-P1-FX-002`
+`L4-P2-FX-002`
+`L4-FX-OP6-001`
+`L4-P1-EFFECT-001`
+`L4-P2-EFFECT-001`
+`S5-LMESH-001`
+`S5-LMESH-002`
+`S5-LMESH-003`
+`S5-LMESH-004`
+`S5-LMESH-005`
+`S5-LMESH-006`
+`S5-LMESH-007`
+`S5-LMESH-008`
+`S5-LMESH-009`
+`S5-LMAP-001`
+`S5-LMAP-002`
+`S5-LMAP-003`
+`S5-LMAP-004`
+`S5-LMAP-005`
+`S5-LMAP-006`
+`S5-LMAP-007`
+`S5-LMAP-008`
+`S5-LMAP-009`
+`S5-LMAP-010`
+`S5-LMAP-011`
+`S5-TERRAIN-001`
+`S5-TERRAIN-002`
+`S5-TERRAIN-003`
+`S5-TERRAIN-004`
+`S5-TMA-001`
+`S5-TMA-002`
+`S5-TMA-003`
+`S5-TMA-004`
+`S5-TMA-005`
+`S5-TMA-006`
+`S5-TMA-007`
+`S5-TMA-008`
+`S5-TMA-009`
+`S5-TMA-010`
+`S5-TMA-011`
+`S5-TMA-012`
+`S5-TMA-013`
+`S5-TMA-014`
+`S5-TMA-015`
+`S5-TMA-016`
+`S5-TMA-017`
+`S5-TMA-PROP-001`
+`S5-TMA-FUZZ-001`
+`S5-LOAD-001`
+`S5-LOAD-002`
+`S5-LOAD-003`
+`S5-LOAD-004`
+`S5-LOAD-005`
+`S5-LOAD-006`
+`S5-LOAD-007`
+`S5-LOAD-008`
+`S5-LOAD-009`
+`S5-LOAD-010`
+`S5-WORLD-001`
+`S5-WORLD-002`
+`S5-WORLD-003`
+`S5-WORLD-004`
+`S5-WORLD-005`
+`S5-WORLD-006`
+`S5-WORLD-007`
+`S5-WORLD-008`
+`S5-WORLD-009`
+`S5-WORLD-010`
+`S5-WORLD-011`
+`S5-WORLD-012`
+`S5-WORLD-013`
+`S5-WORLD-014`
+`S5-WORLD-015`
+`S5-WORLD-016`
+`S5-WORLD-017`
+`S5-WORLD-018`
+`S5-WORLD-019`
+`S5-WORLD-PROP-001`
+`L5-P1-LMESH-001`
+`L5-P2-LMESH-001`
+`L5-P1-LMAP-001`
+`L5-P2-LMAP-001`
+`L5-LMAP-POLY-001`
+`L5-P1-TMA-001`
+`L5-P2-TMA-001`
+`L5-P1-MISSION-001`
+`L5-P2-MISSION-001`
+`L5-P1-MISSION-002`
+`L5-P2-MISSION-002`
+`L5-P1-HEADLESS-001`
+`L5-P2-HEADLESS-001`
+`L5-P1-RENDER-001`
+`L5-P2-RENDER-001`
+`L3-DEVICE-001`
+`L5-RG40-001`