WM: keep a familiar's name readable on a peeking window - #6
Merged
Merged
Conversation
An agent window opened behind the focused one showed a 40px strip, which clipped the owner label to "rking". The kernel now leaves agentPeek (120px) showing on the right or left (title bar + 40px above as before), and records the peek edge on the window until it is moved, resized or zoomed. The shell splits the label into name and status, never shrinks it, trims the status before the name, and leads with the label on a left peek. Tests: WM-09c/d/e (kernel), WM-09f (e2e: label is top-most at its pixels on right and left peeks, including a long status). Capture 07 added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Four unresolved moderate findings affect peek positioning, state, and label readability.
Review effort: Lite
Findings: 1
Open (1)
What changed in this PR
Improves familiar-window peeking so owner names remain readable behind focused windows.
Changes:
- Adds 120px right/left/top peek placement and edge tracking.
- Splits owner labels into name/status elements with ellipsis handling.
- Adds kernel and e2e coverage plus a screenshot capture.
Unresolved moderate findings include stale peek state after focused-window geometry changes (1 vote), incomplete handling of partial overlaps (1 vote), an inaccessible top-edge fallback (1 vote), and focused labels retaining the width cap (3 votes).
| File | Reviewed changes |
|---|---|
packages/kernel/test/wm.test.ts |
Tests peek placement and lifecycle behavior. |
packages/kernel/src/wm.ts |
Adds peek metrics, edge metadata, and clearing behavior. |
apps/shell/src/slate.css |
Styles split owner labels and peek layout. |
apps/shell/src/shell.ts |
Renders owner name, status, title, and peek state. |
apps/shell/e2e/screenshots.spec.ts |
Adds the left-peek screenshot capture. |
apps/shell/e2e/desktop.spec.ts |
Tests readable labels during right and left peeks. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| /* A familiar's window peeking out from behind the focused one shows only the kernel's | ||
| agentPeek (120px) strip: keep the name whole in that strip, trim the status first, | ||
| and on a left peek lead with the label so it sits on the visible edge. */ | ||
| .win[data-peek] .owner { max-width: calc(120px - 8px); } |
This branch was successfully deployed
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.

Problem
An agent window opened behind the focused window peeked out by only 40px, so the title-bar owner label was clipped ("rking" instead of "Sage · working").
Change
wm.ts): new metricagentPeek: 120.#peekleaves 120px showing on the right (preferred) or left, or the title bar plus 40px above.WindowRecord.peekrecords the edge (right|left|top) and is cleared on move, resize and zoom..who(name) and.what(status). It never shrinks, trims the status with an ellipsis before the name, keeps its spacing, and on a left peek sits first in the title bar. The full text goes intitle.Tests
peek=right), WM-09d (left and top), WM-09e (peek cleared on move, resize and zoom). 45/45 pass.waiting-approval. The full e2e suite ran twice: 80 passed.07-familiar-peek-leftadded.Clean-room attestation
Written without reference to ryOS or Puter source, DOM, CSS or assets.
🤖 Generated with Claude Code