Skip to content

Releases: cell-observatory/oak-observatory

OAK v0.10.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 15:55
bc34c30

claude-observatory is now OAK. The command is oak, the npm package is oak-observatory, the
VS Code extension is cell-observatory.oak-observatory-vscode, the JetBrains plugin is
com.cell-observatory.oak-observatory, and the repository is
cell-observatory/oak-observatory. The terminal
app now runs on herdr, which OAK installs and manages.

Upgrading from claude-observatory

  • Reinstall once with the installer. claude-observatory 0.9.5 and earlier, and the 0.10.0
    pre-releases published under that name, cannot update themselves across the rename:
    claude-observatory update stops with an npm EEXIST error (the old packages keep working), the
    old VS Code extension's update notifier does not see this release, and JetBrains custom-repository
    users are offered a new plugin id rather than an update. Run the installer, which removes the old
    npm package first:
    curl -fsSL https://raw.githubusercontent.com/cell-observatory/oak-observatory/main/scripts/bootstrap.sh | bash
    (Windows: irm https://raw.githubusercontent.com/cell-observatory/oak-observatory/main/install.ps1 | iex).
    If you install by hand, first download this release's CLI tarball, so a failed download leaves the
    old CLI in place (npm 12 will not install the tarball from its URL):
    curl -fLO https://github.com/cell-observatory/oak-observatory/releases/download/v0.10.0/oak-observatory-0.10.0.tgz
    (in Windows PowerShell 5.1, type curl.exe: curl there is an alias of Invoke-WebRequest).
    Then run npm uninstall -g claude-observatory, install the downloaded file with
    npm install -g --allow-scripts=node-pty ./oak-observatory-0.10.0.tgz, and run oak doctor --fix
    and oak install-extensions, which installs the renamed VS Code extension and JetBrains plugin.
  • The new extension and plugin retire the old ones. VS Code uninstalls
    cell-observatory.claude-observatory-vscode; the JetBrains plugin disables
    com.cell-observatory.claude-observatory and offers a restart. JetBrains users who subscribed to
    the custom plugin repository should replace its URL with
    https://github.com/cell-observatory/oak-observatory/releases/latest/download/updatePlugins.xml.
  • Requirements: Node.js 20 or newer (was 18). Linux and macOS also need python3, for herdr's
    agent hooks and OAK's herdr plugin. Linux needs make and a C++ compiler as well (g++, or
    whatever $CXX names): npm compiles node-pty, which the terminal app's herdr tab runs herdr in,
    and npm 12 runs that build only when it is allowed (--allow-scripts=node-pty). Without node-pty
    the herdr tab cannot start; oak attach works without it.
    The installers, oak update and oak doctor --fix install the herdr version pinned in herdr.lock
    (0.9.1, checksum-verified) when a machine has none or an older one; a newer herdr is left in place.
  • Run oak init with Claude Code closed, even if you ran init on a pre-release. It rewrites
    the capture hooks to the new command and hooks six events beside PreToolUse and PostToolUse:
    PostToolUseFailure, Notification, Stop, PermissionRequest, UserPromptSubmit and
    SessionEnd. Until PostToolUseFailure is hooked, the file changes of a Bash command that fails
    are not recorded. oak doctor names the events that are not hooked, and oak status shows the
    hook count with the command to run. When codex is on the PATH, oak init installs Codex capture
    too (--no-codex skips it).
  • Unchanged: the store (~/.claude/claude-observatory), prefs, editor settings
    (claudeObservatory.*) and .observatoryignore files. claude-observatory remains a deprecated
    alias of oak.
  • Machines configured for SSH session listing (prefs.remotes, claude-observatory remotes) are
    no longer read. Add each machine again with oak machine add <label> <ssh-target>.
  • Saved Timeline column widths reset once in both editors, because the Timeline gains a fourth tab.

Added

  • The terminal app runs on herdr. Its tabs are herdr · Observatory · Review: herdr's own
    client, where agents run in panes; a live view of every session; and the review workspace. ctrl+a
    then n/p or 1–3 switches tabs, --tab <id> opens a named tab, and ctrl+q twice quits from
    any tab (ctrl+c twice and ctrl+a q twice share the same confirmation). Inside a herdr pane the
    bar is Observatory · Review. The herdr tab passes the program's keyboard protocol, bracketed paste,
    focus reports, mouse, text attributes and cursor through to the terminal. The terminal app opens on
    the tab you used last, the Observatory the first time, or the herdr tab while the machine has no
    session yet.
  • The Observatory. Sessions are grouped by machine, then by herdr workspace (sessions outside
    herdr under their project, or under "Unknown workspace" when the project is unknown), with each
    session's pane, agent kind, model, edits, tokens and last activity. Clicking a session, or Enter,
    pins its conversation beside the list: prompts, replies, thinking, tool calls with their captured
    diffs, Workers and Tasks. The pinned conversation follows its newest message until you scroll back
    (End or ↓ newest returns), follows its pane when the agent restarts, and has a reply box (i)
    that sends through herdr. h jumps to the session's herdr pane and r scopes the Review tab to it.
    The Review tab shows the session under the cursor, previewed or pinned.
    Your prompts sit in boxes like the tool calls around them, on a grey ground that follows the colour
    theme, as the Claude Code and Codex CLIs show them. Workers and Tasks list what is still going on
    (working or waiting workers, with their model, effort and token split; pending and in-progress
    tasks), each marked in its state's colour with its stats in the session list's colours, under a
    header that counts the active entries out of the total, such as Workers · 1/3 active; the finished
    ones fold behind one row. A background agent counts as working until Claude Code logs it finished
    (failed, killed or stopped reads as errored) and again once it is resumed; with no such notice, it is
    done after it, its session and the session's other agents have all been quiet for five minutes, unless
    it stopped on a tool call or a question, which reads as waiting. This holds in the terminal app and
    both editors. Shift+A shows archived sessions.
  • herdr tab housekeeping. Each herdr tab is named after the session running in it unless you named
    it yourself, and follows the session's title when it changes. A session's capture hooks and OAK's
    Claude Code status line rename its own tab even when oak tui is closed; while oak tui runs, it
    names the tabs of every machine. On Linux and macOS, oak tui also keeps a btop tab running a
    system monitor (btop, bpytop or htop) in every machine's home workspace, and OAK's herdr plugin
    restarts the monitor when herdr's server starts. The plugin adds an Open in OAK action, which
    selects the pane's conversation in the Observatory. OAK never closes a tab. The installers,
    oak update and oak doctor --fix set herdr's sidebar width (48–72 columns) and the gruvbox theme
    when you have not chosen them.
  • Other machines. oak machine add <label> <ssh-target> provisions a machine (herdr, OAK in
    ~/.local/lib/oak, ~/.local/bin on its PATH, the capture hooks); oak machine list lists them.
    oak attach [machine] hands the terminal to herdr on that machine, and oak agent start --machine <label> starts an agent there. --machine <label> runs views, review, list, sessions,
    conversation, feed, multitask, subagents, diff, keep, undo, redo, resolve,
    comment, quote and ignore on that machine over SSH, with that machine's own oak in the
    session's own workspace, so the Review tab reviews a remote session where its store and files are;
    nothing is copied between machines. The Review tab's session picker (b) and the find palette list
    each saved machine's sessions under its name, read from that machine about every 15 seconds (a
    machine that cannot be reached says so), and oak tui --tab review --session <id> reviews a session
    that runs on a saved machine. Started outside any repo with no --session or --root, the Review
    tab opens on the session that most recently took a turn on any machine, this one or a saved one (on a
    machine running this version, a resume alone does not count), as the machines first answer and until you choose a session or act in
    the tab. oak sessions --json rows carry that time as lastTurnMs. OAK_MACHINE_TIMEOUT_MS (default 120 s) and
    OAK_HERDR_REMOTE_TIMEOUT_MS (default 30 s) extend the deadlines. The editors list and review the
    sessions of the machine their workspace runs on.
  • Codex support. oak init (or oak init --codex alone) installs capture for Codex 0.147.0 or
    newer and pre-trusts only OAK's own hook commands in Codex's trust store. Codex sessions appear in
    every session list with their thread names (or the heading of the brief a prompt hands off to, a
    long one shortened to its first phrase),
    their rollout's workspace, model and effort, and their token usage with the cache split.
    oak statusline also turns on Codex's built-in status line items, and leaves a status_line you
    set alone.
  • New commands. oak agent start starts a Claude Code or Codex agent in a herdr pane; oak prompt
    submits text to a session's live pane and keeps a draft when it cannot; oak conversation reads a
    transcript from its tail (--limit, --since <cursor>); oak search searches conversations;
    oak integrity reports capture gaps without rewriting records; oak models lists the local ollama
    models and oak models use <name> switches Codex to one; oak titles shows o...
Read more

Pre-release 0.11.0-dev.15 (rolling, from dev)

Choose a tag to compare

@github-actions github-actions released this 28 Jul 23:28
1cdcc0d

Rolling build of the dev branch at 1cdcc0d — refreshed on every push. Install/follow it with oak update --channel dev or the editors' version dropdown.

Claude Observatory v0.9.5

Choose a tag to compare

@github-actions github-actions released this 13 Aug 00:13
4da29eb

What's Changed

  • release: 0.9.5 — updater fixes + the terminal's workflow breakdown by @thayeral in #65

Full Changelog: v0.9.4...v0.9.5

Claude Observatory v0.9.4

Choose a tag to compare

@github-actions github-actions released this 08 Aug 04:16
e3fcc53

What's Changed

  • build(deps): bump actions/setup-node from 4 to 7 by @dependabot[bot] in #49
  • build(deps): bump github/codeql-action from 4 to 4.37.3 by @dependabot[bot] in #48
  • build(deps-dev): bump @types/node from 26.1.1 to 26.1.2 in the dev-dependencies group across 1 directory by @dependabot[bot] in #47
  • Get dev green: the privacy violation, the guard's placement, the tty reset, and Fleet's empty message by @thayeral in #54
  • feat: the review unit becomes the product's unit of decision (0.9.4) by @thayeral in #56
  • test(e2e): pin fixture transcripts out of the fleet-liveness window by @thayeral in #57
  • release: 0.9.4 by @thayeral in #58
  • build(deps): bump github/codeql-action from 4.37.3 to 4.37.6 by @dependabot[bot] in #55
  • chore(deps): point dependabot at dev, where the work happens by @thayeral in #59
  • chore(deps): group the GitHub Actions updates into one weekly PR by @thayeral in #62

Full Changelog: v0.9.3...v0.9.4

Claude Observatory v0.9.3

Choose a tag to compare

@github-actions github-actions released this 05 Aug 17:03
d353f2a

What's Changed

  • 0.9.3 — the terminal app in its own package, a store that can move, and sessions on other machines by @thayeral in #50
  • docs(site): move the interactive demo directly above the feature tour by @thayeral in #51
  • 0.9.3 — the terminal app, a store that can move, and sessions on other machines by @thayeral in #52

Full Changelog: v0.9.2...v0.9.3

Claude Observatory v0.9.2

Choose a tag to compare

@github-actions github-actions released this 30 Jul 22:11

Upgrading — one breaking change

VS Code panel layout resets once. The claudeObservatory.prompts, claudeObservatory.actions and claudeObservatory.observations views no longer exist: they are consolidated into a single claudeObservatory.timeline webview whose tab strip carries Prompts · Observations · Actions — the shape the JetBrains plugin already had. VS Code remembers view placement per profile, so if you had dragged those three views somewhere, the Timeline reappears in the Observatory Timeline panel and has to be dragged back once. Nothing is lost; no other editor state changes.

The review bar comes into the editor

Both editors now put the review controls over the code itself while the open file has edits awaiting review.

  • JetBrains draws a real floating toolbar on the platform's own floating-toolbar layer: Keep, Undo, the Diff n/m counter and its steppers, Accept/Reject File, Chat, View diff, Spotlight, Clear Resolved. It replaces the notification banner by default; editorReviewSurface chooses the bar, the banner, both, or neither.
  • VS Code has no floating-widget API for extensions — that has not changed — so it gives the one surface that can float over code, a comment thread, a compact bar form: one row of Keep · Undo · steppers · Diff · Details under a live title. The detail bubble is now pinnable, and pinnedPeek governs it alone.
  • Resolving one edit opens the next still awaiting review, crossing into another file when that is where it is. Bulk actions, redo and the diff editor's own buttons deliberately never move you.
  • Pending badges: files with unreviewed edits carry the count in the project tree in both editors, and on the editor tab in VS Code.
  • JetBrains inline review gained the two pieces it was missing: ghost text for removed lines and the +A −R churn in its lens.

Reviewing by ask

  • Rewind to before this prompt reverts every unreviewed edit from one ask onward, not only the edits that ask produced — the difference between undoing a prompt and undoing the state it created. Its confirmation names the ask and states both the raw records and the review units they collapse to, so the two editors cannot print different numbers for the same destructive operation.
  • A session selector leads the Timeline, listing the sessions still active in the workspace; picking one switches the whole observatory.

Panels

A Group tabs toggle beside each tab strip lays the tabs out side by side as resizable columns (drag a divider, double-click to reset) that collapse to a named rail which is itself the button back.

Fixed

  • clean --all --dry-run destroyed the store and reported success. An ignored --dry-run performs the very mutation it was meant to preview, so every scope that cannot preview now refuses. The same trap is fixed for keep, undo and redo, and keep --from-prompt 2 no longer keeps edit #2.
  • A rewind's Redo replayed the scope rather than what actually moved, resurrecting edits that had been rejected before the rewind.
  • The rewind boundary blocked the VS Code extension host for 1.2 s on a 7,922-record session to report that nothing was pending; it is now ~50 ms.
  • The Timeline feed states a bound (showing 300 of 3,007 edits) instead of serializing a whole session on every refresh: 237–258 ms → 60–68 ms. Native tree views were virtualized by the platform; a webview is not.

Full terminal surface: claude-observatory undo --from-prompt <id> (add --dry-run to count without touching disk), redo --from-prompt <id>, and ids/delta on the existing --json shapes.

Full Changelog: v0.9.1...v0.9.2

Claude Observatory v0.9.1

Choose a tag to compare

@github-actions github-actions released this 29 Jul 17:47

Full Changelog: v0.9.0...v0.9.1

Claude Observatory v0.9.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 00:29
ce5d3f7

What's Changed

  • 0.9.0: the Overview cache actually hits — plus the sweep and review that followed by @thayeral in #42
  • 0.9.0: promote dev — the #43 Windows fix, release channels, the full-trace export, and the Overview version chip by @thayeral in #44

Full Changelog: v0.8.9...v0.9.0

Claude Observatory v0.8.9

Choose a tag to compare

@github-actions github-actions released this 26 Jul 22:51
bf67f08

What's Changed

  • build: TypeScript 7 — node16 resolution + the dev-dependency bump by @thayeral in #39
  • build: hold TypeScript at 5.x so editors keep a language service by @thayeral in #40
  • 0.8.9 — demo mode and a self-playing guided tour, in both editors by @thayeral in #41

Full Changelog: v0.8.8...v0.8.9

Claude Observatory v0.8.8

Choose a tag to compare

@github-actions github-actions released this 25 Jul 13:18
28eba76

What's Changed

  • 0.8.8 — remove the chapters layer, prompts, Sessions, and a performance sweep by @thayeral in #38

Full Changelog: v0.8.7...v0.8.8