Add manual Window Layout utility - #106
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
|
Deployment failed for project semper-vmf1 with the following error: Learn More: https://vercel.com/niharnsm-8472s-projects?upgradeToPro=build-rate-limit |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds Window Layout as an independent optional utility with five explicit actions: Left Half, Right Half, Maximize, Center, and Restore Previous Placement. Actions are available in the module, search, pinned actions, and optional shell-owned shortcuts.
The module uses Semper's existing Accessibility window backend and geometry. It reads only the selected app's focused window and checks process and window identity. It refuses missing, minimized, unsupported, unreadable, and full-height windows using Workspace Restore's existing conservative geometry boundary. It does not infer fullscreen state from button roles or use an undocumented fullscreen attribute. Full-height targets are also refused, so halves and Maximize can be unavailable when the menu bar and Dock both auto-hide. Center remains available for smaller windows. Adding or opening the module does not request Accessibility access; a layout action does.
Each write checks the current frame and reads back the result. The layout backend also checks the expected display snapshot after its last asynchronous window refresh and before writing. Refusals without a write preserve the preceding placement record and report the backend refusal, including when external changes already reached the requested target. They cannot create a new receipt or clear an existing one. Supported, verified partial changes retain one previous placement in memory. Restore preserves later manual moves and refuses changed displays or stale windows. An unreadable attempted-write result or an app-constrained full-height result requires explicit placement review. Full-height post-write readback retains the known before/after record but does not advertise automatic restore. That review and its message survive cancellation, backend failures, retries, and pause/resume until explicit acknowledgement. Pause drains work and preserves history; removal and shutdown clear it.
Window Layout and Workspace writes exclude one another without blocking lifecycle drainage. Away excludes both. Presentation retains its own recovery record. No automatic layout triggers, new dependencies, persistence format, or window-title collection.
Validation:
b8ce5bdproduction source with eight assertions across four cases. It exposed receipt replacement on excluded no-write results and receipt clearing on a refused restore already at target. All cases pass after the correction, with additional coverage proving refused first actions do not invent a receipt.0f25f65, with two jobs and isolated DerivedData.git diff --checkpassed.34374841575passed 2186 tests and failed one stale nine-module shutdown-order expectation. That expectation is corrected, and the lifecycle suite is now included in the standalone runner. Runs34376342841and34377426574passed ate1949e3andb8ce5bd. Final CI run34379764603passed at exact head0f25f65ce4e4082c24a4d71aea86a15992adbf15.0f25f65; the preceding head had reported a build-rate limit. No manual deployment retry or account change was attempted.Native acceptance remains required: focused-window and full-height/auto-hide behavior, constrained app windows, shortcuts while another app is active, restore after manual movement, module pause/remove, keyboard and accessibility behavior. No live window changes or permission changes were run in this branch.
Separate from Presentation cancellation in #102, which has been merged. The product and website documentation owners are handling their own files.