Skip to content

v0.7.95

Choose a tag to compare

@github-actions github-actions released this 11 Jul 08:47

Patch Changes

  • cc6720e: Disconnect stalled terminal viewers before their queued output can exhaust the PTY host memory.
  • cc6720e: Ensure hosted terminal children exit before their sessions are reported closed.
  • 3b8e8a1: Keep attention badges sticky and restore codex turn/usage reporting. Tasks blocked on a permission prompt, rate limit, or error no longer decay to a plain idle badge after the 10-minute lapse timer — they stay lit until a real engine event clears them, so "come back and see who's stuck" survives long breaks. Codex rollout parsing now recognizes the real on-disk shapes: event_msg completion signals (task_complete / turn_complete / turn_aborted) so codex turns reach "done" again (background toast + unread badge fire), and event_msg token_count usage so the History panel shows non-zero tokens and carries the model context window.
  • ca4d2b6: Close CI/release gate gaps: PR and release workflows now run the full bun run test suite (fast + unix-socket daemon tests, previously excluded by a hardcoded directory whitelist), and release.sh/release.yml gate on lint + typecheck + test + behavior before a version is ever tagged or published.
  • 12283c5: Harden kobe api prompt delivery and fan-out: verify a pasted prompt actually landed in the engine composer (strict engine-pane lookup, no blind first-pane fallback), size the readiness wait to the repo init-script budget, and surface a dropped prompt as a non-zero exit instead of a phantom success. Fan-out now delivers prompts concurrently and reports partial failures with each created task's id (exit 3) rather than losing them. kobe api add no longer steals the active-task focus by default — pass --activate to opt in.
  • ada1e16: Hard-blocking CLI errors now point to the next step: a wedged/failed daemon start names the daemon log path and kobe doctor, missing tmux gets a platform install command instead of stale version wording, and the top-level CLI error is trimmed to a one-line message (set KOBE_DEBUG=1 for the full stack). Running bare kobe outside a git repo no longer permanently saves the cwd as a project — it now lands on the empty kobe-home session with a pointer to kobe add <path>.
  • be2da5a: Harden the daemon client/transport: the web transport now degrades to socket-only on a port conflict instead of crashing the daemon or SIGTERM-ing the port holder (with the real reason surfaced via daemon status); daemon RPCs gained a per-request deadline so a wedged daemon converges on the visible disconnect→reconnect path instead of silently freezing the UI; and event dispatch isolates a throwing subscriber so one bad handler can't make a pane go deaf.
  • fd1a713: Remove dead code: delete the legacy kobe-web/server standalone bridge (superseded by the daemon-hosted web transport, ADR 0003) and its three server-only tests, and drop three orchestrator dead spots — the voided EMPTY_INDEX, the unused toTaskId keep-alive in core.ts, and the TaskIndexStore.archive semantic-trap wrapper (production archiving goes through orchestrator.setArchived).
  • 084468f: kobe api send/spawn-task/fan-out now route prompt delivery, liveness, and teardown to a task's actual backend. A pty-host (default) task is delivered into its live engine over the pty socket instead of being mistaken for "not running" and silently opening a second tmux engine in the same worktree — a data-corruption bug where two agents clobbered the same files. When a hosted task's engine tab is gone, delivery returns delivered:false rather than double-opening.
  • 037e817: Land a task's branch back into its base repo (task.land RPC + kobe api land, TUI worktrees-page l key): merge/squash, refuse a dirty base checkout, abort on conflict and return the file list. Self-heal dead worktreePaths (clear on worktree removal, re-materialise onto the retained branch on next enter), delete the branch when a task is deleted, parallelise worktree listing probes, and consolidate the (new task) placeholder to one source.
  • 64ab258: Fix the daemon PR-status poller so an unrecognized gh failure surfaces as an error instead of silently masquerading as "no PR" (switched to gh pr list --head and a single shared failure classifier), and cache RemoteExecHost instances by ControlMaster socket so remote-project git operations stop paying a synchronous SSH connection check on every call.
  • 65294b4: Harden state.json writes: unique per-write tmp filenames (pid + nonce) prevent concurrent kobe processes from tearing each other's writes, and a malformed state.json is now backed up to state.json.corrupt-<ts> instead of being silently discarded.
  • 7ddaa38: Native workspace Changes tab can now show a task's whole branch vs its base, not just uncommitted work — so a task's output stays visible after the engine commits it. Press b to toggle the Changes tab between working-tree and vs-base scope (it auto-picks vs-base when the worktree is clean), and d to open any file's read-only diff in a workspace tab (a content swap that keeps focus on the file tree). The base is the task's PR base when it has one, else the repo's default branch.
  • 2e7d52c: Native workspace: notify (bell/toast/OSC 9 desktop) when a task you've switched away from pauses on an approval, errors, or finishes a turn, and add a ctrl+g chord to jump to the next task waiting for input. OSC 9 rides SSH to your local terminal; both gated by a new Notifications setting.
  • cc6720e: Prevent a second PTY host from replacing the socket of a running terminal session host.