Blacksite/docs/editor/debt-audit.md

4.4 KiB
Raw Blame History

Editor zero-debt audit checklist

Active plan — describes incomplete release/debt gate work. Current shipped behavior is indexed in the canonical documentation.

Living checklist for the production editor program (ADR 0012). Update when closing a phase or removing debt.

Must not ship (gate before phase sign-off)

Item Status Notes
bevy_inspector_egui entity dump on default Inspector tab Done actor_inspector only; bevy-inspector-egui kept for SelectedEntities
Monolithic hydrate_authoring_entities Done crates/shared/src/hydration/* modules
Optional / inferred ActorKind as long-term save path Done Schema v2 + migration; save validates
Hydrated components in committed .scn.ron CI scene::validate_scene_authoring_only + repo_editor_scene_has_no_hydrated_components
Production mutation without commit/cancel/failure/undo invariants Done Shared operator harness plus typed history projections cover palette, asset, brush, terrain, physics, grouping, lighting, material-drop, and transform paths; see evaluation
Representative editor coverage can silently disappear Done Versioned five-area manifest, typed scene gate, validate-samples, and native protocol; see sample pack
Dirty editor exit can bypass an explicit decision, or transient entity IDs define document cleanliness Done Guarded shutdown and canonical authored-content checkpoints pass source validation and all seven native workflows at source implementation 4b33f32, including dirty untitled Save All through Save As. See the evaluation.
Scoped UI callbacks depend on temporarily unavailable host state or lose direct selection precedence Done Explicit selection/tab requests, panel-owned state, captured viewport data, and full-slice reconciliation pass six scoped regressions, independent re-review, and native toolbar/Inspector/diagnostics acceptance at 9e23ae7; see the evaluation.
Checkout metadata or filesystem enumeration can rewrite imported-asset artifacts Done Shared content fingerprints, semantic byte-preserving publication, normalized registry order, clean-checkout validators, and live mtime-only drift pass at cbd380a; see the evaluation.
Dual FBX thumbnail ad-hoc path (parallel to unified pipeline) Partial Phase 5 assets/thumbnails/ refactor
failed_keys thumbnail cache without retry API Partial asset_thumbnails.rs; Phase 5 ThumbnailState
Inspector hard-coded component dispatcher Done EditorComponentRegistry is the sole visible built-in dispatcher; startup rejects missing callbacks
ui/inspector.rs monolith Done — P0 #68 363 nonblank-line registry-dispatch shell; component cards and complex domains are separate modules
ui/asset_browser/panel.rs monolith Done — P0 #68 450 nonblank-line shell; navigation, cards, Details, import, extraction, transactions, trash, and undo are separate modules
Architecture debt can grow silently Done .codex/architecture.toml plus scripts/codex/architecture_audit.py; exact frozen baselines ratchet every remaining legacy module

Phase completion gates

Phase Debt gate
P0 Hydration modules; strip-on-save tests; live project lighting
P1 ActorKind required; validate_actor on save
P2 No runtime components in default inspector
P3 HierarchySiblingIndex; no undefined sibling order
P6 ActorInspectorSection registry; typed immediate/modal command dispatch; BRP authoring policy; production mutation invariants
P7 ADRs 00090012 indexed; CI shared + scene + editor checks

Manual verification (release)

  • R1R6 rendering/inspector scenarios (roadmap.md)
  • Save/load roundtrip: hierarchy, lights, materials unchanged
  • PIE 60s stop: project lighting profile unchanged unless scene overrides edited
  • Rerun the operator invariant matrix from the nominated release-candidate commit
  • Open all five sample regression pack entries through the native File menu and record exact-candidate results