Skip to content

Feel fixes: split fill, the return from picture-in-picture, the first ⌘T, Peek's layout, split motion, the Mini Window, the page tools and the Library's first open (D80) - #32

Merged
siyabendoezdemir merged 30 commits into
mainfrom
lane/feel-fix
Oct 12, 2026

Conversation

@siyabendoezdemir

@siyabendoezdemir siyabendoezdemir commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

The feel-fix lane fixes the gaps that the "feels right" sign-offs held back (D48, D79, D80), so those rows can be signed:

  • Sign-off 1: split view, picture-in-picture, the command bar, Peek and the Mini Window.
  • Sign-offs 2 and 4: the page tools, and the Library's first open.

It's built from lanes/feel-fix.md on main at 1f81f83. It has merged PR #29 (9a30d3d), finish-tabs (PR #31, 21487aa, in ef8351c) and tweaks (PR #30, 6988d2a, in 95667d9) and sign-off 5's marks (PR #33, c52bee7, the current main, in a1085ce). Against main it changes 45 files (+3317/−358). The reports are in the project's context folder: the build, reviews/lane-feel-fix-report.md; fix round 1, lane-feel-fix-fix1-report.md; fix round 2, lane-feel-fix-fix2-report.md. The before and after frames are in clips/feel-fix/.

The lane marks no row "feels right". The lead checks each row again after the merge (D48).

What it fixes

  1. SV-02, SV-03, SV-07 (and SV-15): filling a new pane with an open tab never shows that tab alone.
    • Before: the chosen tab filled the page area for 7 frames (117 ms, Right) or 10 frames (167 ms, Below). Then the split regrew from a sliver over about 250 ms.
    • Now: the tab goes into its pane in the same update that closes the command bar. In 4 rounds, no sample showed it alone.
  2. MD-01, MD-07, MD-16: back from picture-in-picture, no frame of the player layout.
    • Before: the page area was 92% dark for 2 frames, both on selecting the tab and on Back to tab. After ⌘W on the tab before it, or from an empty Space, the player layout showed for 8–9 frames (the review's must-fix 1).
    • Now: the player hides first. The returning view is held until its page has drawn, for up to 250 ms. It waits at its pane's size with everything but one pixel outside the window, then moves into its pane: a move, not a resize.
      • On selecting the tab or Back to tab, the page area keeps the page it showed.
      • After ⌘W on the tab over it, or from an empty Space (alone or in a split), it shows its blank card in the Space's colour for 6–9 frames, as FL-29 allows.
      • No frame of the player layout reaches the page area on any of the five ways.
      • The held view's one pixel shows its page at the window's bottom-right corner for 8–11 frames (D92 (2)).
  3. CB-22: the first ⌘T after a launch.
    • Now: the overlay warms up at the window's size, with only its corner pixel inside the window. It is never resized on a first open, and it is laid out again 300 ms after the window is resized (F5).
    • Still missed (D90 (2)): the first ⌘T after a launch shows the bar within a frame in about three launches in five; 13 of 31 launches so far missed. FL-29's note lists it as a miss again, and CB-22's note and FEEL.md give the counts. feel-commandbar.spec.ts:209 logs the first ⌘T's frame, and still asserts its work and no resize. The sign-off holds CB-22 and FL-29.
  4. PK-06, FL-19: the Peek's page is laid out once, not on every frame.
    • Before: the page view was resized 13 times per open, 12 of them in sight mid-motion.
    • Now: the page view gets its final size once and stays out of sight while the overlay animates a stand-in (the page's colour, or a still of it) with transform and opacity. The view shows once the card settles.
      • The page view is resized 0 times per open and once per expand, never in sight.
      • It is within 2 px at 300–317 ms.
      • On Esc, the view goes in 2–6 ms, and the still fades over 160 ms (PEEK_CLOSE_MS); frames read 117–167 ms.
    • The still goes to the overlay only (F1). A Peek whose page crashes or fails to load drops its still and fades in its own colour (F3).
  5. SV-26, FL-18: the rest of split's motion.
    • Closing a pane: its card fades with its page and is gone in 200–233 ms.
    • The drop zone: it shows in 1 frame and moves in 1 frame.
    • Create: in place at 300–317 ms, with no overshoot.
  6. MW-04, MW-15: the Mini Window's open and exits.
    • Opening a link: the window never shows the lookup bar. mini-window.spec.ts:474 reads the cover's computed style and hit-tests each bar, and fails without mini.css:17.
    • A blank Mini Window: it opens empty and grows from there.
    • "Open in…" and close: the page stays until the window has gone.
      • 4 grey frames remain, from Xvfb's exposure. A probe hiding an intact Mini Window showed the same grey.
    • Where a Mini Window fades (macOS and Windows), "Open in…" waits for its page's still for at most STILL_WAIT_MS, even when the capture never ends (F6). No Linux test reaches that path (D93).
  7. D70: Reduce Motion tests for the page error screens and the swipe arrow. These are tests only.
  8. NV-06, AR-02 (and DL-10): a view put back in the window never shows its last frame first.
    • Page tools: after ⌘+ or ⌘0, the old find bar or zoom pill no longer shows first. The number changes in place.
    • The Library's first open: no half-drawn nav, and no see-through panel without rows. A hidden view draws itself empty before it leaves the window.
    • The Library's close: its view hides once its renderer reports drawing opacity 0, with 500 ms as the fallback (F4).
  9. PK-06, PK-09: a Peek whose page goes away closes with it, and main throws nothing (D28). This is the layout guard from finish-tabs' review. Finish-tabs (PR Finish tabs: Orbit's own row menus, blank windows, the tab switcher, tab sleep, Spaces' toasts and themes, and the import guard (TB, SP, PR, FD) #31) fixes the cause.
  10. MD-01 and the Peek (F8, finish-tabs' F3): a Peek's tab that leaves the screen never asks the picture-in-picture player to open.

Edits in other lanes' files

Each one is small and additive:

  • windows.ts:
    • the arrival holds, and the corner hold (MD-01);
    • the overlay's warm-up and rewarmOverlay (CB-22, F5);
    • sendToOverlay (F1);
    • the page tools' leave: toolsLeaving, TOOLS_LEAVE_MS, hideTools(…, drawn), and toolsInfo().placed.
  • context.ts: barChoice.
  • src/shared/commands: search.warm, peek.page, mini.stillShown, pageTools.drawn and library.drawn.
  • archive/index.ts: library.drawn (F4).
  • media/manager.ts: left() returns for a Peek's tab (F8).
  • Smaller ones:
    • global.css;
    • one line in LibraryApp.tsx, and one rule in library.css;
    • peek-helpers.ts and tests/e2e/frames.ts (two optional fields in record());
    • FEEL.md;
    • notes only in feature-status.json, and CB-13's note (New Blank Window, TB-17, is found now);
    • a New Blank Window row in tests/unit/commandbar.test.ts.
  • Dependencies: none added.

Merge gate (D42, local)

Gate r2 ran on 95667d9, the head before main's data-only merge (below), on the VPS (Linux, under Xvfb), from 00:42 to 01:33 UTC, with an ffmpeg that has x11grab (ORBIT_FFMPEG). The lead ran it with the gate script:

npm run build && npm run typecheck && npm run lint && ./node_modules/.bin/vitest run
xvfb-run -a -s "-screen 0 1440x900x24" ./node_modules/.bin/playwright test --workers 1 --retries 0 --reporter=line
  • Build, typecheck and lint: exit 0.
  • Unit: 118 files, 1137/1137 passed.
  • E2E: 869 passed, 2 skipped, 0 failed (50.8 min, load 3.1 → 7.5). The 2 skips are nav.spec's macOS-only key tests. TB-22's expected test.fail() counts as passed. MD-01's screen-grab test ran with the x11grab ffmpeg: on each way back, 0 grabbed frames showed the player layout.
  • main merged in after the gate (a1085ce, 01:33). Sign-off 5's marks (PR feel: sign-off 5, 87 rows of the sidebar, Spaces and profiles (D48, D79) #33) merged while gate r2 ran. There were no conflicts, and FEATURES.md regenerates unchanged. The merge brings only data, so D81's checks ran on a1085ce, the head this PR merges:
    $ git diff --stat 95667d9 a1085ce
     FEATURES.md                       | 176 +++++++--------
     docs/feature-status.json          | 174 +++++++--------
     scripts/capture/record.mjs        |  24 ++-
     scripts/capture/scenarios/dl.mjs  |   4 +-
     scripts/capture/scenarios/sb2.mjs | 324 ++++++++++++++++++++++++++++
     scripts/capture/scenarios/sp.mjs  | 243 +++++++++++++++++++++
     scripts/capture/scenarios/sp2.mjs | 382 ++++++++++++++++++++++++++++++++
     scripts/capture/scenarios/st.mjs  |   2 +-
     scripts/capture/scenarios/tb.mjs  | 285 ++++++++++++++++++++++++
     scripts/capture/scenarios/tb2.mjs | 443 ++++++++++++++++++++++++++++++++++++++
     10 files changed, 1871 insertions(+), 186 deletions(-)
    
    • D81's checks on a1085ce (01:34:08–01:34:37, load 5.5 → 8.5): build, typecheck and lint exit 0; unit 118 files, 1137/1137 passed.
    • Gate r2's e2e result stands for the code, which this merge doesn't change.
  • Earlier gate: r1, on 1a84e61 (the head the review read): 769 passed, 1 failed, 3 skipped (42.6 min). The failure, feel-sidebar.spec.ts:360 [FL-21], passed when rerun alone at load 3.1; the review found it predates the lane.
  • D18: each fix fails a named test without it, except F6 (D93). The reports list each result, and the fix checks cut the fixes again.
  • Unverified (not run here):
    • frame pacing on a real compositor;
    • the held view's corner pixel under macOS's rounded window corners (D92 (2));
    • the macOS and Windows still path for the Mini Window (mini.stillShown, F6's wait; D93);
    • the Peek's still on a 2× display (F1);
    • nav.spec's two macOS-only key tests.

Review

  • Review (reviews/lane-feel-fix.md, 22:44 UTC on 10-11): REQUEST CHANGES, 3 must-fix, each reproduced. MD-01's player layout after ⌘W or from an empty Space; CB-22's first ⌘T, still missed in about half of launches while the notes said it was fixed; and mini-window.spec.ts:474 passing without its cover. 8 follow-ups. The other 8 items, and FL-21's gate failure, checked out.
  • D90: the first ⌘T got one try in the fix round, or it goes back into FL-29's misses with honest notes and a test that logs it. It went back.
  • Fix round 1 (6c498aa, 23:54): the 3 must-fixes (MD-01's with F2), F1, F3–F6 and F8, and half of F7. Then the merge with finish-tabs: seven conflicts, each resolved with both sides' changes.
  • Fix check (reviews/lane-feel-fix-fixcheck.md, 00:27 on 10-12): APPROVE WITH FIXES, 1 must-fix, docs only. No frame of the player layout on any of five ways back, and each round-1 fix failed its test on one cut build. But MD-01's note said the page shown before stays, where a blank card shows for 6–9 frames.
  • D92: one docs round. MD-01's words, CB-22's counts and FEEL.md's fade range change, and F6 gets a unit test. The corner pixel is written down, not hidden.
  • Fix round 2 (3ded4a1, 00:35): comments, notes and FEEL.md only. F6's test was skipped, with a reason.
  • Fix check 2 (reviews/lane-feel-fix-fixcheck2.md, 00:49): APPROVE, no must-fix. The words match the grabs, CB-22's counts agree in all three places, only comments and docs changed, and the merge with tweaks has an empty remerge diff.
  • D93: F6 merges without its test. The look lane moves the race into a function of its own, with a unit test that fails without it.
  • The merge with main after the gate (a1085ce) brings only PR feel: sign-off 5, 87 rows of the sidebar, Spaces and profiles (D48, D79) #33's data, which that PR's own independent review approved (reviews/lead-signoff-5.md). It had no conflicts.

🤖 Generated with Claude Code


Note

Medium Risk
Changes span overlay warm-up, PiP/view attachment timing, command-bar close + split state updates, and library/tools view lifecycle—high user visibility with limited data/security impact, but regressions could show flashes, stuck overlays, or wrong tab layout.

Overview
This PR is the feel-fix lane: it tightens motion and first-frame behavior so sign-offs can clear, and it syncs FEATURES.md, docs/FEEL.md, and docs/feature-status.json with what shipped.

Split view + command bar: Choosing an open tab to fill a new pane now applies in the same store update that closes the command bar (barChoice hook + search.open path), so the tab is not shown full-screen alone before the split layout appears.

Command bar (CB-22): On startup, the keymap is warmed and the overlay runs a hidden warm-up at window size (search.warm / overlayWarm) so the first ⌘T avoids resize work; docs note a remaining ~2-in-5 second-frame case.

Picture-in-picture (MD-01 / MD-16): Returning video to the tab waits for the page to draw with the video back (drawn in the media agent + holdArrivals / arriving on the player) instead of flashing the player layout; Peek tabs no longer auto-float PiP when the peek goes away.

Peek / split motion (documented): Page view lays out once with a still on the card; split springs stop without overshoot; pane close uses a page still.

Mini Window (MW-04 / MW-15): Spare/hidden windows draw empty before show; Open in… / fade-out close can show a page still on the card; close hides the window before the page is gone.

Library & page tools (AR-02 / NV-06): Views that would replay their last frame now fade/draw empty before the native view is hidden (library.drawn, pageTools.drawn, CSS opacity: 0 when closed); zoom indicator behavior is documented.

Tests: Command-bar catalogue includes New Blank Window.

Reviewed by Cursor Bugbot for commit a1085ce. Bugbot is set up for automated code reviews on this repo. Configure here.

siyabendoezdemir and others added 15 commits October 11, 2026 15:34
…that closes the bar (SV-02, SV-03, SV-07, SV-15)

The command bar asks the pane session first (a new barChoice hook): the
chosen tab moves, is copied or swaps into the pane in the same store
update that closes the bar, so no frame selects it outside the split.
The shell's pane engine hands the replaced pane's card to the new tab,
so it no longer regrows from a sliver.

feel-fix.spec.ts samples the page views in main from Enter until the
split settles: without the fix the chosen tab covered the split for 12
samples (45 ms); without the engine hand-over its view grew for 250 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nce it has drawn there (MD-01, MD-07, MD-16)

Selecting the video's tab again, or Back to tab, attached the tab's view
to its window at once. The view still held the frame it drew in the
player, so the page area showed the player layout (black, the video small
at its top-left) for 2-3 frames.

The window manager can now hold a view that comes back into a window out
of sight, at its place under the pages the window showed, until a feature
says it is ready (holdArrivals, at most 250 ms). The player asks for it:
the page's agent resolves once the page has drawn a frame with its video
back in it. The pages shown before stay until then.

Tests: media.spec.ts checks every frame of the return in main (the view is
never shown before the page drew its own layout) and, where an ffmpeg with
x11grab exists, a grab of the screen (no frame of the player layout in the
page area, no empty player). MD-16's note says what Back to tab does now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ns (CB-22)

A new window's overlay now starts at the window's size, all but one corner pixel
outside the window, and opens an invisible, inert bar a few times (mount, focus,
entrance, exit) before it hides. A hidden view never got a size before, so the
first real open resized the overlay from 0x0 and laid it out again. Main builds
the keymap at start-up and looks a ⌘T up again once the overlay has warmed.

feel-commandbar's first-open test judges rounds as D46 says, with a fresh launch
for each, and checks that no open resizes the overlay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…70, FL-28)

The error screen's card shows with no animation, and the swipe arrow's circle
fills and fades with no transition and no scale, once Orbit's Reduce Motion is
on; both animate with it off. Without the pages' .reduce-motion rules, both fail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ll of it (PK-06, FL-19)

The page view no longer follows the card frame by frame. It is laid out once,
at the card's size, with all but its corner pixel outside the window, and
joins the card when the card comes to rest. While the card moves (a drag, a
swipe, the close, the expand, the split), it shows a still of the page that
main captures while the page sits on the card, and the page view waits out of
sight at the size it shows at next. The card and its shadow are laid out once
and move by transform and opacity only (FL-01).

feel-peek checks, with a main-side sampler of the view, that its size changes
at most once in an open or an expand and that it is never in sight mid-motion,
and that on Escape it goes at once while the still fades out. peek.spec's
PK-06 tests measure the overlay's card and check the view stays out of sight
while it is dragged or swiped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…card's still; regenerate FEATURES.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hows in the next frame; panes stop in place (SV-26, FL-18)

- Main keeps a still of each pane of a split on screen (taken at rest, again a moment after a load,
  a scroll or a key), and the shell puts it in the pane's card under the page's view. A closing
  pane's card fades and collapses with its page on it while the other pane grows; it used to vanish
  and leave the space empty.
- The drop zone renders in the move that finds it (flushSync), and its fade starts a frame along:
  it shows in the frame after the move (3 frames before), and moves to a new half in that frame (2).
- Pane springs stop where they first reach their place when going slowly there: in place in about
  280-300 ms, no overshoot (0.5 px only at 467-483 ms, 1.4 px over, before). A value turned around
  at speed keeps its momentum (FL-01).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the closing card's still and the drop zone in the next frame; regenerate FEATURES.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Window leaves the screen whole (MW-04, MW-15)

A window shows first the frame it drew last. The hidden ready window had
drawn its blank lookup bar, so a link from another app showed that bar for
a frame before its page, and a blank window showed it at full size before
the grow. Until it is claimed, the ready window now draws itself empty in
the window's colour.

Closing, and "Open in…" where the window goes at once, hid the window only
after its UI or its page had gone. The window now leaves the screen first.
Where it fades out (macOS, Windows), its card shows a still of the page
while the page leaves for the main window.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d the window that leaves whole; regenerate FEATURES.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ws seconds apart (MW-04)

A hidden window can go several seconds without a frame. The recorder now
runs until the check stops it, and the wait for the ready window's idle
frame allows for the gap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; the Peek closes with its page (PK-06, PK-09, D28)

Every place that lays out or shows the Peek's view now checks the view
still has a live page (view.webContents reads undefined once it has gone,
even before 'destroyed' fires). A page that goes while the Peek is open
discards the Peek. Without it, a window layout after the page went threw
"Cannot read properties of undefined (reading 'isDestroyed')" in main and
the overlay stayed "peek".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… frame first (NV-06, AR-02, DL-10)

A view taken out of the window and put back shows the frame it last drew
until its renderer draws again (Chromium's own behaviour).

Page tools: before their view leaves the window, main tells their page
to draw itself empty; the page says so a frame later (pageTools.drawn)
and the view leaves then, after 250 ms at most. The keyboard still goes
back to the page at once. Put back, the find bar or zoom indicator no
longer shows the old one first (2-3 frames before). The zoom indicator
keeps its element from step to step, so its number changes in place
instead of blinking out and fading in again.

Library: closed, or made ahead of its first open, it draws nothing, and
only the open Library marks its section. The view made while idle
showed a half-drawn Library (the nav alone, opaque) for 3 frames on its
first open, and a first open on Downloads showed a see-through panel
with Archive marked and no rows for 5-6 frames.

feel-fix.spec.ts reads the page tools' frames in their page around each
time main puts their view back (find bar then zoom, a zoom step, zoom
reset), and the Library's frames from a first open on Downloads and a
later open on the Archive. Without the fix: the find bar ("page") and
the zoom indicator (125%) showed first, and the indicator was two
elements across a step; the Library's first frame was "closed on
archive, archive marked, opacity 1.00", and a later open marked archive
and downloads together.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Library drawn empty; regenerate FEATURES.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 11, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: e0c96d01-6706-4d0a-8575-daa44b7af7cc)

siyabendoezdemir and others added 12 commits October 11, 2026 22:58
…dow's corner, at its pane's size, so no page over it is needed (MD-01)

A held view was kept out of sight only under another page its window
showed. After ⌘W on the tab over the video's tab, from an empty Space or
in a split, there was none, and the player layout showed for 8-9 frames.
It now waits at its pane's size with all but its corner pixel outside the
window, where its page draws, and moves into its pane when the hold ends.
media.spec's two MD-01 tests cover the three new ways back; MD-01's note
and player.ts's header say what holds within HOLD_MS and what doesn't.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…misses; CB-22's test logs its frame (D90)

Over 12 fresh launches at load 2.0-3.7 the first ⌘T showed the bar
within a frame in 7 (4.2-22.9 ms, median 14.6). Neither lead got it to
11 of 12: waiting 1.5 s after the warm-up gave 11, and drawing the
warm-up's bars at 1 % opacity gave none. CB-22's note, FL-29's note and
FEEL.md say what was measured; feel-commandbar's test logs the first
⌘T's frame and still judges its work and that nothing resizes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rawn: its cover's content and colour, and no bar above it (MW-04, MW-15)

The test read the .mini--ready class, so it passed with the cover rule
removed (review must-fix 3). It now reads the ::after's computed content
and background-color, and hit-tests each bar's centre. With the rule
removed it fails: the lookup bar shows first. frames.ts's record() gains
two optional target fields, pseudo and top.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…w's shell (PK-06)

Only the overlay shows a still of the Peek's page; the shell got each data URL
too. WindowManager.sendToOverlay sends to the overlay alone. The encode stays
where it is; its cost on a 2x display is unmeasured (that is macOS).

Without it, peek.spec.ts's new test fails: the shell received orbit:peek:still.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, so its card fades in its own colour (PK-06)

The card kept the still from before a crash, or took one of the blank page a
failed load leaves. While the tab has an error (a crash, or a main-frame load
failure), main takes no still and tells the overlay to drop the one it has;
the next load clears the error and stills come again. The overlay shows only
the last still it was sent.

Without it, peek.spec.ts's new test fails: after the crash the still stays.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tself faded out, with a timer as the fallback (AR-02, FL-24)

Main hid the view 180 ms after the close whatever the page had drawn: a page
late with its fade left the view on a frame from mid-fade, which the next
open showed first. As the page tools do (pageTools.drawn), the page now says
when its fade's last frame is drawn (library.drawn, two frames after the
fade ends), and main hides the view then; after 500 ms it hides it anyway.
A crashed page's view hides at once.

Without it, feel-fix.spec.ts's new test fails: the view hid 196 ms after the
close, on a frame at opacity 0.92.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… warms again at its new size, out of sight (CB-22)

After the warm-up, the hidden overlay kept the size it had: the first ⌘T
after a resize laid it out again, the work CB-22 removed. 300 ms after the
window's last resize, an overlay hidden at another size shows at the new
size with all but its corner pixel outside the window, as at start-up; its
renderer says when it has drawn there (search.warm) and it hides again. An
overlay still playing its exit waits for it.

Without it, feel-commandbar.spec.ts's new test fails: the overlay stayed
1238x792 in a window resized to 1118x702.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…_WAIT_MS, even when the capture never ends (MW-15)

leaveWithStill awaited capturePage() with no limit, and STILL_WAIT_MS only
started once it had: a capture that never settled left mini.leaving set, so
"Open in…" never finished and later moves were refused. The capture now races
STILL_WAIT_MS; a late one is not waited for and the window goes without a
still.

No test: the path runs only where windows fade, macOS and Windows (canFade),
and never under Linux, where this lane's runs are.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… to open (MD-01, PK-13)

Once the Peek counts as on screen (finish-tabs' displayedTabs), a Peek whose
video plays, replaced by the command bar, left the screen like a tab and the
manager asked the player to open for it; only the page's discard, a microtask
later, kept the player from showing. left() now returns for a Peek's tab:
its page goes with its Peek.

The new media.spec.ts test checks that the player is never asked; it can fail
without the check only on a head that counts the Peek as shown (after the
merge of main).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… MD-01); FL-19's close fade is 160 ms

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Conflicts:
- docs/feature-status.json: SV-26 is built yes (finish-tabs' row merge in
  the sidebar) with this lane's motion text and finish-tabs' row-merge and
  haptic text. FEATURES.md regenerated.
- src/main/split/index.ts: imports hiddenByImport; selectsInPlace now asks
  hiddenByImport (D66 (1)) instead of isUnplacedImportTab, as every other
  split command does.
- src/renderer/src/shell/split/useTabDrop.ts: finish-tabs' follow(drag);
  show(drag, next), with this lane's flushSync around setDrop in show()
  (FL-18); both imports kept.
- src/main/commandbar/search.ts, src/main/context.ts,
  src/renderer/src/overlay/OverlayApp.tsx: imports only; both kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…abs built it (TB-17); Manage Spaces waits for SP-13's overview

The catalogue's unit test checks New Blank Window finds its action first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 11, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 90abf890-a578-4ba7-8da5-081452e2430f)

…corner pixel (MD-01); first ⌘T misses as counts (CB-22); still fade read as 117–167 ms (FL-19)

Notes, comments and FEEL.md only (D92):
- MD-01's note, player.ts's header and holdArrivals' comment: the player
  hides first; until the page has drawn, the page area keeps the page it
  showed or, after ⌘W on the tab over it or from an empty Space (alone or
  in a split), shows its blank card; no frame of the player layout reaches
  the page area; the held view's one pixel shows at the window's
  bottom-right corner meanwhile. The ways-back test comment says the same.
- CB-22's note, FEEL.md and feel-commandbar's comment: 13 of 31 launches
  missed so far, about two in five.
- FEEL.md: the Peek's still fade reads 117–167 ms from frames.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: cf91af01-4aad-4bea-bf75-9a2bbebfc453)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 62e8cd32-66d8-45f9-89b0-93424c396ce3)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 1858bd77-b690-42e9-8ad2-6b27cd78f1cd)

@siyabendoezdemir
siyabendoezdemir merged commit 0b68ea4 into main Oct 12, 2026
1 check passed
siyabendoezdemir added a commit that referenced this pull request Oct 12, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
siyabendoezdemir added a commit that referenced this pull request Oct 12, 2026
No conflicts: docs/feature-status.json, FEATURES.md and global.css merged cleanly (feel-fix's notes
and this lane's); FEATURES.md regenerated with no change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
siyabendoezdemir added a commit that referenced this pull request Oct 12, 2026
…-fix-2

No conflicts. FEATURES.md regenerates unchanged from the merged
feature-status.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant