What's Changed
- ci: exclude docs from main CI workflow by @mistercrunch in #315
- feat(ui): add stateful URLs for board and session selection by @mistercrunch in #316
- fix(ui): improve mobile login screen centering and responsiveness by @mistercrunch in #323
- fix(ui): center loading spinner in conversation view by @mistercrunch in #322
- fix(ui): align zone toolbar elements for consistent visual appearance by @mistercrunch in #321
- feat: template-based system prompt injection with full context by @mistercrunch in #325
- feat(ui): enhance navbar facepile + fix user env vars by @mistercrunch in #324
- feat: make tmux a hard requirement, remove node-pty by @mistercrunch in #326
- feat: implement executor isolation for secure SDK execution by @mistercrunch in #319
- Fix EventStreamPanel layout with wrapping pills and wider panel by @mistercrunch in #327
- feat: add auto-refresh and improved layout to environment logs viewer by @mistercrunch in #328
- feat: add Agor Cloud private beta blog post by @mistercrunch in #329
- perf: dramatically speed up Docker boot time with smart dependency caching by @mistercrunch in #331
- fix: Properly fetch tags for new repos by @Vitor-Avila in #333
- Fix executor reliability and API key resolution by @mistercrunch in #330
- fix: atomically update session state when task status changes by @mistercrunch in #335
- Fix session state synchronization on task create by @mistercrunch in #338
- Fix: Pass authentication params to all service calls in TasksService by @mistercrunch in #339
- fix: session state timing and Gemini tool execution bugs by @mistercrunch in #340
- feat: add unix_username field to User model for process impersonation by @mistercrunch in #337
- fix: preserve session context when queueing and processing messages by @mistercrunch in #341
- feat: migrate from tmux to Zellij and remove node-pty by @mistercrunch in #334
- fix: align Husky pre-commit with CI enforcement by @mistercrunch in #342
- feat: improve Bash tool display in conversation UI by @mistercrunch in #336
- fix: wire up abortController to tool's stopTask method by @mistercrunch in #343
- fix: cosmetic UI improvements and Docker build race condition by @mistercrunch in #344
- Fix multiple bugs from issue #346 by @mistercrunch in #347
- fix: prevent NODE_ENV leakage to user startup scripts by @mistercrunch in #348
- feat: upgrade Claude SDK and add Opus 4.5 support by @mistercrunch in #362
- fix: automatically process queued messages when session becomes IDLE by @mistercrunch in #360
- fix: automatically reset SDK sessions when MCP servers are added after creation by @aminghadersohi in #363
- feat: add repository deletion options with filesystem cleanup by @mistercrunch in #361
- fix: pass only user vars to writeEnvFile, not full env by @mistercrunch in #349
- feat: add JWT token authentication support for MCP servers by @aminghadersohi in #320
- fix: optimize Docker volumes to prevent bloat and reduce disk usage by @mistercrunch in #367
- fix: simplify MCP server scoping and remove dead code by @mistercrunch in #365
- fix: audio chimes not working on hosted environment with /ui/ base path by @mistercrunch in #368
- feat: sort board dropdown alphabetically by name by @mistercrunch in #370
- feat: board clone/export/import + pass user environment variables to executor by @mistercrunch in #369
- fix: capture git SHA at task end in executor architecture by @mistercrunch in #371
- Fix JWT Authentication with Integration Tests by @SophisticaSean in #364
- Refactor authentication helpers and fix WebSocket event broadcasting by @mistercrunch in #372
- fix: preserve session permission mode when spawning executor by @mistercrunch in #373
- feat: convert conversation drawer to resizable panel by @mistercrunch in #375
- feat: add Figma-style two-finger scrolling in select mode by @mistercrunch in #376
- feat: allow pinned worktree cards to be dragged between zones by @mistercrunch in #378
- feat: add Figma-style zoom-independent zone labels with ellipsis by @mistercrunch in #380
- fix: correct streaming event names and add session_id to all events by @mistercrunch in #377
- feat: add NUKE environment command for destructive cleanup by @mistercrunch in #379
- fix: ensure Zellij terminals always navigate to correct worktree directory by @mistercrunch in #387
- fix: ensure worktree cards spawn in center of viewport by @mistercrunch in #389
- fix: resolve Environment tab regenerate issues by @mistercrunch in #386
- fix: resolve subsession callback authentication failure by @mistercrunch in #385
- feat: make comments panel resizable with Streamdown support by @mistercrunch in #384
- fix: improve NewSessionButton positioning for better visual balance by @mistercrunch in #393
- feat: enhance spatial comment creation with rich autocomplete by @mistercrunch in #395
- perf: eliminate pnpm install at container startup by @mistercrunch in #396
- feat: add file upload support to conversations by @mistercrunch in #394
- feat: add gradient branding to logo text by @mistercrunch in #398
- feat: replace hamburger menu icon with list icon for sessions drawer by @mistercrunch in #399
- feat(ui): add centralized session title formatting with responsive CSS line-clamp by @mistercrunch in #400
- fix(executor): implement bulletproof stop mechanism with ACK protocol by @mistercrunch in #401
- chore: clean up verbose logging and fix frontend warnings by @mistercrunch in #403
- feat: OpenCode integration with streaming support and SDK migration by @mistercrunch in #402
- feat(ui): replace ReactFlow tooltips with Ant Design tooltips by @mistercrunch in #405
- chore(deps): upgrade agentic coding tool CLIs and SDKs by @mistercrunch in #406
- feat: MCP tool discovery and permissions UI improvements by @aminghadersohi in #381
- fix(ui): wire onNukeEnvironment callback through component hierarchy by @mistercrunch in #408
- feat(ui): add comprehensive file browser for worktree files by @mistercrunch in #412
- fix(daemon): trigger parent queue processing after callback queued by @mistercrunch in #413
- fix(daemon): prevent duplicate callback execution with queue processing lock by @mistercrunch in #415
- fix(executor): implement bulletproof stop with concurrent monitoring by @mistercrunch in #414
New Contributors
- @SophisticaSean made their first contribution in #364
Full Changelog: v0.8.7...v0.9.1