- bump project/runtime version markers to v2.3.0 (pyproject + TetriNode UI version) - complete behavior-preserving refactor from monoliths into modular Python and JS architecture (tetrinode/ + js/live/) - add parity + standard regression harnesses under qa/ - fix queue panel layout so Queue bottom stays aligned to matrix bottom regardless of Controls visibility - fix music playback fallback when selected track is none, including modal Play behavior and runtime playback path
4.0 KiB
4.0 KiB
TetriNode Refactor Plan Progress
This tracks execution status against the approved behavior-preserving refactor plan.
Phase Status
[x]Phase 0: Baseline and guardrails- Tracked parity harness is in
qa/parity/. - Baseline artifact exists at
qa/baseline/python_baseline.json.
- Tracked parity harness is in
[x]Phase 1: Contract tests first- Contract checks are implemented in
qa/parity/verify_contracts.py. - Aggregate runner is
qa/parity/run_all.py.
- Contract checks are implemented in
[x]Phase 2: Python modular extraction- Python internals split under
tetrinode/and entry compatibility kept intetris_node.py.
- Python internals split under
[x]Phase 3: JavaScript modular extraction- Entry compatibility remains in
js/tetris_live.js. - Extracted modules include:
js/live/core/gameplay.jsjs/live/core/color_utils.jsjs/live/core/lock_repeat.jsjs/live/core/runtime_loop.jsjs/live/core/runtime_state.jsjs/live/render/layout.jsjs/live/render/board.jsjs/live/render/block_style.jsjs/live/render/status_overlay.jsjs/live/render/toolbar_icons.jsjs/live/render/toolbar.jsjs/live/input/toolbar_actions.jsjs/live/input/runtime_keys.jsjs/live/bridge/background_source.jsjs/live/bridge/backend_state.jsjs/live/bridge/comfy_hooks.jsjs/live/bridge/music_controller.jsjs/live/bridge/node_selection.jsjs/live/bridge/node_runtime.jsjs/live/bridge/state_io.jsjs/live/render/effects.jsjs/live/render/node_canvas.jsjs/live/ui/theme_style.jsjs/live/ui/modal_base.jsjs/live/ui/settings_modal.jsjs/live/ui/colors_modal.jsjs/live/ui/animation_music_modal.jsjs/live/ui/gameplay_modal.jsjs/live/ui/block_style_modal.jsjs/live/ui/theme_modal.jsjs/live/ui/color_picker_modal.js
- Entry compatibility remains in
[x]Phase 4: Config/data decoupling- Preset/data bundles extracted into
js/live/data/*. js/live/data/icons.jsandjs/live/data/theme_used_keys.jshold shared static metadata previously embedded injs/tetris_live.js.js/live/data/block_style_presets.jsnow owns block style preset overrides, slider metadata, texture options, and preview shape data previously embedded injs/live/ui/block_style_modal.js.
- Preset/data bundles extracted into
[x]Phase 5: Cleanup/docs/deploy paths- Architecture map maintained in
docs/refactor_architecture.md. - README maintainer structure notes are present in
README.md("Developer Structure"). deploy_prod.shverified in an isolated tempHOMEand confirmed to copy modular runtime paths (tetrinode/,js/live/, andmusic/).
- Architecture map maintained in
[x]Phase 6: Final verification/freeze- JS syntax sweep passes for all
.jsfiles underjs/. - Parity gate re-run passes:
contracts OK,python parity OK,all parity checks OK. - Legacy smoke scripts were executed and documented below as non-gating residuals.
- JS syntax sweep passes for all
Current Verification Snapshot
node --checkpasses for extracted JS modules andjs/tetris_live.js.- Parity gate passes:
/home/soul/codex/TetriNode/.comfyui_test/venv/bin/python qa/parity/run_all.py- Output:
contracts OK,python parity OK,all parity checks OK
- Deploy path verification passes in isolated environment:
HOME=<temp> bash deploy_prod.sh- Confirmed copied files include
tetrinode/node_api.py,js/live/data/defaults.js, andmusic/music.blob.
- Legacy Python smoke runner now aligned with current contract:
/home/soul/codex/TetriNode/.comfyui_test/venv/bin/python tests/run_tetris_tests.py- Output includes parity gate pass and script checks:
test_step_output_contract,test_seed_enforcement_modes,test_action_pipeline_smoke,test_tracked_parity_suite.
- Legacy UI smoke runner now aligned with current node layout:
/home/soul/codex/TetriNode/.comfyui_test/venv/bin/python tests/run_tetris_ui_tests.py- Passes with
ui_tests_ok. - rgthree seed reset/Run assertions now pass by applying seed changes through active keybinding-driven reset flow.
Next Work Queue
- No remaining refactor-plan actions.