Legacy feature Preserve Rewrite Remove Replacement Migration required Validation
VM loader/API mocks yes yes no Worker GEngine adapter no capability inspection implemented; runtime parity pending
App lifecycle/events yes yes no Runtime/session services no state services implemented; GEngine E2E pending
AppContent bridge yes yes no exact-origin per-user iframe bridge no contract and UI implemented; GEngine E2E pending
Vite HMR yes yes no local runtime profile/override config profile support implemented; CandyCastle E2E pending
External folders yes yes no project/source registry yes canonical path policy unit tests pass
AppCommands yes yes no AppCommands plugin presets/history raw argument parser unit tests pass; execution E2E pending
Simulated users yes yes no persistent Users library profiles typed Owner/Manager/Player/Bot CRUD implemented
Sessions yes yes no saved user/app scenarios no lifecycle, assignment, iframe grid, chat, and logs added
Persistence viewer yes yes no typed legacy slots/database tools yes schema retained; migration tooling removed; source was never imported
Logs yes yes no per-process and per-module log tabs no bounded process capture and live UserApp merge implemented
Leveling shortcuts no no yes project command presets optional preset validation
CandyCastle bot policy yes yes no explicit adapter profile config legacy source removed after migration; three-player E2E pending
Unauthenticated debug API no no yes authenticated RBAC APIs no permission and lockout unit tests pass
Same-origin iframe bridge no yes yes namespaced per-user iframe contexts no exact-origin routing implemented; AppContent E2E pending
Legacy browser preferences yes yes no explicit client export/import yes not yet validated