Skip to content

Latest commit

 

History

History
948 lines (679 loc) · 95.1 KB

File metadata and controls

948 lines (679 loc) · 95.1 KB

Changelog

0.1.32 (2026-08-09)

Bug Fixes

  • terminal: show IME/dictation marked text in the embedded terminal (fcce2f6)

0.1.31 (2026-08-09)

Features

  • add first-class subagents (f4d4a85)
  • add first-class subagents (8e749e3)
  • add per-subagent compact thresholds (8ad6f5f)
  • chat: carry a text selection from one message into the next (23cea10)
  • chat: draw every message text row in one selectable text view (11b0564)
  • chat: give the chat composer the keyboard back, the way the terminal has it (1974d5c)
  • chat: let a selection run through cards and channel messages (35920d1)
  • delivery: steer, queue, and interrupt as first-class semantics (69bb219)
  • diagnostics: attribute memory pressure to tmux session process trees (a2e7c17)
  • markdown: render markdown into one attributed string with real tables (2f9197d)
  • queue: add a prompt history to the card menu (b446b10)
  • queue: journal every queued prompt before it can be lost (2f03797)
  • shortcuts: make Cmd+P pin the selected card (843b711)
  • subagent: let a child ask for its own worktree (ae0a8f0)
  • subagents: escalate per-card compaction the same way as global (b5bfff3)
  • subagents: fork owned children and label parent DMs (667aff6)

Bug Fixes

  • accumulated verified fixes from recent sessions (d01cd10)
  • board: centre the notice banner on the window (b533d1f)
  • board: make the notice banner readable over a terminal (43bb7b3)
  • board: show session ended instead of tmux attach error after reboot (c52695f)
  • board: stop good news arriving as a warning (ffeb985)
  • chat: cap system-style messages like every other block (5e5f85b)
  • chat: hold task notifications to the same column as every message (096900f)
  • chat: keep a table at the width it was measured at (3e3301b)
  • chat: land the search on the match instead of near it (4033035)
  • chat: make in-conversation search find and paint its match (16c0480)
  • chat: make search agree with the transcript on which turn is which (237734c)
  • chat: resolve repo#123 references against the card's owner (20d3a7d)
  • chat: stop a message with a table drawing over the one below it (11637f3)
  • chat: stop a restored draft from being thrown away on the next keystroke (8abd6fd)
  • codex: make restore-to-turn actually truncate (8102284)
  • diagnostics: survive-the-night defenses after 28GB balloon incident (bfafaf0)
  • gh: group PR lookups by remote slug so worktrees stop multiplying GraphQL calls (1249195)
  • harden subagent workflows (4de5046)
  • migration: write message.model so claude --resume works (bdda634)
  • preserve piped self-compact handoffs (7ec472c)
  • search: put the quick palette back on an eager stack (6b97180)
  • sessions: resolve symlinks when encoding Claude project folders (d086f45)
  • shell: close the pipe descriptors every spawned command borrows (5ff532a)
  • terminal: don't glue soft-wrap boundaries in implicit links (090070d)
  • terminal: stop the terminal eating scrolls meant for the palette (43c2dba)
  • terminal: trim URL punctuation; parse current codex rollouts (4442098)
  • windows: wrap pinnedCards Zustand selector in useShallow (#139) (1db691f)

Performance

  • search: deliver each match as it lands instead of per batch (5cfe872)
  • search: open the quick palette on the frame it is asked for (a25441f)
  • search: read transcripts in blocks instead of byte by byte (a17c51c)
  • search: stop scanning every transcript byte for every query (1ab21c5)
  • search: stop the quick palette indexing every card before it opens (edcf5d2)
  • search: stop the quick palette re-sorting the board on every render (7b2fb70)

Refactoring

  • gh: extract PR lookup grouping into a tested pure helper (503fabf)

0.1.30 (2026-06-16)

Features

  • app: board auto-selects a room's channel via a focus-channel marker (507826e)
  • app: board auto-selects a room's channel via a focus-channel marker (9f6add7)
  • cli: kanban launch --no-resume for fresh ephemeral agents (8133764)
  • slack: post a 👀 ack on relay and delete it on the agent's first reply (c512824)
  • windows: add project switcher dropdown to board header (0dd340b)
  • windows: add structured logging + verify Phase 0 baseline (982e412)
  • windows: APIService entity + per-card endpoint binding (#130) (30eb132)
  • windows: app-wide font scaling (Ctrl+/-/0) and list view mode (ccbd139)
  • windows: BM25 deep transcript search wired into SearchOverlay (db4a28f)
  • windows: browser keyboard shortcuts + reopen-last-closed ring (#125 steps 5+6) (#137) (816a860)
  • windows: browser tabs data layer + Tauri CRUD (#125 step 1) (#134) (10dc02d)
  • windows: browser tabs UI shell — tab strip + URL bar + DnD reorder (#125 step 2) (#135) (b37f39f)
  • windows: card merge via drop-onto-card (c8249a6)
  • windows: chat message actions — edit/delete/reactions/mentions (#113) (bad627f)
  • windows: Codex adapter — discovery + AssistantId wiring (#124 sub-PR 1/3) (#132) (bdf3a5c)
  • windows: confirm card delete + auto-select neighbor after delete/archive (b43bc8f)
  • windows: copy-to-clipboard menu in card drawer header (8a3d3fb)
  • windows: discovered-projects suggestions in Settings → Projects (926a94d)
  • windows: DM panel in chat UI (#109) (2d9c81c)
  • windows: embedded WebView2 per browser tab + back/forward/reload (#125 steps 3+4) (#138) (fdab015)
  • windows: emit drafts-changed watcher event (#111) (c73078e)
  • windows: fork_session + truncate_session — Fork in drawer menu, Checkpoint per turn (b2827fc)
  • windows: Gemini adapter — discovery + projects.json mapping (#124 sub-PR 2/3) (#133) (acab542)
  • windows: git_remote.rs + Tauri commands for canonical GitHub URLs (da2e20a)
  • windows: image upload in chat + CLI --image (#112) (1a7d760)
  • windows: image-paste pipeline for prompts (075f2f6)
  • windows: image-paste pipeline for prompts and queued prompts (8c4bc88)
  • windows: in-app merge_pr command + Merge pill in PR drawer tab (406d411)
  • windows: inject KANBAN_CARD_ID/HANDLE into card tmux launch (#106) (2118df4)
  • windows: keyboard polish — Ctrl+, opens settings, Esc layer-pop (f3a367f)
  • windows: launch confirmation dialog + richer command builder (8cde8e6)
  • windows: log when settings.json appears to originate from macOS (710c8da)
  • windows: make terminal shell configurable; default to native cmd.exe (73fad21)
  • windows: move card to another project (2e928b4)
  • windows: multi-assistant abstraction (Claude + Gemini scaffolding) (8e01c21)
  • windows: multi-tab shells per card via tmux windows (3bf5bf5)
  • windows: notification polish — last-message body + 62s dedup (2ac5984)
  • windows: notifications for inbound chat messages (#110) (c395f60)
  • windows: panic hook writes crash-*.log before abort (d6713fd)
  • windows: per-card runtime gate + in-terminal history + auto-resume (#140) (0523d42)
  • windows: per-project settings — name, repoRoot, githubFilter, promptTemplate (5718791)
  • windows: persist same-column reorder via reorder_cards command (34e9b8a)
  • windows: Phase 5 — Mutagen sync, remote status, bash wrapper deploy (c0d59ba), closes #96
  • windows: Phase 7 — channels + kanban CLI (7ebda6b)
  • windows: Phase 7 follow-ups (Parts 1–4) (43daa0a)
  • windows: pinned cards + self-compact settings (2d2a4c3)
  • windows: pinned cards section + self-compact settings (67d270a)
  • windows: port KSUID + add links.json .bkp corruption recovery (6fd7739)
  • windows: Process Manager modal (Ctrl+Shift+M) (a639cc2)
  • windows: Process Manager modal (tmux / Claude / worktrees) (a713e05)
  • windows: Pushover delivery wired into notification path (f831597)
  • windows: queued-prompt auto-send driven by hook Stop events (ca66f91)
  • windows: rich PR enrichment — body, CI checks, review decision, approvals (37deb36)
  • windows: self-compact generation loop + Claude Code statusline (#131) (6f6956f)
  • windows: Session History parity — transcript font + auto-load (770c5e4)
  • windows: Session History parity — transcript font size + auto-load (cfea354)
  • windows: standalone parity gaps — lastOpenedAt, channel reorder, bulk kill, Ctrl+click checkpoint (#129) (7826c89)
  • windows: tmux-in-WSL adapter for terminal persistence (Phase 3) (965a797)
  • windows: unresolved-thread count + worst-CI dot on card (06dc71b)
  • windows: wire git worktree discovery + add Remove worktree action (e00f29d)
  • windows: wrap embedded terminal in tmux for reattach across drawer close (f7e4edb)
  • windows: WSL terminal-shell hint in onboarding ClaudeCodeStep (8659440)
  • windows: WSL-side hook.sh install + JSONL event tail (7fff195)

Bug Fixes

  • cli: delete a channel's history log on channel delete (d1fb6bf)
  • cli: forceFresh mints a unique session id, not uuidv5(slug) (2775ef7)
  • cli: fresh ephemeral room agents + clean channel teardown (9ae55af)
  • cli: prioritize channel help over low-level send (3410a9f)
  • self-compact: prioritize compact queue prompts (263caaf)
  • slack: clear pill + delete 👀 when the user runs /stop (6b9fc4c)
  • slack: drop stale pill on bridge restore when the agent's turn already ended (f9e0fc1)
  • slack: skip the 👀 ack on relay when the agent is already mid-turn (a988068)
  • tmux: route every paste through a uniquely-named buffer (ed3f458)
  • windows: harden crash handler against recursive panic + cross-PID race (1c8ea43)
  • windows: image-paste review fixes — renumber on remove + persist edits (24a403b)
  • windows: keyboard shortcuts also match on physical key code (0145fc5)
  • windows: make Transcript font size slider actually take effect (809b3a7)
  • windows: process-manager review fixes — tighten filter + flag boundary (545625d)
  • windows: thread theme tokens through dark-hardcoded views (b2081a8)

Performance

  • windows: chunked reverse-tail in read_jsonl (#114) (c440955)

Refactoring

  • windows: collapse tail_messages into read_messages (#107) (35a4771)

0.1.29 (2026-06-07)

Features

  • board: add pinned cards section (3e72a89)
  • board: reorder channels and pinned cards (160c492)
  • bridge: mirror Codex agent movement to Slack via rollout transcript (c330f35)
  • card: copy conversation as markdown (383b8f8)
  • channels: copy conversation as markdown (5c31168)
  • cli: headless agent runtime (launch/resume, reconcile, daemon, hooks, slack) (afc01cc)
  • cli: headless agent runtime (launch/resume, reconcile, daemon, hooks, slack) (86012bf)
  • headless: add a Codex runtime alongside Claude (06be666)
  • headless: add a Codex runtime alongside Claude (2983a12)
  • slack: /stop slash command to interrupt the agent in its channel (30f7fda)
  • slack: add 'kanban slack post' to post to a channel as the bot (631ed55)
  • slack: age out attachments after 7 days so the inbox does not grow (5da540e)
  • slack: announce self-compact in the channel (31317a7)
  • slack: broaden bot scopes to full read + write in any invited channel (b8b1002)
  • slack: buffer tool calls and flush them on the NEXT text post (227ae06)
  • slack: follow codex rollout rotation so mirroring survives restarts/compaction (552f0b5)
  • slack: live "working…" pill via assistant.threads.setStatus (04439a8)
  • slack: mark automated sends with [SYSTEM MESSAGE] (07d46e3)
  • slack: mirror Claude Code's numbered picker as Slack buttons (c40e6fb)
  • slack: mirror codex out-of-credits to the channel (e3955c5)
  • slack: mirror codex received prompts as '>>> Received user message' (c4429d9)
  • slack: mirror every injected prompt as ">>> Received user message" (cc6fa1e)
  • slack: relay file attachments into the agent prompt (25d5bb1)
  • slack: relay file attachments to the agent's tmux prompt (77ce266)
  • slack: render command tool calls in fenced code blocks (65d1a59)
  • slack: route text to channel root, fold tool calls into in-thread batches (e6571a5)
  • slack: thread agent activity under the received prompt (8381dc6)
  • slack: translate GFM markdown to Slack mrkdwn before posting (e0c817a)

Bug Fixes

  • app: make quit confirmation app-modal (0e878f5)
  • app: make quit confirmation delegate-owned (2d8f0b8)
  • app: present quit confirmation reliably (56b462a)
  • app: restore managed-session quit dialog (c376a68)
  • board: avoid lazy layout hang when pinning cards (02a2b1d)
  • bridge: match codex rollout cwd via regex (session_meta line is huge) (a9176ec)
  • build: bundle the whole cli/dist tree, not just top-level files (5fce3e5)
  • channels: avoid heavy markdown render hangs (a293d9c)
  • channels: avoid reloading cached message tails (5ea50e6)
  • channels: cap chat rendering hot path (4600dd4)
  • channels: skip no-op state reloads (4e04853)
  • chat: avoid history pagination plateau (b565af8)
  • codex: resume the prior session on restart instead of starting fresh (0df50c8)
  • daemon: send self-compact nudge straight away, not queued for Stop (ec0767a)
  • hooks: wrap codex hooks.json events under top-level "hooks" key (9665210)
  • make channel live share startup reliable (0871638)
  • notifications: bound transcript reads (93d1737)
  • remeasure prompt editor after complex pastes (440afa7)
  • search: exact PR and URL deep search (911c2fb)
  • search: highlight quoted exact matches (5252817)
  • search: make PR deep search exact and fast (6e3d487)
  • self-compact: give Claude Code 2s to settle before sending Escape (433130e)
  • slack: also detect the footer-less 'Review your answers' submit picker (961386d)
  • slack: clear the previous "is working…" pill explicitly on each new text (8ca0dde)
  • slack: drop "is working…" pill on codex out-of-credits (f904adb)
  • slack: drop the eyes-emoji ack post; light the pill on the prior anchor (4bdc027)
  • slack: drop the working pill when a codex turn ends (task_complete) (a8d68d6)
  • slack: drop the working pill when Claude finishes its turn (end_turn) (0d670d9)
  • slack: drop working pill on codex out-of-credits warning (437d1df)
  • slack: light the working pill the moment we deliver a user prompt (15fb4a9)
  • slack: light working pill immediately when a Slack human relays a prompt (5dd137a)
  • slack: mirror prompts only on confirmed receipt, suppress bridge echoes (8792f8a)
  • slack: persist the working pill across bridge restarts (2667543)
  • slack: persist working pill across bridge restarts (d8591b1)
  • slack: post pickers to channel root, not into the current thread (20a5a84)
  • slack: render agent markdown + drop stale pill on Claude end_turn (2aaa594)
  • slack: thread Claude agent activity too, via a shared thread-root (759a298)
  • stabilize prompt editor height measurement (cfacf24)
  • store: isolate chat actions from card rebuilds (0a5dd5e)
  • transcript: preserve slash command prompt text (db42014)
  • ui: keep watcher notifications on main thread (78a92e2)
  • wait for share tunnel warmup before publishing URL (6bf744d)

Performance

  • terminal: reuse resolved render attributes (49a6176)

Refactoring

  • card-menu: require explicit action routing (ec40ef9)
  • slack: drop per-tool status label, show plain "working…" pill (ce5aa83)

Documentation

  • cli: operator guide for headless agents (4964b0e)
  • spec: codex mirrors via rollout transcript, not hooks (2cb8583)

0.1.28 (2026-05-23)

Features

  • app: improve prompts and self compact settings (50915f2)
  • channels: add from filters to search (7c8a4d1)
  • cli: add self-compact command (fdda9c2)
  • prompts: preserve inline image placement (e577db4)
  • settings: link to full disk access permission (971ab1f)
  • shortcuts: resume ended sessions with command return (c76f94e)
  • ui: add channel activity and navigation cues (bd9ab1e)

Bug Fixes

  • app: avoid stale self compact prompts (d66a6ce)
  • app: include message participants in channel activity (c04b20f)
  • app: reduce UI hangs and stale undo crashes (796c5e1)
  • app: throttle active card branch discovery (e37aaf4)
  • channels: improve search and hang diagnostics (4235f35)
  • channels: repair tmux ownership and self-compact follow-up (7370ab9)
  • chat: page Codex history and restore working state (25dbc86)
  • cli: submit self compact command reliably (f8c8528)
  • cli: use fixed self compact follow-up delay (4057c0c)
  • launch: keep prompt text with image attachments (36d305a)
  • limit activity refresh to discovered sessions (2eb52bb)
  • stabilize chat rendering and add UI diagnostics (825640b)
  • store: avoid observable state exclusivity crash (4a7c2d7)
  • ui: reduce channel render load and stabilize prompt height (44213ca)
  • ui: render all card toolbar PR pills (6afd05c)
  • ui: render card drawer PRs as separate toolbar buttons (4336516)
  • ui: show more PR buttons in card toolbar (fa6e2b5)
  • ui: show sorted PR badges in card drawer (9a47f99)

0.1.27 (2026-04-29)

Features

  • channels: improve navigation search and memory use (40007df)

Bug Fixes

  • reconciler: drop stale orphan worktrees (6ad2572)
  • search: stabilize quick palette selection (3e83afb)

0.1.26 (2026-04-25)

Features

  • @mention autocomplete in channel/DM composer (f87764f)
  • add Codex CLI assistant support (338788f)
  • api-service: third-party launcher support (Ollama, model flags, base URL) (12fd29a)
  • api-service: third-party launcher support via APIService entity (0b094e3)
  • broadcast message images via inline markdown paths (a61012e)
  • browser tab shortcuts and new-tab link handling (3e41a9d)
  • channels: kick members, markdown + truncation, logger & codex fixes (f654acd)
  • channels: tint own messages in channel and DM views (1db6ccd)
  • chat: arrow-key nav + escape for @-mention picker (370866f)
  • chat: Enter inserts top mention match when picker is open (938cfb6)
  • chat: flag external messages with a warning prefix in tmux fanout (27ce61b)
  • chat: text selection, cmd+click URLs, smart scroll, and new-messages pill (f25de70)
  • Cmd+Shift+T reopens last closed tab, address bar focused on new tab (4a1416b)
  • first-class chat channels for multi-agent coordination (826c61a)
  • kanban channel/dm open deep-links into the app (f25b577)
  • share: headless share-server + cloudflared tunnel + kanban channel share (4197980)
  • share: OpenAPI spec at /.well-known + "API for Agents" button (637e8bf)
  • share: robustness, images, theme toggle, and polish (b702979)
  • share: swap SSE for long-polling + drop 50 MB of dev deps (2af885e)
  • share: Swift UI for public channel shares (66539d0)
  • share: web client (Vite + React + Tailwind + shadcn) (59e048f)
  • storage: rolling 7-day backup snapshots of links.json (f24c0cd)
  • TypeScript CLI for card inspection and agent orchestration (f0eb6df)

Bug Fixes

  • activity: detect ralph-loop / stop-hook continuation via transcript mtime (87bc0d9)
  • activity: route detectors to their own sessions (08fcde5)
  • apply excluded paths filter to CLI card listing (b7fe51e)
  • apply same activeTimeout window to Notification handler (42be99a)
  • build: use ad-hoc codesign for local dev builds (ab7c03b)
  • build: use ad-hoc codesign for local dev builds (3135148)
  • card-detail: discard stale transcript loads after card switch (285635a)
  • card: focus terminal on card switch when focusTerminal is already true (c879b0f)
  • chat scroll rewrite, send reliability, terminal selection, tmux discovery (fb3d256)
  • chat: Enter in @-mention picker inserts selected handle (9bd673a)
  • chat: float mention popover above composer (no layout shift) (1ff85f1)
  • chat: mention popover sits above composer + hover highlight (bf9de4f)
  • chat: re-focus chat composer / card terminal on drawer switch (f0c5347)
  • disable noUnusedLocals and noUnusedParameters in tsconfig (919aee8)
  • disable noUnusedLocals and noUnusedParameters in tsconfig (be2eb8b)
  • native WebKit inspector via entitlements and autoresizing (3a93ec9)
  • prevent reconcile from reverting configuredProjects (639ab6a)
  • reconciler: catch branch checkout inside existing worktrees (1985c14)
  • settings: one bad field can no longer wipe the whole config (4d0add8)
  • stable notification identifier per channel/dm (3c7321e)
  • Stop grace period instead of 5-min activeTimeout window (7591122)
  • stop Stop-event flicker without promoting dormant sessions (8185d3d)
  • use stable code signing and disable smart text substitutions (3b6db1b)
  • use which instead of where for command detection on Linux (a481ebe)
  • use which instead of where for command detection on Linux (c8726b5)

Refactoring

  • include markdown image refs in Swift fanout (parity with CLI) (712b692)

0.1.25 (2026-04-07)

Features

  • add kanban CLI and centralize shortcut display strings (8a7420b)
  • clickable #123 PR refs in chat mode, fix blank rendering (a78b8ba)
  • cmd+click GitHub issue/PR refs (#123) in terminal (8d620ec)

Bug Fixes

  • absorb new sessions by project+tmux, copy all grouped messages, add checkpoint (6aeb023)
  • Add Link always visible, Show more clickable, notification-based Add Link (d099da6)
  • chat mode scroll, rendering, and UX improvements (7260393)
  • drop custom equatable on ChatMessageView (75ac58b)
  • resolve type-checker timeout in CardDetailView onChange (61b4e77)
  • resolve type-checker timeout in CardDetailView onChange (38a9bf7)
  • rotate log file on startup when over 10MB (d8d2aeb)
  • update worktreeLink when Claude switches worktrees (EnterWorktree) (e3f921c)

Performance

  • virtualize card list in expanded sections (df8e920)

0.1.24 (2026-03-30)

Features

  • add Copy Session .jsonl Path to card actions menu (5d32d04)
  • context usage donut chart via Claude Code statusline (93c4a65)
  • message timestamps on hover, prompt history cycling, fix project cache (ba27a13)
  • show tab names in Process Manager, navigate to specific terminal tab (09ff183)

Bug Fixes

  • absorb shell tab sessions into parent card instead of creating duplicates (4d01339)
  • activity detection after Stop, merge assistant turns, show thinking blocks (545f297)
  • Add Link menu item visible in all card menus, not just expanded toolbar (16f8595)
  • add Merge label pill to list view drag-and-drop (matches kanban) (70de4a1)
  • derive current context tokens from percentage × window size (c32a64d)
  • empty statusline output, smaller gray donut chart (16defe6)
  • merge duplicate sessionId cards from launch race condition (5fc19ab)
  • PR number thousand separator, restore Unlink PR in toolbar menu (55d82f3)
  • rename action not working from context menus (c6d3ae0)
  • search overlay invisible items, render markdown tables in chat (9c31561)
  • tiny ellipsis button, add card merge to list/sidebar view (730f03f)
  • worktree session not matching manual card, same-column merge blocked (8fe056a)

Performance

  • fix search overlay slowness from VStack, scroll to top on query change (72f5420)

Refactoring

  • unify all card context menus into shared CardActionsMenu (ac6233d)

0.1.23 (2026-03-22)

Features

  • add in-page browser DevTools via Eruda (bd709af)
  • add in-page browser DevTools via Eruda (d8a332b)
  • read plan approval options from tmux pane instead of hardcoding (14555f3)

Bug Fixes

  • Add Link in expanded mode, auto-expand last tool call, terminal flicker (8480f6c)
  • auto-expand last tool call, scroll on expand, busy indicator, prompt retry (8d65216)
  • auto-expand uses filtered last turn, fix terminal flicker on card switch (c1dea9a)
  • browser tab scroll not intercepted by terminal scroll handler (2929e65)
  • clear browser tab selection when new shell tab is created (d8a3445)
  • Cmd+1-9 tab switching includes browser tabs, fix image popover (3c26593)
  • Cmd+W closes browser tabs too, not just shell tabs (07ace67)
  • dismiss stale pending message on chat view appear (5756342)
  • plan options missing, search perf, scroll on auto-expand (a68e885)
  • remember per-card tab selection, fix stale chat on switch, fix unsent prompts (5405dad)
  • resolve unused variable and return statement warnings (f72a470)
  • tab click delay, chat scroll perf, expanded terminal focus (cfa009d)
  • validate restored tab selection against live sessions (02ad278)

Performance

  • adaptive polling — fast when busy, idle when idle (5109718)
  • cache selectedCard to avoid CardDetailView re-renders (0f444c3)
  • fine-grained SwiftUI re-renders via @Observable AppState (903bfb9)
  • instant terminal response for typing and cursor movement (17cc0f0)
  • pre-compute per-column card arrays for independent observation (8f79d6f)

Refactoring

  • extract content tabs and PR helpers from CardDetailView (787600b)
  • extract launch, sync, and worktree logic from ContentView (75bac83)
  • split ChatView.swift and CardDetailView.swift into smaller cohesive files (8766ccd)

Documentation

  • add productive-mode screenshot, project's goal and testimonials to README (ce34c28)

0.1.22 (2026-03-19)

Bug Fixes

  • crash in SystemTray.terminate, pending message dedup, lazy image preview (edc211d)
  • cross-bubble text selection and line spacing in chat mode (45417f6)
  • dismiss pending message when any new user turn arrives (191a230)
  • image hover loading reads line incrementally instead of entire file (56e413c)
  • lid-closed pushover skips when external display active, cross-bubble text selection (b1fd8f4)

Performance

  • passthrough mode for tmux copy-mode, less aggressive frame dropping (6cf7829)

0.1.21 (2026-03-18)

Features

  • chat search, scroll fix, image thumbnails, worktree removal (0f73c47)
  • lid-closed pushover, per-project worktree pref, tab & scroll fixes (80e2c61)
  • pushover lid-closed mode, per-project worktree pref, UI fixes (f74995b)

Bug Fixes

  • persist browser tabs across card switches (15a1d52)
  • persist browser tabs across card switches (f9d9af5)
  • resolve compiler warnings from contributor PR (17c4eb3)
  • task notifications parsed from XML, rendered as centered system messages (31b30df)

0.1.20 (2026-03-17)

Features

  • add embedded browser tabs to card detail view (f901780)
  • add embedded browser tabs to card detail view (2de5322)
  • auto-scroll on expand, instant scroll to bottom (e4b71a8)
  • card info section in expanded mode actions menu (a3b1c9a)
  • chat UX improvements, queue prompt from input, drag-reorder queued prompts (78d2786)
  • grouped tool calls, image labels, queue fixes, escape behavior, prompt state (e9e3a4c)
  • image chips on user bubbles, up-arrow history, working indicator grace period (af71be0)
  • interactive plan approval and AskUserQuestion in chat view (7dbe248)
  • native Chat View with terminal toggle (Phase 1-5) (677708c)
  • queue prompt button in chat view, edit diff stats, spinner fix (9aea657)
  • render subagents, plan mode, AskUserQuestion in chat view (32e6e26)

Bug Fixes

  • chat view stability, prompt sending, path encoding, performance (c60dfb7)
  • checkpoint kills session, refreshes chat, LazyVStack blank screen (f2b43a1)
  • hide sidebar toggle in kanban mode, center search overlay on full window (494f286)
  • per-card chat drafts, scroll reliability, prompt sending retry (efaed0b)
  • project selector always visible in toolbar, compact sync icon in expanded mode (6e2bce2)
  • prompt editor state isolation per card, clear pending on card switch (388b179)

Performance

  • fork SwiftTerm async dispatch, off-main-actor history loading (d4a131e)
  • wait-for-silence terminal rendering, always drop to tail (0bbcd60)
  • wait-for-silence terminal rendering, always drop to tail (d5262f3)

Refactoring

  • enrich ContentBlock for chat view (Phase 0) (cc12243)
  • global dialog state (Elm-like) for all card action dialogs (c29a463)

0.1.19 (2026-03-15)

Features

  • add drag and drop to list view (413c5bc)
  • add drag and drop to list view (67dd18d)
  • add expanded mode for card detail inspector and image drag-and-drop (5aec3f3)
  • add Gemini hooks, enable/disable assistants, fix activity detection and notifications (aa3e1b9)
  • add multi-coding-assistant support (Claude Code + Gemini CLI) (24211bc)
  • centralize keyboard shortcuts with context-aware conditions (b9c7bae)
  • Cmd+1-9 switches terminal tabs when drawer is open (4c7c34b)
  • Cmd+T new terminal, search badges, terminal flicker logging (7f03cc7)
  • improve terminal tab UX with double-click rename, drag reorder, and shell names (baf4464)
  • multi-coding-assistant support (Claude Code + Gemini CLI) (d58dd50)
  • NavigationSplitView sidebar, Finder-style terminal tabs, list view redesign (296c68f)
  • Parse inline markdown in session history assistant turns (d0cbb9d)
  • Parse inline markdown in session history assistant turns (a77839f)
  • persist expanded mode, board split, and list section collapse (bcaef03)
  • remove expand/contract buttons, close-button hover, persist card selection (d2df9a6)
  • terminal tab folder names, Cmd+W close tab, Cmd+T focus (4cb7884)
  • terminal tab rename, per-project remote toggle, worktree branch input (b09dd97)
  • transform search overlay into VS Code-style command palette (ab35bea)
  • unify list mode and expanded mode into single view toggle (f15ced7)
  • use custom icons for assistants and decouple assistant from card creation (a30fc47)
  • Windows port (Tauri + React) (8c0a60e)
  • windows: queued prompts, search, font size, issues, onboarding wizard (72e435c)

Bug Fixes

  • archived cards no longer reappear after session discovery (2d6e6c1)
  • cards manually moved to backlog stay there despite activity (6f950d7)
  • detect CLIs installed via nvm/volta/fnm and add assistants to settings (ee47c3a)
  • filter Claude Code internal metadata from session display (9ee4f8b)
  • Gemini prompt detection, error messages, and session linking (2997c20)
  • Gemini remote execution and special character handling (cad77b7)
  • Gemini remote shell wrapper crashes and temp file warnings (cdefbe0)
  • make Gemini sparkle icon bolder and fix hardcoded prompt character (1c57ce6)
  • match Claude CLI's path encoding by also stripping dots (08fd5c0)
  • move assistant picker to footer row in New Task dialog (45902e0)
  • parse inline markdown per-line to preserve multiline structure (a791b5b)
  • persist last-chosen assistant in New Task dialog (e3cbdcb)
  • prevent cursor jumping to end in prompt editor during re-renders (1616d9c)
  • prevent terminal flicker during background state updates (4d591a3)
  • queued prompt empty on restart and auto-send while editing (6cb0499)
  • resolve Cmd+Enter conflict between detail expand and deep search (e8b2b7f)
  • retry terminal focus after 500ms for heavy cards (5e3ab18)
  • selected project takes priority over last-used in new task dialog (e22329d)
  • swap order of path encoding to match Claude CLI (dots first, then slashes) (1912958)
  • swap order of path encoding to match Claude CLI (slashes first, then dots) (3237755)
  • sync status toolbar icon uses primary color when files in sync (87e19b2)
  • terminal scroll works in full area, not just upper portion (a931436)
  • terminal tab rename uses dialog, add branch name field (c110648)
  • use assistant-specific icons everywhere and fix Gemini history loading (e6bbad5)
  • windows: GitHub-style thin white border lines in dark mode (e5c329e)
  • windows: GitHub-style thin white border lines in dark mode (ec89b35)

Performance

  • cache worktrees by mtime and pre-compute cards array (5d6a46f)
  • eliminate launch flicker by restoring state synchronously in init (688cebf)
  • eliminate terminal flicker with time-budgeted batch feeding (6dc9eb8)
  • optimize reconciliation loop from ~1s to ~0.4s (7c0a098)
  • tune terminal batching for 1M context sessions (57635bc)

Documentation

  • add Windows installation and usage instructions to README (a0e0a95)

0.1.18 (2026-03-07)

Features

  • improve manual task prompt UX and image support (23346ff)
  • open new task from lane double click (596074f)
  • open new task from lane double click (096033d)

Bug Fixes

  • add label selector to mutagen sync flush calls (3653f66)
  • add Start button and auto-create sync from remote shell (293eaa9)
  • mutagen stop/reset/flush commands were silently failing (fb5d3dc)
  • stop ignoring VCS in mutagen sync (e8855f9)
  • sync popover auto-resizes when content changes (fd1f9ab)
  • sync popover text area uses fixed height (892f89c)
  • sync status button padding, title case, adaptive polling (85ff9b7)
  • sync status icon now reflects actual mutagen state (f254988)
  • toolbar padding and sync status polish (ad942b4)

0.1.17 (2026-03-06)

Features

  • add cmd+click to open URLs in history view (1e671f4)
  • add drag-to-reorder for projects in settings (235dcff)
  • macos: card reordering within same column (7045925)
  • macos: card reordering within same column via drag-and-drop (21695bd)
  • paste images into prompts and send them to Claude Code via tmux (ed7a24b)

Bug Fixes

  • merge button toast stuck and card not moving to done (3f5557b)
  • remove terminal associations from cards when killing sessions on quit (4d2aa74)
  • use editor CLI to open worktree folders as project root (ce54bb1)
  • use single mutagen sync session instead of one per project (a97446c)

0.1.16 (2026-03-05)

Features

  • add pushoverEnabled toggle to disable Pushover without deleting keys (93083e8)
  • improve search relevance with word-start scoring, fuzzy initials, and recency boost (2695a18)

Bug Fixes

  • relocate session file on resume when worktree was cleaned up (9a33395)

0.1.15 (2026-03-05)

Features

  • add configurable UI text size and terminal font size (09e7465), closes #19
  • fix worktree paths for remote sync, redesign merge button, add rate limit badges (7de7f21)

Bug Fixes

  • merge button never loads forever, hide for multiple open PRs (9ba72f5)
  • only fetch GitHub issues for projects with explicit filter (604c5c1)
  • prevent cross-project branch matching in session reconciliation (10b9b2f)
  • skip main repo checkout in worktree reconciliation (b5cbd02)
  • split GitHub issues filter into separate args for gh CLI (e4d9ece)

0.1.14 (2026-03-04)

Features

  • rename clawd helper to kanban-code-active-session (e6843a4), closes #16

0.1.13 (2026-03-04)

Features

  • add kanbancode:// deep links for Pushover notification taps (cd4504a)
  • drag folders from Finder to create projects (7feec20)
  • queued prompts with auto-send on Claude stop (97f61c2)

Bug Fixes

  • cap prompt editor height to prevent text overflow in dialogs (9d7bf8d)

0.1.12 (2026-03-04)

Bug Fixes

  • kill orphaned clawd processes to keep Amphetamine in sync (1ae6fb3)
  • replace GNU timeout with perl-based alternative in remote shell (e41d5cd)
  • replace GNU timeout with perl-based alternative in remote shell (1c3ef11)
  • use CLEAN instead of MERGEABLE for merge state check, prevent button wrapping (3c62ab7)

0.1.11 (2026-03-04)

Features

  • add in-app PR merge button via gh CLI (5587a35)
  • configurable merge command with squash + delete-branch default (6dadad9)
  • detect merge eligibility via GitHub mergeStateStatus (8f44d27)
  • per-PR dismissal and manual PR linking (3ab9c88)
  • show unresolved comments on PR badge and add merge button (5baba1f)

Bug Fixes

  • add onPRMerged to CardDetailView explicit init (b90d0ad)
  • detect PR approval when reviewDecision is empty (f36a008)
  • handle missing mergeCommand in settings JSON to prevent data loss (635b9ef)
  • handle partial merge failures and update card status instantly (e4d9f87)
  • kill stale tmux session on resume instead of reusing it (31c54af)
  • set isRemote on resume and add mutagen flush + uname preamble (716435b)

0.1.10 (2026-03-04)

Bug Fixes

  • consistent matching, reverse numbering, and stable scroll for history search (21cbc79)
  • don't forward modifier keys or Esc from tmux scroll mode (6931d61)
  • SessionStart triggering in-progress and add streaming history search (4a50f20)

Performance

  • chunk large terminal data to avoid blocking main thread (ce9305f)

0.1.9 (2026-03-03)

Features

  • wrap clawd in .app bundle for Amphetamine detection (b7dedf5)

0.1.8 (2026-03-03)

Features

  • clean fork without worktree/PR baggage, option to fork to same worktree (e3709a0)
  • detect worktree branch changes during reconciliation (87f620a)
  • scroll inside tmux via copy-mode on mouse wheel (7100f2d)

Bug Fixes

  • activity detector redesign, fork worktree fix, search/terminal improvements (7292231)
  • clear stale PR link when worktree branch changes (747d122)
  • detect GitHub rate limit and show toast with 5-minute cooldown (0f5c2a2)
  • fork dialog from right-click, improved labels, smarter scroll exit (baa67b6)
  • intercept scroll wheel events over tmux terminals via NSEvent monitor (f04ab42)
  • label primary terminal tab "Shell" and avoid extra shell name collisions (3bcc2fc)
  • prevent cross-repo worktree flipping and read JSONL bottom-up (0d429f8)
  • prevent tmux scroll mode key/scroll leaks to shell (2b91f7a)
  • respect PR dismiss override and show discovered branches in UI (0699249)
  • shorten tmux copy-mode auto-exit to 1 second (e202d2c)

0.1.7 (2026-03-03)

Bug Fixes

  • resolve user login shell environment and throttle gh API calls (75f7381)
  • resolve user login shell environment and throttle gh API calls (c62b49e)

0.1.6 (2026-03-03)

Features

  • card merge via drag-and-drop (e0ba4f7)
  • dynamic editor discovery, pull-to-load history, and button hover feedback (c21e616)
  • improve link icons and add copy toast in card detail (eb8d45c)
  • independent terminal tabs, cancel launch, and wkhtmltopdf install fix (9926262)

Bug Fixes

  • break up ContentView.body for release build type-checking (36c5764)
  • clear isLaunching immediately on launch/resume completion (d677c2f)
  • decouple build from release-please to prevent skipped uploads (5c26d1f)
  • expand binary search paths and show not-found banners in process manager (1cbf6ce)
  • further split ContentView.body for CI type-checker compatibility (6286a3d)
  • launch flow, project filter, prompt overflow, and worktree race condition (fa7be45)
  • load project list and cached cards instantly on startup (040ad9a)
  • make quit confirmation dialog reliable and instant (a0edc5b)
  • place SPM resource bundle at app root for Bundle.module discovery (4e0efbc)
  • prepend cd to tmux send-keys to survive zshrc directory changes (97f7337)
  • remove duplicate release trigger that caused asset upload conflict (0f3fbd6)
  • replace SwiftUI Menu with NSMenu for actions button (0c67955)
  • resolve CLI binaries by absolute path for .app bundles (1ee3f3e)
  • scope PR lookups by repo to prevent cross-repo collisions (746ac3b)
  • sign binary only to avoid unsealed contents error from resource bundle (879d276)
  • skip codesign in CI to allow root-level SPM resource bundle (43d61fa)
  • support manual release trigger in CI build job (392dd8a)
  • use Bundle.appResources for .app bundle resource discovery (3a70c27)
  • use macos-26 runner for Swift 6.2 compatibility (a3458a4)

Documentation

  • add download link to releases in README (53bbf85)

0.1.5 (2026-03-03)

Features

  • independent terminal tabs, cancel launch, and wkhtmltopdf install fix (9926262)

Bug Fixes

  • remove duplicate release trigger that caused asset upload conflict (0f3fbd6)

0.1.4 (2026-03-03)

Features

  • card merge via drag-and-drop (e0ba4f7)
  • dynamic editor discovery, pull-to-load history, and button hover feedback (c21e616)
  • improve link icons and add copy toast in card detail (eb8d45c)

Bug Fixes

  • break up ContentView.body for release build type-checking (36c5764)
  • clear isLaunching immediately on launch/resume completion (d677c2f)
  • further split ContentView.body for CI type-checker compatibility (6286a3d)
  • launch flow, project filter, prompt overflow, and worktree race condition (fa7be45)
  • load project list and cached cards instantly on startup (040ad9a)
  • make quit confirmation dialog reliable and instant (a0edc5b)
  • place SPM resource bundle at app root for Bundle.module discovery (4e0efbc)
  • replace SwiftUI Menu with NSMenu for actions button (0c67955)
  • resolve CLI binaries by absolute path for .app bundles (1ee3f3e)
  • scope PR lookups by repo to prevent cross-repo collisions (746ac3b)
  • sign binary only to avoid unsealed contents error from resource bundle (879d276)
  • skip codesign in CI to allow root-level SPM resource bundle (43d61fa)
  • support manual release trigger in CI build job (392dd8a)
  • use Bundle.appResources for .app bundle resource discovery (3a70c27)
  • use macos-26 runner for Swift 6.2 compatibility (a3458a4)

Documentation

  • add download link to releases in README (53bbf85)

0.1.3 (2026-03-03)

Features

  • card merge via drag-and-drop (e0ba4f7)
  • improve link icons and add copy toast in card detail (eb8d45c)

Bug Fixes

  • launch flow, project filter, prompt overflow, and worktree race condition (fa7be45)
  • load project list and cached cards instantly on startup (040ad9a)
  • make quit confirmation dialog reliable and instant (a0edc5b)
  • replace SwiftUI Menu with NSMenu for actions button (0c67955)
  • scope PR lookups by repo to prevent cross-repo collisions (746ac3b)

0.1.2 (2026-03-02)

Features

  • dynamic editor discovery, pull-to-load history, and button hover feedback (c21e616)

Bug Fixes

  • clear isLaunching immediately on launch/resume completion (d677c2f)

0.1.1 (2026-03-02)

Bug Fixes

  • Fix CLI binary resolution for .app bundles — gh, tmux, mutagen, pandoc now found via absolute path lookup instead of PATH-dependent /usr/bin/env
  • Fix terminal dying after ~2 seconds on resume — reconciler was clearing tmuxLink on cards mid-launch before the tmux session was visible
  • Fix cached terminal frame to avoid SIGWINCH on reparent (zero-frame resize)
  • Fast activity refresh path for immediate hook event processing

0.1.0 (2026-03-01)

Initial release.

Features

  • Kanban board for managing Claude Code sessions
  • Launch, resume, and monitor Claude Code agents from a visual board
  • Automatic session discovery and linking
  • Remote server support with mutagen file sync
  • Claude Code hook integration for real-time session tracking
  • Fork and checkpoint session management
  • Deep search across session transcripts
  • Worktree-aware branch detection
  • System tray with session notifications