Repository navigation
perf(editor): index static command metadata by extension generation #29
Description
Verified on branch / awaiting merge
Production implementation: dd5979c613b0fe8ebd9f7026f25001ceee9f8cee. Delivered head: dbae93e8f211d45a69cdffdb6afa3a33a0af0fa5; the subsequent diff contains documentation/acceptance evidence only. Exact-head CI: Engine CI and NuGet dependency graph passed; all six checks on this exact head are successful. All applicable acceptance conditions for this issue are verified; unavailable physical/manual device checks are explicitly scoped, not reported passed.
Owner: Generation-owned Interactions menu/shortcut catalog. Implementation commits: 88df3c79, bc88dc04.
Evidence: complete report, exact-head delivery attachment, portable test-case/raw-measurement/requirement indexes linked by the report. Specific proof: Contracts: fresh Query/conflict/last-good/index reuse; Lifecycle: actual generation loop; Quantitative: menus, shortcut hit/miss.
Commands: official tests/Invoke-EditorUiAcceptance.ps1 Contracts/Workflows/Visual/Lifecycle/Products with SDK-selected independent outputs; complete source/entry preparation; formal InnoEngine.Build scripts --ide for the three companions; tests/Invoke-WikiChecks.ps1; controlled public performance fixtures where applicable. The report records original command owners, TRX/binlogs, negative tests, failures, skips, input hashes and device limits.
Profiles overlap; do not sum their pass counts into a distinct-test claim. Windows-only sharing fixtures and Unix-only filesystem fixtures are scoped to the executing host. Real native contexts/simulated display metrics and hidden product feature journeys are not a claim of physical display, OS IME or manual Mac testing. No BGCS/vendor/package/generated-binding modification, parallel Core system, test hook, IVT or private reflection was used.
Keep this issue Open. PR #26 includes an individual Fixes #29 and will close it only when the user merges to master. No automatic merge or premature master-resolution claim.
Original defect, ownership and accepted work
The following baseline observations describe the issue as opened. The verification above supersedes intermediate pending checkpoints; original failed/negative logs remain preserved. Acceptance checkboxes are checked only after the exact delivery-head verification completes.
Parent and original requirement
Parent: #27. Work item E02 from the approved Editor UI closure plan and its original implementation/acceptance requirements.
Baseline facts and risks at issue creation
EditorMenuCatalog rebuilds normalized placements/tree ordering on each request. Shortcut dispatch scans Action IDs/candidates. The Action ID index and conflict diagnostics already exist and must be preserved.
Owner and dependency boundary
Inno.Editor.Interactions catalog, menus and Action router; presentation consumes the resulting models.
Dependencies: #28.
Implementation
- Build immutable static area/path/order/separator and gesture/area candidate indexes within the current generation.
- Keep enabled/checked/display name/reasons, targets, dynamic contributions and arguments fresh per request.
- Atomically replace successful indexes and release old generation references; keep last-good on candidate failure.
Acceptance
- Repeated menu opens avoid rebuilding static path metadata.
- Selection, Play, Missing and read-only changes immediately affect Query results.
- Reload/add/remove invalidates indexes without retaining collectible targets or callbacks.
- Duplicate/ambiguous commands still fail explicitly; ordering and specificity remain correct.
- Main/context/toolbar/search share actions; pure queries work without a native context.
- Record repeated menu/shortcut CPU and allocation measurements.
Failure and lifecycle constraints
Preserve diagnostics, cancellation, atomic rollback/publication, Missing recovery and generation retirement. Reuse Core Events, Identity, IO, Serialization and History. Do not modify BGCS/vendor/generated code or add global/implicit imports, compatibility paths, IVT or private reflection.
Evidence and closure
Commits, exact commands, logs/TRX/data and remaining limits will be added during implementation. Until all acceptance passes this issue remains open. After verification mark Verified on branch / awaiting merge; add Fixes #29 with this issue's actual number to PR #26 only when complete. Close on merge to master, not on branch implementation.
Activity