fix(ui): persist named desktop window frames - #10246
proggeramlug wants to merge 2 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (28)
Included review availability: Your plan provides up to 8 included reviews per hour; 4 remain after this review. 📝 WalkthroughWalkthroughChangesThe PR adds the opt-in Window frame persistence
Priority: ➖ Normal Estimated code review effort: 4 (Complex) | ~60 minutes Change: Feature · Severity of issue fixed: Medium Sequence Diagram(s)sequenceDiagram
participant AppConfig
participant AppLowering
participant DesktopBackend
participant FrameStore
AppConfig->>AppLowering: read frameAutosaveName
AppLowering->>DesktopBackend: call perry_ui_app_set_frame_autosave_name
DesktopBackend->>FrameStore: load saved frame during startup
FrameStore-->>DesktopBackend: return saved frame or no frame
DesktopBackend->>DesktopBackend: restore frame before presentation
DesktopBackend->>FrameStore: save frame during close or shutdown
Merge Risk: ⚪ Minimal · up to The frame-persistence feature has no remaining identified merge-blocking issue. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 67.65% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 68 functions across 24 files. (4 skipped: 4 unsupported.)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Closes #10170.
Adds
App({ frameAutosaveName: "main", ... })to restore desktop window geometry across launches. Saved settings overridewidth,height, andwindowState; omitted/empty names preserve existing behavior. Keys are scoped to the executable path and window name.Validation:
cargo check -p perry-ui-windowsandcargo check -p perry-ui-macos --target aarch64-apple-darwinpassed.git diff --checkpassed.Validation limits on this Windows host:
widgets::reorder_childreferenced byffi/widget_layout_extras.rs; neither file changes here. Standalone UI unit linking also has existing unresolved runtime FFI symbols, hence the isolated persistence harness.Initial CI also reports a pre-existing TLS policy failure in
crates/perry-runtime/src/regex/perex_owner.rs(rawthread_local!declaration). That file is unchanged by this PR.Summary by CodeRabbit
New Features
frameAutosaveName.Documentation