Changelog

What changed in each release.

Security

  • The NOOK_PORTS fan-out no longer carries awaited directives; only named endpoints can answer
  • A gated agent can no longer rewrite its own execution-verification mode via a world-writable file

Added

  • Sessions are titled by what they are about, not by the first sixty characters
  • "Mute while active" counts fullscreen media as being present at the Mac
  • Hidden nook peeks through with a jumpable band when an approval or question arrives
  • The phone's conversation thread shows your sends inline, answers in place, and interrupts a run
  • Agent surface expansion configurable: auto-close after a delay, keep open, or don't expand
  • Each app's mixer meter is coloured from its own icon
  • Timer preset durations are user-settable in the Configure Timer popup
  • New agent sessions can be started directly from the iPhone
  • A hidden nook expands when the pointer arrives at its spot
  • A running phone session wears one of 108 playful working words
  • Audio routing can be turned off without removing the mixer module
  • Foreground sounds can be muted independently of hiding the island

Changed

  • The timer crest shoulders curve away from the tip rather than bulging over it
  • An idle or full timer tape is one uniform row; the crest rises only mid-countdown
  • The system module samples sensors off the main thread; a slow reply is late, not frozen
  • The phone's conversation list holds still while agents work
  • Launching no longer waits for the camera daemon
  • The day module no longer waits on the calendar daemon
  • A module's height follows its features; the "⋯ N more" overflow row is gone
  • Compact island slots follow one rotation order; per-slot rankings and interrupt settings are gone
  • Campfire and Agent Squares are now one Agents item with a style setting
  • The panel's activity light signals only changes arriving while the panel is open
  • The island carousel is now a plain offset row, ending ghosting and stuck pages
  • A jump pauses media only when it would actually take it off screen
  • Mixer app rows always show; a permission gate no longer replaces them
  • The phone's widget faces use four rows and keep waiting sessions on top
  • Completed turns now sort above running ones in the agents grid
  • Fullscreen detection is per display and uses real spaces, not just window area
  • Fresh tiles show only their module's headline rows, fitting the island out of the box

Fixed

  • Killed agent CLIs settle off the island instead of lingering as Idle rows
  • A flaky network halts once; repeated retry errors no longer alert and re-sort each time
  • The waveform asks for System Audio Recording, not Screen Recording
  • Calendar, camera and system audio now reach macOS's permission prompts
  • The app quits gracefully on SIGTERM instead of holding its charge lease
  • The phone's list says when offline and how stale the mirror is
  • Unsent reply drafts survive navigation and relaunch
  • The charge-limit handle is grabbable at 100% and stays inside the bar
  • Overheat protection holds on the OS charge limit instead of cutting adapter power
  • An OS charge limit survives an unplug instead of failing and locking every app out
  • macOS calibration charges are recognised and announced rather than read as a lost cap
  • The helper checks a held charge limit every 10 s rather than every second
  • Renaming a session no longer makes its lock-screen approval read as forged
  • Phone reconnections back off exponentially instead of hammering a dead host
  • Rapid panel swipes register again instead of being swallowed by a cooldown
  • The pager re-asserts its target when a slide's write-back is silently dropped
  • The git branch is read from cache instead of walked on every render
  • Tailscale calls no longer deadlock when the child fills its stderr pipe
  • Graceful quit always finishes even when the charge-limit release goes silent
  • A fixed plugin body now re-pushes to already-mirrored remote hosts
  • An overheat hold parks the OS limit below 50% without cycling the gate
  • The phone's launch reads the keychain off the main thread
  • Silent Mode silences every notification and stands independent of per-type toggles
  • The phone's list shows only sessions you can actually reply to
  • Codex MCP approvals and permission grants reach the island; YOLO pre-resolves them
  • The pointer-away rule always collapses the island, regardless of any held state
  • App icon colours and the meter's FFT run off the main thread
  • The helper's registration status is read off the main thread
  • The restored verification mode reaches the bridge at launch rather than reading stale
  • A plugin declaration in the contract's own spelling is recognised correctly
  • A custom agent's install target is stated for acceptance before anything is written