The notch drawer took eight PRs to open in one motion
Super Notch lives in the MacBook notch. You hover or click, and a drawer opens with your agent sessions in it.
That drawer is the first thing anyone sees. When it moves wrong, the whole app feels wrong, and mine moved wrong for weeks.
This is the order I tried things in, including the one that went backwards.
Hover was the first fight
On September 10, rapid hover re-entry made the island flicker, and leaving it had a reopen delay.
Commit 0f41059 fixed re-entry and removed the hover-leave delay. Policy, panel, and tests changed together. The September 10 Journal entry has the rest of that day.
That fixed hover. Opening was still broken.
Two animators were pulling on one window
By September 28, opening the island looked like a pop and then a rubberband. Reopening could stack more than one notch window.
The cause was a double interpolator. SwiftUI and AppKit were both animating the same height change.
PR #94 went after it and closed without merging. That work folded into release 0.3.6, PR #95, which left one notch panel and gave expand a single height animation through PanelFrameApplyPolicy.heightMayEase. It was one of five releases I shipped that night.
One owner still left a second curve
PR #109 made the island open as one motion. The panel snaps inside the settle window, and the second SwiftUI height curve is gone.
PR #118 went further. Opening, closing, and resizing the notch now run on one AppKit animation, and SwiftUI no longer eases the drawer on the same height change.
I tried the other owner for exactly one PR
PR #119 tried easing the drawer with SwiftUI alone while AppKit snapped the window canvas. The opening curve and duration stayed as they were.
The very next change put AppKit back in charge. PR #120 restored AppKit as the only drawer animator, with a 400 ms ease-in-out open and a 120 ms close.
I'm glad that experiment cost one PR.
The number took three tries
400 ms came first. PR #121 lengthened the open to 600 ms and kept the close at 120 ms.
PR #122 landed on 250 ms with the same ease-in-out, and AppKit stayed the only animator. That's where 0.3.14 shipped it, after the 400 and 600 ms tries.
All six of those PRs, #109 and #118 through #122, are in the 0.3.14 notes, dated October 14, 2026.
Island expand has a bench now
PR #135 added signposts and instruction-count benches for cold launch, island expand, talk arm, transcript insert, and session-list publish. It also added a check that won't raise the stored baselines.
The checked-in baselines come from my gHost64 Mac. The bench doesn't change what the app does.
What I'd tell myself in September
Give the drawer one animator and hand it the whole height change. When SwiftUI and AppKit both eased the same window, it showed up as a pop and a rubberband.
Keep the close short so the retract never clips. Then tune the open duration last, once only one thing is moving the window.
If you want to see the drawer itself, Super Notch is the Mac app that finds and resumes your AI coding sessions from the notch. There's more on the project in my Super Notch portfolio entry.