Published July 29, 2026ZackEyes 0.9.6
Added
- Per-session LISTEN port badge: the lowest port opened anywhere in a session's process subtree, shown as :3000 +2 when there are more. Read straight from kernel syscalls, with no lsof and no subprocess.
- Git branch and uncommitted file count on every session card, staying correct when you switch branches mid-session.
- Claude subagent tracking: the card shows what a dispatched subagent is working on, not just that one is running.
- Context compaction is no longer indistinguishable from a hang. The card says "Compacting context" while it runs and "Context compacted" for a minute after it finishes.
- A terminal jump that matches no window now says why, either no window or grant access, instead of silently doing nothing.
Published July 28, 2026ZackEyes 0.9.4
Added
- Crayon Shin-chan theme with seven character sounds, plus three team-radio calls for the F1 2026 theme.
- Test Pipeline button in Settings that spawns the real hook and waits for the event to arrive, instead of checking whether files exist.
- Recent events section in the diagnostics export, recording what ZackEyes did with each event and why a notification did or did not fire.
- Single-instance protection: a second copy now says the first one is running instead of quietly taking the socket from it.
Fixed
- Concurrent permission requests could be answered on the wrong one. Approvals are now matched by request id.
- Large hook payloads were dropped, and the bridge could print errors into the agent terminal.
- Live sessions could vanish from the panel after about ninety seconds of thinking time.
- Hook ownership is decided by the launcher executable rather than a path substring, so uninstall and repair leave third-party hooks alone.
- User config writes now survive a crash or power loss.
Published July 18, 2026ZackEyes 0.9.3
Fixed
- Healthy Codex prolite accounts were flagged as limit-reached: the plan chronically reports a zero add-on credit balance while its live windows govern the quota, and the out-of-credits heuristic misread that shape — the credits signal now only applies to the real block shape where Codex nulls both windows
Published July 18, 2026ZackEyes 0.9.2
Fixed
- Interactive /compact finish chime: Claude Code TUI never fires the PostCompact hook (upstream anthropics/claude-code#78760), so the v0.9.1 chime only worked in print mode — completion is now inferred from the context collapse in the first post-compaction StatusLine reading, with a shared cooldown so a future upstream fix cannot double-chime
Published July 18, 2026ZackEyes 0.9.1
Added
- Chime and notification when a manual /compact finishes (Claude Code PostCompact hook; auto-compact stays silent by design)
Fixed
- Codex quota bars showed the weekly quota in the 5h slot after the 5h limit was temporarily lifted — windows are now classified by window_minutes instead of position, and stale cached 5h readings are dropped
Published July 13, 2026ZackEyes 0.9.0
A unified Settings window, configurable quota presentation, and attention-first session grouping.
Added
- A unified Settings window, opened from the notch gear or the menu-bar icon, consolidating visibility, quota presentation, appearance, notifications, integrations, and updates in one place (previously split across two divergent gear menus).
- Configurable quota presentation — show Used or Remaining capacity, pick the fill direction, and optionally overlay how much of the 5h/7d window has elapsed (Off / Icon / Overlap) with adjustable opacity.
- Attention-first session grouping — active sessions are split into Needs You, Running, and a collapsible Recent so whatever is waiting on you surfaces first.
- Buddy animations now respect the macOS Reduce Motion setting.
- The menu-bar star now signals quota pressure by shape as well as color (a circle when tight, a triangle when about to throttle) for clearer color-blind legibility.
Fixed
- One shared command menu across notched and non-notched Macs, with Quit always reachable from the menu bar, the gear, and Settings.
Published July 7, 2026ZackEyes 0.8.4
Codex quota retention and reset-countdown fixes.
Fixed
- Codex 5h/7d quota no longer collapses to No Data after the session goes idle; the last reliable reading is retained until each window resets, instead of being cleared on the 15-minute rollout activity window (#162).
- Codex usage-limit badge now shows a correct resets-in countdown that targets the binding window, survives the block and an app restart, and no longer lingers forever or vanishes on idle (#172).
Published July 6, 2026ZackEyes 0.8.3
Token composition breakdown and a waiting-for-input chime.
Added
- Today row now breaks tokens into input / output / cache-write / cache-read, surfacing the cached portion (especially cache read) that the headline count excludes (#167).
- Chime and macOS notification when an agent blocks mid-task waiting for input (a permission prompt or an AskUserQuestion choice), with a "Sound when waiting for input" gear-menu toggle; on by default with a per-session cooldown (#169).
Published July 2, 2026ZackEyes 0.8.2
Codex quota on notched Macs, and calmer notch expansion.
Added
- On MacBooks with a notch, a "Compact display" menu option to choose whether the pill shows Claude or Codex quota.
Fixed
- Codex 5h/7d usage now appears on MacBooks with a physical notch instead of showing "no data": the notch shows the selected agent's quota, falls back to whichever agent has data, and an empty Codex "premium" record can no longer overwrite your real account quota.
- The notch no longer pops open when the cursor merely passes through it (for example, moving between vertically stacked displays); it now waits for a brief, intentional hover before expanding.
Published June 30, 2026ZackEyes 0.8.1
Codex usage-limit visibility and accurate 5h/7d quota.
Added
- Codex usage-limit visibility: when Codex hits its usage limit or runs out of credits, the panel now shows a "limit reached" banner and a notification instead of staying silent.
Fixed
- Codex 5h/7d usage now reflects your real account quota: concurrent Codex sessions no longer mask each other's usage, and an unreported account number no longer shows as "100% remaining".
Published June 20, 2026ZackEyes 0.8.0
ZackEyes 0.8.0 — security-hardening release on top of the new real Dynamic Island.
Added
- Real Dynamic Island — on MacBooks with a notch, the live panel now merges into the physical Dynamic Island instead of a separate simulated pill, and falls back to the screen's safe-area inset when the menu bar is auto-hidden.
Fixed
- Token usage no longer freezes and then jumps during long deep-research and workflow runs: the 5-hour percentage is interpolated from transcript token growth between updates, so it moves smoothly and feeds a steadier burn-rate estimate.
- Codex usage now handles the per-model rate limits that recent Codex versions report, so a freshly-reset per-model limit at 0% no longer hides your higher account-level usage.
- The 5-hour reset countdown stays visible alongside the burn-rate ETA badge instead of being replaced by it.
- The local control socket that gates tool-permission prompts now authenticates its peer, lives in an owner-only directory instead of world-connectable /tmp, and times out cleanly; the bridge verifies it is talking to the real ZackEyes.
- The offline event spool is written owner-only, replays only a fixed allowlist of event types, and no longer trusts attacker-writable on-disk data.
- Terminal titles and notifications are sanitized at the escape-sequence boundary, and session identifiers are validated before use as cache filenames, preventing path traversal.
- The diagnostics export redacts third-party status-line commands, the username (any case), and the hostname.
- "Allow Always" no longer remembers high-risk tools such as Bash — those still ask every time.
- Read caps and overflow/growth guards were added across the Codex token scan, task extraction, token counting, and the file tailer to prevent runaway resource use.
- The updater reconstructs the download URL from trusted components, rejects downgrades, downloads into a private owner-only directory, and verifies the file is a real disk image before opening it.
Published June 17, 2026ZackEyes 0.7.2
Security hardening patch.
Fixed
- Authenticated the local control socket: it now verifies peer credentials and only accepts connections from the same user (and restricts the socket to owner-only 0600). Previously any local process could connect to the unauthenticated socket that gates tool-permission prompts.
- Bounded the transcript scan with a per-file size cap and an explicit symlink skip, so an oversized or symlinked file placed in the projects tree cannot drive a runaway read.
Published June 17, 2026ZackEyes 0.7.1
Usage accuracy fix for multi-agent runs (deep research and workflows).
Fixed
- Token usage now counts subagent and Workflow-tool agent transcripts, not just the main session. During deep-research and workflow runs — where background agents do most of the work — the Today consumption row, the 7-day sparkline, and the burn-rate input were undercounting badly (over 10x on heavy workflow runs); they now reflect the full token spend. A per-file parse cache keeps the wider transcript scan within the same near-zero idle CPU budget.
Published June 13, 2026ZackEyes 0.7.0
Reliability & diagnostics release: see and repair your hook health, fully uninstall integrations, export a shareable diagnostic report, recover events across restarts, and keep the panel visible only when it matters.
Added
- Hook Status window — an at-a-glance health check (Claude & Codex hooks, bridge launcher, launcher resolution, socket reachability, statusLine ownership) with one-click Repair, reachable from both the status-bar and gear menus.
- Complete integration uninstall — preview exactly what will be removed, then strip ZackEyes hooks, statusLine entries and the launcher while preserving third-party entries and your own files; every config write is backed up first.
- Export Diagnostics — a privacy-redacted, human-readable report (versions, hook health, socket, usage freshness) you can review before sharing and safely attach to a GitHub issue; home paths and username are redacted and no prompt content is ever included.
- Offline event recovery — fire-and-forget hook events that occur while ZackEyes is closed now spool to disk and replay at next launch, so session activity is not lost.
- Passive session discovery — Claude sessions started after launch now appear within about a minute even when hooks are not installed.
- Check for Updates menu item — trigger an update check on demand instead of waiting for the periodic poll.
Changed
- Dynamic Island visibility is now a three-way choice — Always, Only When Sessions Active (auto-hides when idle, reappears on activity), or Hidden.
- Menus reorganized — diagnostic and maintenance actions (Hook Status, Uninstall, Check for Updates, Export Diagnostics) are grouped at the bottom, near Quit.
Published June 5, 2026ZackEyes 0.6.0
Burn-rate cap prediction, plus a more glanceable and trustworthy usage panel.
Added
- Burn-rate cap ETA — a glanceable "~XX min to 5h cap" extrapolated from your live usage rate, shown on the expanded 5h bar (amber, red when imminent) and surfaced on the collapsed pill only when the cap is close.
- Completion recap on idle session cards — the agent's last reply behind a checkmark, tap to expand to full text, with an "N tools, duration, cost" line. Falls back to the transcript when no live stop event arrived.
- Usage freshness indicator — an "updated N min ago" footnote under the usage bars that turns amber when the data is stale, so idle numbers (and the cap ETA derived from them) are never mistaken for live.
Changed
- The permission card's "Allow All" button is now "Allow Always", with a tooltip. It auto-allows that one tool for the rest of the session (it was always per-tool, never all tools).
Published June 3, 2026ZackEyes 0.5.1
Fixed
- Daily token totals were inflated by cache reuse. Claude now counts input + output + cache-creation and excludes cache reads; Codex excludes its cached-input reuse. The Today row and 7-day sparkline now show distinct tokens processed, so Claude and Codex are directly comparable.
Published June 3, 2026ZackEyes 0.5.0
Added
- Daily token & cost consumption — a "Today" row in the expanded panel with a 7-day sparkline, covering both Claude Code and Codex.
- Bundled model pricing table with periodic refresh, converting token usage to USD locally (works offline, no API key).
- Per-session cost for Codex — session cards now show $ next to context %, matching Claude.
Fixed
- Token over-counting: Claude Code splits a single API response across multiple transcript lines that repeat the same usage. Usage is now de-duplicated by message id, correcting Today / 5h / 7d token and cost figures (previously inflated roughly 2x).
Published June 1, 2026ZackEyes 0.4.5
Reposition the simulated notch out from under menu-bar icons, an Allow All session-scoped permission shortcut, and a fix for the dead "answer in terminal" CTA.
Added
- Movable simulated notch: gear menu → Move Notch ▸ Reposition… lets you drag the pill horizontally to clear menu-bar icons it would otherwise sit under. Dragging near the middle snaps it back to exact center, or Reset to Center recenters in one click. The horizontal offset is persisted and restored on the next launch. Macs with a real notch are unaffected — a physical notch is hardware-fixed and centered.
- Allow All permission button: a third choice alongside Deny / Allow Once that approves the current request and auto-allows the same tool for the rest of the session, so back-to-back same-tool prompts (e.g. repeated Bash calls) stop interrupting. Scoped per tool name and per session, and fully client-side — it never writes ~/.claude/settings.json and is cleared on session end or app restart.
Fixed
- The AskUserQuestion card's "Click to answer in terminal" CTA did nothing: it relied on a container-level tap gesture that competes with scroll recognition inside the notch's ScrollView and frequently never fired. It is now a real Button, so clicking it reliably jumps to the terminal.
Published May 18, 2026ZackEyes 0.4.4
Two notch additions that close the Codex/Claude visibility gap: model name, agent label, subagent badge, and a cross-agent permission-risk indicator.
Added
- Codex sessions now show the model name (gpt-5.5, codex-auto-review, etc.) next to context-window size in the popup. Codex has no Claude-style StatusLine hook, so the value is parsed from the per-session rollout JSONL — resumed sessions surface the model immediately at attach time, and subsequent turns keep it fresh.
- Subagent badge: guardian / auto-review / other Codex subagent threads now render as [CODEX • GUARDIAN] in the session card, so they are visually distinct from your main user thread instead of looking identical to it.
- Permission-risk badge for both agents: PLAN (blue) for Claude plan mode, AUTO (amber) for Claude acceptEdits or Codex never+workspace-write or Codex on-request+danger-full-access, YOLO (red) for Claude bypassPermissions or Codex never+danger-full-access. Hidden in the default "asks every time" state — the badge job is to catch your eye precisely when the session will not ask.
Fixed
- The assistant-reply row in the notch popup no longer says "Claude:" for Codex sessions — it now correctly switches to "Codex:" based on the session agent.
Published May 18, 2026ZackEyes 0.4.3
Codex resumed-session visibility fix and terminal-jump click resilience.
Fixed
- Resumed Codex sessions (codex --resume) now surface in the notch even when their rollout file lives in an older YYYY/MM/DD directory; the scanner walks every date directory and filters by file mtime instead of pruning by directory name.
- Click on a session card always lands somewhere: when the cached agent PID is stale or accessibility-matching cannot pick a tab, the click falls back to cwd-based AX matching and finally activates the first running terminal, replacing the silent "nothing happens at all" failure mode.
Published May 16, 2026ZackEyes 0.4.2
Codex popup context usage fixes, Codex notification noise reduction, and hook launcher/statusline resilience updates.
Fixed
- Codex popup context usage fixes for clearer runtime state in the notch.
- Notification noise reduction so Codex completion signals are less repetitive.
Resilience
- Hook launcher and statusline resilience updates for more reliable agent event delivery.
- Keeps the public DMG release channel as the installer source for authenticated-free updates.
Published May 12, 2026ZackEyes 0.4.1
Maintenance release in the public update channel.
Release channel
- Published as a public GitHub Releases DMG for the in-app updater.
- Kept the no-authentication download path for users outside the private source repository.
Published May 11, 2026ZackEyes 0.4.0
Maintenance release baseline for the 0.4 series.
Release channel
- Established the 0.4 series public release line.
- Distributed through the same GitHub Releases channel used by the in-app update checker.
Published May 5, 2026ZackEyes 0.3.2
Codex session state fixes and compatibility documentation improvements.
Fixed
- Codex session state fixes for cards that could get stuck.
- Terminal click-to-jump behavior restored for affected Codex sessions.
Docs
- Improved Codex compatibility documentation for the v0.3.0 and v0.3.1 behavior changes.
Published May 3, 2026ZackEyes 0.3.1
Codex session recency and liveness fixes so stale rollout cards no longer pile up in the notch.
Fixed
- Idle Codex cards are pruned instead of lingering long after the TUI closes.
- Codex sessions with no pending permission and no recent activity are evicted after a short liveness window.
Scanner
- Per-agent recency windows: Claude defaults to a longer lifecycle window, while Codex uses a tighter rollout window.
- The JSONL tailer can recreate a Codex session on the next task completion event.
Published May 3, 2026ZackEyes 0.3.0
Added OpenAI Codex CLI as a parallel agent alongside Claude Code, including Codex hooks, JSONL tailing, usage limits, and tagged notifications.
Added
- Both agents in one notch: Claude Code and Codex CLI sessions, permissions, errors, and quota signals share the same Dynamic Island UI.
- Codex hook installation for SessionStart, PreToolUse, PostToolUse, PermissionRequest, Stop, and UserPromptSubmit events.
- CodexJsonlTailer watches already-running Codex rollouts and surfaces task completion without requiring a restart.
Interface
- Agent badges identify each card as Claude or Codex.
- Compact display setting lets users choose which agent quota appears in the always-visible pill.
Published Apr 27, 2026ZackEyes 0.2.9
Public release channel and in-app DMG download without a GitHub token.
Added
- In-app DMG download for new versions.
- Update checker polls the public ZackEyes-release repository instead of private source releases.
Removed
- GitHub token requirement for update checks.