Release notes

What’s shipping with Iris.

A running log of what lands in Iris. Newest at the top.

Updated 15 June 2026.

15 June 2026 · Idle prompt

Coming back, quietly.

The “Stepped away?” prompt that greets you after idle time gets a calmer restyle. The button no longer fills with a countdown; Iris simply resumes on its own while the prompt is up.

Keyboard shortcuts land on it. ⌘R resumes, ⌘B starts the break now, and Return triggers the default action. Both glass variants now share one button style built from the design system’s spacing and type tokens.

The Now popover is streamlined to match. The standalone daily-goal row comes off the live tab, leaving the timer and today’s break summary. Your streak still lives in Trends and Stats.

14 June 2026 · Pre-break HUD

A pre-break HUD with three states.

The pre-break heads-up display is rebuilt as a Dynamic Island style surface. A compact pill holds while time remains, expands as the break approaches, and shifts to an urgent state right before it begins, a countdown ring running throughout.

Bundled sound assets and the audio wiring behind the HUD get a refresh alongside it.

Infrastructure

Stale LookAway planning docs are cleared out of the repo, and screenshot capture now covers the new compact, expanded, and urgent island states.

Tests

Added audio-HUD coverage for the refreshed states.

13 June 2026 · Sound pack

Sounds cleared for distribution.

The default “Original” pack, the blink, posture, and break-reminder cues, and the full “8-bit” channel are swapped for CC0 and public-domain audio from Wikimedia Commons, free to use and redistribute. Clips were trimmed, loudness-normalized, and given short fade-outs. Filenames are unchanged, so nothing about how you pick sounds changes.

NOTICE.md now records every source and license, and flags the remaining melodic packs as still LookAway-sourced and not yet cleared for distribution.

10 June 2026 · Wellness & goals

Guided breaks, goals, and a steadier clock.

Breaks stop being passive. Instead of a phrase and a countdown, each break can walk you through an activity: an eye routine where a dot drifts near and far for you to follow, 4-4-4-4 box breathing with a ring that grows and shrinks through each phase, or rotating stretch cards on longer breaks. Choose one in Timing, Off, Eye exercise, Breathing, Stretches, or Rotate all, with Rotate the default.

Stats gain a reason to come back. A daily goal ring tracks breaks taken against breaks due, where 70% counts as a good day rather than perfection, and a break-goal streak counts the days you’ve met it, shown as a flame chip in Trends and the Stats pane.

The wellness pills now demonstrate the action instead of only naming it. The blink pill’s eye glyph blinks three times; the posture pill’s figure straightens up from a slouch. Reduce Motion renders them static.

A third reminder joins blink and posture. A hydration nudge, “Time to sip water,” is opt-in and arrives every 60 minutes by default, with its own frequency, size, position, and sound in the Reminders pane.

A weekly insight sums up the past week of focus and breaks in the popover and the Stats pane.

Stability

Timekeeping is reworked to stay honest. The countdown now counts whole seconds against a wall-clock anchor, so a busy Mac can’t slow it down; sleeping the machine no longer credits focus across the gap; and the break countdown holds until the overlay’s first full-duration frame is on screen.

Fixes

The locked skip control is now a single pill with a determinate progress ring and a “Skip in Ns” countdown. Stats empty states get warmer copy that explains what will appear, and the Now popover picks up keyboard access, Return for the primary action, ⌘, for Settings, and ⌘1 / ⌘2 to switch Now and Trends.

Tests

New coverage for wall-clock timekeeping and sleep/wake, the goal and streak math, the guided-break math, the hydration cue, and the weekly insight.

2 June 2026 · Unreleased

Automations, and a glass refresh.

Iris can now run an AppleScript or a Shortcut when a break starts or ends. Build each one in Settings, give it a name, and test it before it saves. Nothing is stored until a test run succeeds.

A scripting dictionary opens Iris up to the rest of your Mac. Start or stop the timer, begin the next or a long break, pause and resume, postpone, or open settings, all from AppleScript or the Shortcuts app.

Coming back from idle gets its own pre-break prompt. The heads-up display shows a richer active-after-idle message with a countdown ring before the break begins.

The interface picks up a glass pass. Buttons and cards gain a translucent treatment, stats move into Apple style cards, and a score ring sums up your day.

Fixes

Ending a break while a meeting or another pause is still active now leaves Iris paused, instead of starting a fresh focus block.

Sensor-driven pauses no longer wake a timer you stopped, and wallpaper refreshes no longer hitch the rest of the app.

Infrastructure

App startup is reorganized into grouped runtime services, each with a clean shutdown path for sensors, overlays, and automation. Stats writes now notify only after the write lands.

Tests

New coverage for the stopped-timer pause guard, ending a break during an active pause, non-blocking automation runs, delayed AppleScript firing, and wallpaper threading.

26 May 2026 · Stats history

Stats history and a two-tab popover.

The menu bar popover splits into two tabs, Now and Trends, with an animated segmented switcher. Now keeps the live timer and today’s break summary. Trends charts the last weeks of focus and breaks.

Settings Stats gains the same split. A Today and Trends toggle sits above an Apple Health style view with 7, 14, and 30 day ranges, each metric marked trending up, down, or holding steady.

Behind both, the stats engine now rolls up taken, skipped, and missed breaks alongside focus time per day across the selected window.

Fixes

Skipping a break now registers in your stats. A skip is counted as skipped, no longer dropped or miscounted as a break taken.

Infrastructure

A shared theme environment and centralized motion tokens land in the design system. Onboarding and the popover move onto them.

Tests

New coverage for the end-to-end skip flow, multi-day trend roll-ups, and popover presentation, plus added timer state-machine and idle monitor cases.

25 May 2026 · Settings & stats

Settings shell and audio channels.

Settings move to a unified sidebar and detail layout, with shared section cards and row styling across Timing, Auto-pause, Sounds, Reminders, Stats, and General.

Sounds gains an audio channel picker. Break cues can use a new 8-bit asset set, and wellness reminders route through the same cues.

Stats now show focus distribution and top apps. The popover surfaces hourly focus alongside today’s break summary.

Idle auto-pause now tells a short step-away from a full break. Brief absences resume without crediting extra focus.

Tests

Coverage added for audio channel routing, hourly focus bucketing, and the idle resume state machine.

24 May 2026 · v0.10.0 · Phase 10

Dynamic Island HUD.

The pre-break HUD is rebuilt around the macOS Dynamic Island pattern. Countdown sits left of the notch, “Start now” to the right.

Hover and the pill morphs downward to reveal “Look 20 ft away,” a single continuous shape animating its wings and corners together.

Wellness reminders adopt the same flanking layout: “Time to” left of the notch, “blink” or “sit up” to the right. No icons, just text either side of the hardware notch.

Infrastructure

New notch-panel architecture. Panel width is capped so menu bar items stay reachable on both sides, and the pill is hidden from screen recording for privacy.

The HUD lands on the notched display even when your key window is on an external monitor, and rebuilds when displays connect, disconnect, or the lid opens.

Tests

12 new tests cover panel config, notch-shape geometry, and the flanking-text contract. 56 total.

23 May 2026 · Phase 9

Wellness reminders, redesigned.

A notch-style pill drops from the menu bar. Replaces the older circular overlay.

Settings now use preset pickers, not typeable fields. Pill sizes: large, medium, small (32 / 40 / 52 pt).

Break overlay respects notch padding. New posture symbol.

Infrastructure

GitHub Actions CI on macOS 15 + Xcode 16.4. SPM cache, xcbeautify output, 7-day artifact retention.

Tests

258 new tests across 11 files. 306 total. Full suite runs in ~34s.

Fixes

WellnessReminderEngine no longer leaks observers across stop/start cycles.

23 May 2026 · Phase 8

Break background and wellness scaffolding.

Bundled Glaze image replaces runtime wallpaper sampling.

Settings durations are now editable.

Wellness reminder system scaffolded with overlay panels.

Fixed: break countdown freezing under any pause reason.

23 May 2026 · Rebrand

Eye Res becomes Iris.

Bundle ID: com.akshatgoel.iris. App data lives in ~/Library/Application Support/Iris/.

Status item uses a bundled BrandMark asset.

20 May 2026 · Phase 7

Design system and folder structure.

Centralized DesignSystem.swift. Every view refactored to use it, then refined against a design-critic punch list.

Sources/ restructured by domain: App, MenuBar, Features, Models, Services, DesignSystem. Tests mirror that layout. README rewritten around developer needs.

Fixes

Start break button contrast fixed. White text now sits on the accent color.

15 May 2026 · Phase 6

Camera and calendar auto-pause.

Iris pauses during camera use (calls, recordings) and scheduled calendar events.

15 May 2026 · Phase 5

Pre-break HUD and bundled audio.

Heads-up display with a soft countdown chime before each break.

Sound effects ship bundled with the app.

15 May 2026 · Phase 4

Full-screen break overlay.

Overlay spans every connected display. Wallpaper sits behind it, blurred, edge to edge.

Multi-monitor positioning bugs squashed.

15 May 2026 · Phase 3

Idle detection.

Idle sensor added. Settings toggle to enable or disable.

15 May 2026 · Phase 2c

State-aware action pills.

Timer state machine validates every transition.

Action buttons render from current context.