You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
58b8e3d: Keep engine events without exact Kobe task-and-tab identity out of the attention Inbox while preserving their cwd-matched project activity status.
f9e2aea: fix: the Claude model picker now capitalizes Sonnet and Haiku to match Opus and Anthropic's product names, so the list reads "Opus 4.7 / Sonnet 4.6 / Haiku 4.5" instead of a mix of capitalized and lowercase labels.
fd5e413: Clarify Inbox help and fallback messages by distinguishing opening the queue from jumping to an available item and by using the canonical Task and Terminal Tab terminology.
cc19903: Codex activity detection now tracks the rollout the agent is actually writing to. A worktree's "new activity" badge and turn-completion detection pick the Codex rollout with the newest modified time (matching how the Claude and Copilot readers already work) instead of whichever rollout was created most recently — so a resumed older session that a newer, idle rollout was created after no longer reports stale activity, and the turn detector reads the right transcript for its completion marker.
3fcfe1f: Fix Copilot session history, auto-title, and activity detection silently going blank when the CLI writes a CRLF workspace.yaml (as it does on Windows): the workspace parser now strips a trailing carriage return so the recorded cwd still matches the task's worktree instead of carrying a stray \r that failed every comparison — bringing it in line with the other porcelain parsers and the sibling events reader.
c2ced0b: A corrupt tasks.json is now backed up (tasks.json.corrupt-) before kobe recovers with an empty index — previously the next save silently replaced the corrupt file, permanently destroying whatever tasks its bytes still held.
74efb45: Fix kobe export --format=table column alignment for decomposed Korean text and combining half marks: the shared cell-width measurer counted conjoining Hangul Jamo (the medial vowel + final consonant of a decomposed syllable, as macOS produces in NFD filenames) and the U+FE20–U+FE2F combining half marks as one cell each instead of zero, so a Korean filename measured up to twice its true width and shoved every later table column out of line. Both now fold to zero width, matching xterm's own wcwidth table (the embedded-terminal cursor path was already unaffected — it floors zero-width glyphs to one cell); the previously untested display-width module also gains its first test file.
8f7c20a: Keep long active project names inside the sidebar's Projects header.
241ff53: Fix focus dangling when you close the first pane of a terminal split while it's focused. Closing the leftmost/topmost leaf refocused the pane that was just removed, leaving keyboard routing and the focus highlight pointing at a leaf that no longer exists (a following focus-cycle would find no match); focus now moves to the surviving neighbour instead.
046fa8c: Stop the web Notes panel from losing the last edits when you switch tasks or close the panel: an autosave still pending inside the 600ms debounce window is now flushed to the task it belongs to instead of being cancelled, so edits typed just before navigating away are no longer silently dropped.
23c82e9: Landing a task with the default merge strategy now refuses a branch that has nothing to land instead of reporting a fake success. A branch with no commits ahead of its base (already merged, or an agent that produced no commits) made git merge --no-ff exit cleanly with "Already up to date." and no commit, so kobe api land / the worktrees-page l key reported it as landed on an unrelated pre-existing commit — and with cleanup enabled would then delete the branch and archive the task. The merge path now detects the unmoved HEAD and throws the same "nothing to land (already merged or empty)" error the squash path already raised.
3804779: Sidebar projects now keep their save order (newly-added repos append at the end) instead of re-sorting alphabetically, and they're manually reorderable: move mode now covers project rows (Shift+M on a project, j/k to move it among projects). New global entry ctrl+a m jumps to the sidebar, highlights the current selection, and enters move mode from anywhere.
c2ced0b: Live tab titles no longer drop when a terminal's window-title escape splits across a PTY read boundary — the carry anchors on the OSC introducer again (the fix regressed during a module extraction).
987c1dc: Align Inbox help, fallback copy, and internal documentation with the pending queue model: opening or visiting an episode resolves it instead of retaining a read item.
8ad4819: Silently clear Inbox items whose Task or Terminal Tab is no longer available.
ce4dc52: Announce a background task that hits a rate limit: a non-selected task entering the rate-limited state now raises the same cross-task toast, chime, and desktop notification as an error, matching how the per-tab chip already surfaces it, so a rate-limited task no longer lands silently in the attention Inbox with no heads-up.
ba44fff: The Inbox's cursor bar now uses the same shared row-selection chrome as the sidebar (▌ in the theme's text color + row tint), so every navigable list speaks one cursor language. Toast accent bars keep their semantic status colors (green/yellow/red) — they signal state, not selection.
9c76be9: Fix cell-width measurement for Enclosed Ideographic Supplement glyphs (e.g. 🈚 🈯 🉐) and the 🀄/🃏 tile emoji so they count as two cells like other wide CJK/emoji characters — previously they under-counted as one cell, drifting every column to their right out of alignment in the kobe export table and the embedded-terminal cursor overlay.