Changelog
All notable changes to Irrlicht, following Keep a Changelog conventions.
v0.2.5 (2026-04-05)
Added
- Pi coding agent adapter — Monitor Pi sessions alongside Claude Code and Codex. Watches
~/.pi/agent/sessions/, parses JSONL v3 transcripts, detects state fromstopReason, extracts tokens/cost/model, and supports Pi subagent linking viaparentSession - Pi icon in macOS menu bar — Greek letter pi (π) icon distinguishes Pi sessions from other agents
v0.2.4 (2026-04-05)
Added
- Will-o’-the-wisp app icon — Custom purple wisp flame icon for the macOS app bundle, replacing the default icon
- Will-o’-the-wisp favicon — SVG and PNG favicons added to landing page and all documentation pages
- SEO metadata — Open Graph, Twitter Card, and canonical URL tags across all site pages
- CLAUDE.md development guide — Project conventions, build commands, and architecture overview for AI-assisted development
Fixed
- Ready sessions no longer deleted while process is alive — Sessions in ready state are preserved as long as their Claude Code process is still running, preventing premature cleanup during idle periods
Distribution
- ir:release skill — Automated release pipeline with DMG, PKG, universal binary builds, changelog updates, and GitHub release creation
- DMG background asset for branded installer experience
v0.2.3 (2026-04-04)
Added
- Subagent session lifecycle — Background and foreground subagents are detected as child sessions linked to their parent, with real-time state tracking and automatic cleanup when finished
- Purple badge — Parent sessions display a live count of active subagents in a purple circle badge in the menu bar
- Hierarchical dashboard API —
GET /api/v1/sessionsreturns aDashboardResponsewith Orchestrator → Group → Agent → Children hierarchy - PID discovery retry with backoff — Retries at 500ms, 1s, 2s intervals with CWD-based fallback when lsof fails
- macOS app improvements — Debug mode (
IRRLICHT_DEBUG=1), dev daemon support, clean shutdown, version display in UI, WebSocket keepalive with auto-reconnect - irrlicht-ls enhancements —
--format jsonoutput,--idprefix filter, hierarchical display with indented child sessions and agent count badges
Changed
- Modular SessionDetector — Refactored into focused collaborators:
StateClassifier(pure state transitions),MetadataEnricher(git/metrics),PIDManager(process lifecycle) - Unified processlifecycle package — Process scanner and process watcher merged into a single adapter
- Cascade delete removes all child sessions when a parent session is deleted
- Stale child sessions (transcript >2min old) cleaned up automatically in periodic sweep
Fixed
- No false “waiting” state during tool execution — Only user-blocking tools (AskUserQuestion, ExitPlanMode) trigger waiting; Agent, Bash, Read etc. correctly show as working
- Multi-instance session assignment — Running two Claude Code sessions in the same repo no longer causes PID conflicts; disambiguator ensures unique assignment
- Subagent badge no longer persists after agent finishes
- WebSocket connection state replaced
isWatchingflag with properConnectionStateenum
v0.2.2 (2026-04-03)
Added
- Embedded daemon in app bundle — Irrlicht.app bundles both SwiftUI UI and Go daemon; no separate services needed
- DaemonManager — Auto-spawns, monitors, and restarts embedded daemon with exponential backoff
- Session tooltips on hover in menu bar popover
- DMG and PKG distribution artifacts
Fixed
- Delete sessions immediately on process exit
- Skip orphan transcript files on startup
- Delete old session when
/clearreuses same PID - Filter daemon self-PID from lsof
- Ready-session TTL cleanup (30min default)
v0.2.0 (2026-04-03)
Added
- OpenAI Codex adapter with recursive directory watching for
sessions/YYYY/MM/DD/structure - Per-model pricing data and
EstimateCostUSDfor cost tracking - Cost display in menu bar UI per session and per project group
- Token breakdown tracking (input, output, cache read, cache creation)
- Codex transcript event parsing (
message,response_item,function_call,turn_context) - Codex model detection from
~/.codex/config.toml - Content character counting for token estimation when explicit counts unavailable
- GPT-5.4 model capacity entry
- Dark mode adaptive Codex SVG icon
- Project name coloring by max context utilization (green/yellow/orange/red)
- macOS
.pkginstaller bundling daemon + app + LaunchAgent
Changed
- Filesystem watcher now recursively watches all subdirectories (supports deep nesting)
- Git adapter resolves main repo root via
--git-common-dir(worktree-aware) - Git adapter strips
worktree-prefix from branch names GetCWDFromTranscriptnow tail-reads last 32KB for latest CWD (supports mid-session worktree switches)- CWD/branch/project refreshed on every activity (not just on first detection)
- Context utilization tests updated for 1M context windows
- Token extraction refactored with shared
extractUsagehelper - Model config updated to v2.1.0 with pricing data for all models
build-release.shnow builds both daemon and Swift app, creates.pkginstaller
Fixed
- ESC cancellation detection using
is_errorflag on tool results - Parent session state adjustment based on sub-agent activity
- Permission prompt detection as waiting state
- Filesystem watcher race condition on directory creation
v0.1.0 (2026-03-20)
Added
- Initial release
- Claude Code session monitoring via filesystem watching
- Three-state model: working, waiting, ready
- macOS SwiftUI menu bar application
- Go daemon (
irrlichd) with HTTP API and WebSocket streaming - Context utilization tracking with pressure levels
- Process exit detection via kqueue
- Pre-session detection via process scanning
- Git branch and project name resolution
- mDNS/Bonjour service advertisement
- Embedded web dashboard
irrlicht-lsCLI listing tool- Structured JSON logging with rotation
- Gas Town orchestrator integration
- Subagent detection and parent-child relationships
Format
This changelog follows the Keep a Changelog conventions. Versions use Semantic Versioning.
Types of changes:
- Added — new features
- Changed — changes in existing functionality
- Deprecated — soon-to-be removed features
- Removed — now removed features
- Fixed — bug fixes
- Security — vulnerability fixes