Add: setting window for tauri - bugs not fixed yet
This commit is contained in:
@@ -19,12 +19,12 @@ Date: 2026-02-12
|
||||
| Random backend API tester | Implemented | `scripts/random_backend_tester.py` with `just random-backend-test` and strict variant |
|
||||
| QA/documentation workflow | Implemented | `docs/QA_WORKFLOW.md`, issue/evidence templates, and `scripts/qa_validate.py` with `just qa-validate` |
|
||||
| Shared runtime core | Implemented | `sprimo-runtime-core` now backs both Tauri and Bevy startup, snapshot/config ownership, and API wiring |
|
||||
| Tauri alternative frontend | In progress | `sprimo-tauri` now runs runtime-core/API + PixiJS sprite rendering shell; scale auto-fit, persisted debug-overlay toggle, and Windows-first tray/menu MVP are implemented |
|
||||
| Tauri alternative frontend | In progress | `sprimo-tauri` now runs runtime-core/API + PixiJS sprite rendering shell; scale auto-fit, pop-out settings window (character/scale/visibility/always-on-top), persisted debug-overlay toggle, and Windows-first tray/menu MVP are implemented |
|
||||
| Tauri runtime testing workflow | Implemented | `docs/TAURI_RUNTIME_TESTING.md` defines strict workspace testing; packaged mode pending packaging support |
|
||||
|
||||
## Next Major Gaps
|
||||
|
||||
1. Tray/menu controls are still not implemented.
|
||||
1. Tauri tray/menu behavior still needs Linux/macOS parity validation beyond Windows-first implementation.
|
||||
2. Linux/macOS overlay behavior remains best-effort with no-op platform adapter.
|
||||
3. `/v1/state` diagnostics are minimal; error history is not persisted beyond latest runtime error.
|
||||
4. Issue 1 runtime after-fix screenshot evidence is still pending before closure.
|
||||
|
||||
@@ -125,6 +125,15 @@ Bevy window-management verification workflow: `docs/BEVY_WINDOW_VERIFICATION.md`
|
||||
9. Verify scale-fit behavior in tauri runtime:
|
||||
- send `SetTransform.scale` values above `1.0`
|
||||
- confirm full sprite remains visible and window auto-resizes without top clipping
|
||||
10. Verify pop-out settings window behavior:
|
||||
- open via tray `Settings`
|
||||
- switch character and confirm immediate renderer reload + persistence after restart
|
||||
- change scale slider and confirm runtime resize + persistence
|
||||
- toggle `Visible` and `Always on top` and confirm both runtime behavior + persistence
|
||||
11. Verify packaged tauri reload stability:
|
||||
- run repeated character switch cycles (`default` <-> `ferris`) and move scale slider each cycle
|
||||
- ensure no runtime frontend exception is shown (debug overlay/console)
|
||||
- ensure no visible magenta fringe remains around sprite edges after chroma-key conversion
|
||||
|
||||
### Packaged Mode (Required Once Tauri Packaging Exists)
|
||||
|
||||
|
||||
@@ -64,3 +64,14 @@ Path: `<pack_dir>/manifest.json`
|
||||
- `rows = image_height / frame_height`
|
||||
- Image dimensions must be divisible by frame dimensions.
|
||||
- Every animation frame index must be `< columns * rows`.
|
||||
|
||||
## Tauri `sprite.png` Override
|
||||
|
||||
For `sprimo-tauri`, when manifest `image` is exactly `sprite.png`:
|
||||
|
||||
- runtime uses a fixed grid topology of `8` columns x `7` rows.
|
||||
- frame size is derived from actual image dimensions:
|
||||
- `frame_width = image_width / 8`
|
||||
- `frame_height = image_height / 7`
|
||||
- manifest `frame_width` and `frame_height` are ignored for this case.
|
||||
- animation frame indices are validated against the fixed grid frame count (`56`).
|
||||
|
||||
@@ -47,14 +47,27 @@ Frontend:
|
||||
- Tauri backend exposes:
|
||||
- `current_state` command (structured snapshot DTO)
|
||||
- `load_active_sprite_pack` command (manifest + atlas as base64 data URL)
|
||||
- settings commands:
|
||||
- `settings_snapshot`
|
||||
- `list_sprite_packs`
|
||||
- `set_sprite_pack`
|
||||
- `set_scale`
|
||||
- `set_visibility`
|
||||
- `set_always_on_top`
|
||||
- `debug_overlay_visible` / `set_debug_overlay_visible` commands for persisted debug panel control
|
||||
- `runtime:snapshot` event after command application.
|
||||
- React/Vite frontend now renders sprite atlas frames with PixiJS and updates animation/scale
|
||||
from runtime snapshot events.
|
||||
- For `sprite.png` packs in tauri runtime, frame size is now derived from atlas dimensions with a
|
||||
fixed `8x7` grid topology to keep splitting stable across packaged asset resolutions.
|
||||
- React/Vite frontend now supports two window modes:
|
||||
- `main`: transparent overlay sprite renderer
|
||||
- `settings`: pop-out settings window for character and window controls
|
||||
- Tauri window drag is implemented for undecorated mode:
|
||||
- left-mouse drag starts native window dragging
|
||||
- moved position is synced into runtime-core snapshot/config state.
|
||||
- Windows-first tray/menu MVP is implemented:
|
||||
- `Settings` (opens/focuses pop-out settings window)
|
||||
- `Show/Hide`
|
||||
- `Always on top` toggle
|
||||
- `Debug overlay` toggle
|
||||
@@ -66,3 +79,4 @@ Frontend:
|
||||
|
||||
1. Extend tray/menu implementation beyond Windows-first MVP and close platform parity gaps.
|
||||
2. Add frontend parity acceptance tests (Bevy vs Tauri state transitions).
|
||||
3. Add sprite-pack previews/thumbnails in the settings window character selector.
|
||||
|
||||
@@ -100,8 +100,38 @@ An issue touching Tauri runtime behaviors must satisfy all requirements before `
|
||||
6. Validate Tauri invoke/event behavior:
|
||||
- `current_state` output parsed successfully.
|
||||
- `load_active_sprite_pack` returns expected fields.
|
||||
- `settings_snapshot` returns valid persisted settings payload.
|
||||
- `list_sprite_packs` returns valid manifest-backed pack options.
|
||||
- `set_sprite_pack` changes active pack and persists.
|
||||
- `set_scale` updates scale and persists.
|
||||
- `set_visibility` updates main window visibility and persists.
|
||||
- `set_always_on_top` updates top-most behavior and persists.
|
||||
- `runtime:snapshot` event received on runtime command changes.
|
||||
- `debug_overlay_visible` and `set_debug_overlay_visible` invoke commands work and persist config.
|
||||
7. Stress runtime reload stability:
|
||||
- perform at least 10 cycles of character switch (`default` <-> `ferris`) with scale adjustments
|
||||
- no frontend runtime exception (including `TypeError`) is allowed
|
||||
- scaling behavior remains responsive after each pack switch
|
||||
8. Chroma-key quality check:
|
||||
- verify no visible magenta (`#FF00FF`) fringe remains around sprite edges in normal runtime view
|
||||
|
||||
## Settings Window Checklist
|
||||
|
||||
1. Open settings from tray `Settings` item.
|
||||
2. Confirm repeated tray clicks focus existing settings window instead of creating duplicates.
|
||||
3. Change character in settings and verify:
|
||||
- active pack changes immediately in main overlay
|
||||
- selection persists after restart
|
||||
4. Change scale via slider and verify:
|
||||
- runtime scale changes immediately
|
||||
- main overlay auto-fits without clipping
|
||||
- value persists after restart
|
||||
5. Toggle `Visible` and verify:
|
||||
- main overlay hide/show behavior
|
||||
- persisted value survives restart
|
||||
6. Toggle `Always on top` and verify:
|
||||
- main window z-order behavior updates
|
||||
- persisted value survives restart
|
||||
|
||||
## Evidence Requirements
|
||||
|
||||
|
||||
Reference in New Issue
Block a user