Skip to content

Commit afd112e

Browse files
wesmcodex
andauthored
docs: introduce the 0.65.0 browser UI (#1066)
Roborev 0.65.0 adds a second primary review interface and several operator-facing behaviors, but the release documentation still led with the previous terminal UI and did not tell the complete release story. This makes the native browser application the primary visual on the README and documentation home page, expands the browser and TUI workflow guides, and completes the 0.65.0 changelog with contributor acknowledgements. It also corrects the Homebrew tap path and source-build requirements. ![Roborev browser application showing the review queue and an open review](https://raw.githubusercontent.com/kenn-io/roborev/docs-generated-assets/web-ui.png) The browser image is reproducible rather than hand-edited. The Dockerized capture builds the branch application and drives it at a fixed viewport with Playwright. Its reduced database is limited to completed reviews from the canonical public Roborev repository and sanitizes local paths, credential-shaped values, and configured private terms before the daemon starts. This PR documents existing 0.65.0 behavior. It does not change the daemon, browser application, or review lifecycle; the executable changes are limited to documentation asset generation and its regression coverage. --------- Co-authored-by: Codex <noreply@openai.com>
1 parent 1221c3e commit afd112e

24 files changed

Lines changed: 528 additions & 40 deletions

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ background, reviews every commit as agents write code, and surfaces
1414
issues in seconds -- before they compound. Pull code reviews into
1515
your agentic loop while context is fresh.
1616

17-
![roborev TUI](https://roborev.io/assets/generated/tui-hero.svg)
17+
![Roborev browser application](https://roborev.io/assets/generated/web-ui.png)
1818

1919
## How It Works
2020

@@ -78,8 +78,10 @@ You can also choose the exact binary path with
7878
Reviews are orchestrated on your machine using the coding agents
7979
you already have configured.
8080
- **Interactive TUI** - Real-time review queue with vim-style navigation.
81+
Large terminals show the queue and selected review in a split-screen layout.
8182
- **Native Browser UI** - Browse, filter, inspect, comment on, close, cancel,
82-
and rerun reviews from the application embedded in the local daemon.
83+
and rerun reviews from the application embedded in the local daemon, then
84+
explore cost, latency, reliability, and outcomes in Analytics.
8385
- **Review Verification** - `roborev compact` verifies findings against
8486
current code, filters false positives, and consolidates related issues
8587
into a single review.
@@ -153,7 +155,7 @@ curl -fsSL https://roborev.io/install.sh | bash
153155

154156
**Homebrew (macOS / Linux):**
155157
```bash
156-
brew install roborev-dev/tap/roborev
158+
brew install kenn-io/tap/roborev
157159
```
158160

159161
**Windows (PowerShell):**

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ are ignored local outputs.
2727

2828
- `docs-assets`: curated static media, including logos, favicons, Open Graph
2929
images, diagrams, agent icons, and manually captured integration images.
30-
- `docs-generated-assets`: generated CLI and TUI screenshots.
30+
- `docs-generated-assets`: generated browser UI, CLI, and TUI screenshots.
3131

3232
Docs pages should reference media through:
3333

docs/assets/hydrate-assets.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ static_assets=(
4141
)
4242

4343
generated_assets=(
44+
"web-ui.png"
4445
"tui-hero.svg"
4546
"tui-queue.svg"
4647
"tui-review.svg"

docs/changelog.md

Lines changed: 61 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,39 @@ description: Release history for roborev
55

66
All notable changes to roborev, grouped by minor release.
77

8-
## Unreleased
8+
## 0.65.0
9+
10+
<small>2026-08-16</small>
911

1012
**New features**
1113

12-
- Reasoning accepts exact `low`, `medium`, `high`, `xhigh`, and `max` values and
13-
forwards them unchanged to agents that support each tier. The legacy `fast`,
14-
`standard`, `thorough`, and `maximum` presets remain compatible.
1514
- Roborev now embeds an authenticated native browser review workspace on a
1615
separate daemon listener. `roborev ui [job-id]` opens the job list or a
1716
review deep link with filtering, sorting, panel detail, Markdown output,
1817
comments, logs, prompts, keyboard controls, and review/job mutations. Local
1918
use bootstraps automatically; remote HTTPS deployments exchange a token for
20-
a browser session without exposing the private CLI listener.
19+
a browser session without exposing the private CLI listener. Analytics
20+
reports review volume, outcomes, errors, latency, agent attempts, estimated
21+
cost, and pricing coverage. See [Browser UI](/web-ui/).
22+
- The TUI automatically shows a kata-style split-screen review workspace on
23+
terminals at least 140 columns by 36 rows. The queue drives a live detail
24+
pane for completed, running, failed, and queued jobs; `L` toggles layouts,
25+
and smaller terminals fall back to the existing stacked view. See
26+
[Split-Screen Review](/integrations/tui/#split-screen-review).
27+
- Reasoning accepts exact `low`, `medium`, `high`, `xhigh`, and `max` values and
28+
forwards them unchanged to agents that support each tier. The legacy `fast`,
29+
`standard`, `thorough`, and `maximum` presets remain compatible. See
30+
[Reasoning Levels](/configuration/#reasoning-levels).
2131
- Pi agents accept global `[agent.pi] launch_args`, passed as tokenized
2232
arguments to every Pi invocation before roborev-managed workflow and safety
2333
options. This allows isolated classifier jobs to load extension-defined
2434
model providers explicitly while retaining `--no-extensions` discovery
25-
isolation.
35+
isolation. See [Pi Classifier Options](/configuration/#pi-classifier-options).
36+
- `roborev export ci-costs` exports job-level costs for eligible CI attempts,
37+
including terminal retries that panel summaries cannot retain. Stable
38+
cursors, overlapping-window refreshes, null-versus-zero pricing, and a
39+
legacy backfill mode support incremental downstream accounting. See
40+
[Exporting CI Costs](/commands/#exporting-ci-costs).
2641

2742
**Improvements**
2843

@@ -35,6 +50,25 @@ All notable changes to roborev, grouped by minor release.
3550
repository, worktree, branch, and expiry, while the TUI shows a contextual
3651
snooze badge for an exactly filtered checkout. See
3752
[Snoozing Reminders](/agent-hook/#snoozing-reminders).
53+
- Daemon restarts stop new claims and wait for active reviews, hooks, and final
54+
sync to finish before starting the replacement process. The CLI reports the
55+
wait instead of force-killing work after a fixed timeout.
56+
- `roborev review --branch` now resolves the repository and range from the
57+
linked worktree that invoked it, preventing shared or stale Git
58+
configuration from redirecting the review to a sibling checkout. See
59+
[Git Worktrees](/guides/repository-management/#git-worktrees).
60+
- Agent Hook installation and runtime handling now use kit's shared coding-agent
61+
profiles. One workflow supports Claude Code, Codex, Copilot CLI, Cursor,
62+
Factory Droid, Gemini CLI, Hermes, and Qwen, while Roborev retains its Grok
63+
integration. Existing Codex, Claude, and Droid registrations can be upgraded
64+
in place. See [Agent Hook](/agent-hook/).
65+
- The Homebrew tap now discovers official Roborev releases and owns formula
66+
updates, removing duplicate publisher logic and the cross-repository release
67+
credential. See
68+
[Homebrew installation](/installation/#homebrew-macos-linux).
69+
- Development, CI, release, and screenshot builds now require Go 1.26.6. Go,
70+
JavaScript, documentation, and GitHub Actions dependencies were refreshed,
71+
including fixes for known Go toolchain and `go-git` vulnerabilities.
3872

3973
**Bug fixes**
4074

@@ -44,13 +78,31 @@ All notable changes to roborev, grouped by minor release.
4478
rerun jobs. Session expiry and logout now close active browser streams.
4579
- Persisted job output is shown only when its log belongs to the current
4680
attempt, so a failed rerun cannot fall back to an older attempt's output.
47-
- Daemon restarts now stop new job claims and wait indefinitely for running
48-
reviews and worker finalization instead of force-killing the daemon after a
49-
short graceful-shutdown window.
81+
- Daemon discovery now preserves sandbox permission failures instead of treating
82+
an unreachable loopback or Unix socket as proof that no daemon exists.
83+
Clients can use the daemon's private Unix-socket fallback without starting a
84+
competing process. See [Daemon & Hooks](/commands/#daemon-hooks).
85+
- Fresh agent sessions now receive a short, bounded agentsview usage-indexing
86+
retry before Roborev falls back to job-log token data, reducing permanently
87+
missing cost estimates. See [Token Usage](/commands/#token-usage).
5088
- The Codex `maximum` preset now requests literal `max` for explicit GPT-5.6
5189
`sol`, `terra`, and `luna` models. Older, default, and unknown models retain
5290
the compatible `xhigh` mapping, while exact `xhigh` remains distinct.
5391

92+
**Acknowledgements**
93+
94+
- Thanks to [Wes McKinney](https://github.com/wesm) for the native browser
95+
application, job-level CI cost export, linked-worktree review fix,
96+
usage-indexing retry, and release updates.
97+
- Thanks to [Graham Wheeler](https://github.com/gramster) for the TUI
98+
split-screen review workspace.
99+
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for exact
100+
reasoning-effort tiers across supported agents.
101+
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for unified
102+
Agent Hook profiles, sandbox-safe daemon discovery, visible snooze status,
103+
graceful daemon restarts, Pi launch arguments, and the Go 1.26.6 security
104+
upgrade.
105+
54106
______________________________________________________________________
55107

56108
## 0.64.0

docs/development.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,14 @@ branches before builds:
213213

214214
- `docs-assets` contains curated static media such as logos, favicons, diagrams,
215215
Open Graph images, and integration screenshots.
216-
- `docs-generated-assets` contains generated CLI and TUI screenshots.
216+
- `docs-generated-assets` contains generated browser, CLI, and TUI screenshots.
217+
218+
The screenshot pipeline reads the normal review database only through a
219+
read-only SQLite connection, extracts completed clean reviews from the canonical
220+
public Roborev repository, sanitizes copied content, and runs the branch binary
221+
against that reduced database inside Docker. See the
222+
[screenshot pipeline guide](https://github.com/kenn-io/roborev/blob/main/docs/screenshots/README.md)
223+
for the capture and asset publication workflow.
217224

218225
Install the docs toolchain and build the site:
219226

docs/guides/repository-management.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ When running commands from a worktree:
145145
active worktree branch
146146
- `roborev fix --open` filters to reviews reachable from the current worktree's
147147
HEAD
148+
- `roborev review --branch` resolves the repository root, branch, and commit
149+
range from the linked worktree that invoked it, even if shared Git
150+
configuration points at a sibling checkout
148151
- `refine` correctly finds and addresses reviews for commits in any worktree
149152

150153
### Detached HEAD worktrees

docs/index.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,32 @@ coding agent so the write -> review -> fix loop runs hands-off.
2828

2929
[Set up automation ->](automation/post-commit-reviews.md)
3030

31+
## Browser UI
32+
33+
Run `roborev ui` to open the native browser application. Browse and filter the
34+
live review queue, inspect review output, prompts, and logs, manage jobs and
35+
comments, or switch to Analytics to explore cost, latency, reliability, and
36+
review outcomes. The application runs from the local daemon and uses the same
37+
SQLite history as the CLI and terminal UI.
38+
3139
<figure class="hero-shot" data-lightbox>
32-
<img src="/assets/generated/tui-hero.svg" alt="roborev TUI queue view" loading="eager">
40+
<img src="/assets/generated/web-ui.png" alt="Roborev browser application showing the review queue and an open review" loading="eager">
3341
</figure>
3442

43+
[Explore the browser UI ->](web-ui.md)
44+
45+
## Terminal UI
46+
47+
Prefer to stay in the terminal? `roborev tui` provides the same live review
48+
ledger with vim-style navigation. On a large terminal, its split-screen layout
49+
keeps the queue and selected review visible together.
50+
51+
<figure class="hero-shot" data-lightbox>
52+
<img src="/assets/generated/tui-hero.svg" alt="Roborev TUI split-screen review view" loading="lazy">
53+
</figure>
54+
55+
[Explore the terminal UI ->](integrations/tui.md)
56+
3557
<div class="agent-matrix">
3658
<a href="/agents/"><img src="/assets/static/agents/codex.svg" alt="Codex" data-agent="codex" width="1604" height="719" /></a>
3759
<a href="/agents/"><img src="/assets/static/agents/claude-code.svg" alt="Claude Code" data-agent="claude-code" width="696" height="95" /></a>
@@ -57,6 +79,7 @@ Then from within your git repositories:
5779
roborev init # Install post-commit hook
5880
# do some work, generate commits
5981
roborev tui # Browse reviews in the terminal UI
82+
roborev ui # Or browse reviews in the native browser UI
6083
```
6184

6285
For Windows, see the

docs/installation.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ brew install roborev
5050
This also works on Linux with
5151
[Linuxbrew](https://docs.brew.sh/Homebrew-on-Linux).
5252

53+
The `kenn-io/tap` repository watches official Roborev releases and manages
54+
formula updates from their published checksums. Roborev release jobs do not need
55+
a cross-repository credential to update the formula.
56+
5357
## Linux Packages: DEB and RPM
5458

5559
Starting with 0.57.0, GitHub releases include `.deb` and `.rpm` packages for
@@ -89,15 +93,17 @@ need the browser application.
8993

9094
## Build from Source
9195

96+
Building Roborev requires Go 1.26.6 or newer. The embedded browser application
97+
also requires Bun 1.3.14.
98+
9299
```bash
93100
git clone https://github.com/kenn-io/roborev
94101
cd roborev
95102
make install
96103
```
97104

98-
The `make install` target requires Bun 1.3.14, builds and validates the browser
99-
application, and embeds it alongside version information (for example,
100-
`v0.7.0-5-gabcdef`).
105+
The `make install` target builds and validates the browser application and
106+
embeds it alongside version information (for example, `v0.7.0-5-gabcdef`).
101107

102108
For quick iteration during development:
103109

docs/integrations/tui.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ branch.
6060
| `f` | Open filter (repo/branch tree) |
6161
| `b` | Open filter with branches expanded |
6262
| `h` | Toggle hide closed/failed/canceled |
63+
| `L` | Toggle split-screen or stacked layout |
6364
| `D` | Toggle distraction-free mode |
6465
| `P` | Pause or resume queue processing |
6566
| `g` | Jump to top of queue |
@@ -73,6 +74,30 @@ shows live progress while member reviewers run and a compact member summary
7374
after completion. Expand the row to inspect individual member jobs. Close,
7475
cancel, rerun, or fix the panel from the parent row, not from a member row.
7576

77+
## Split-Screen Review
78+
79+
At 140 columns by 36 rows or larger, the TUI automatically places the queue in a
80+
left pane and the selected job in a right detail pane. Moving through the queue
81+
updates the detail pane after a short debounce, so holding `j` or `k` does not
82+
issue a request for every intermediate row.
83+
84+
The detail pane adapts to job state: completed jobs show the rendered review,
85+
running jobs show a live log tail, failed jobs show the error, and queued jobs
86+
show their metadata. When a running job finishes, its log is replaced by the
87+
review automatically.
88+
89+
Press `Tab` to focus the detail pane and `Esc` to return to the queue. Review
90+
actions and scrolling work in the focused detail pane. `Enter` is intentionally
91+
a no-op while the split queue is focused because the detail already follows the
92+
selection. Mouse clicks focus either pane, and the wheel scrolls the pane below
93+
the pointer.
94+
95+
Press `L` to lock the stacked or split preference for the TUI session. A split
96+
preference falls back to stacked when the terminal is too small and returns when
97+
it grows again. Prompt, comment, help, log, and task screens remain full-screen.
98+
The queue also drops lower-priority columns as needed to preserve the most
99+
useful fields in its narrower pane.
100+
76101
## Queue Pause
77102

78103
Press `P` in the queue to pause or resume daemon queue processing. Pausing is

docs/screenshots/Dockerfile

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
FROM oven/bun:1.3.14-alpine AS web-builder
2+
3+
RUN apk add --no-cache git
4+
5+
WORKDIR /src
6+
7+
COPY package.json bun.lock ./
8+
COPY web/package.json web/package.json
9+
COPY packages/roborev-ui/package.json packages/roborev-ui/package.json
10+
RUN bun install --frozen-lockfile
11+
12+
COPY web web
13+
COPY packages packages
14+
RUN bun run web:build
15+
116
FROM golang:1.26.6-alpine AS builder
217

318
WORKDIR /src
@@ -8,15 +23,18 @@ RUN go mod download
823

924
# Copy source and build
1025
COPY . .
26+
COPY --from=web-builder /src/web/dist ./internal/web/dist
1127
ARG VERSION=dev
12-
RUN go build \
28+
RUN CGO_ENABLED=0 go build \
1329
-ldflags="-X go.kenn.io/roborev/internal/version.Version=${VERSION}" \
1430
-o /roborev ./cmd/roborev
1531

16-
FROM alpine:3.19
32+
FROM node:22-bookworm
1733

1834
# Install dependencies for freeze + tmux screenshots
19-
RUN apk add --no-cache ca-certificates git bash tmux
35+
RUN apt-get update && \
36+
apt-get install -y --no-install-recommends ca-certificates git tmux wget && \
37+
rm -rf /var/lib/apt/lists/*
2038

2139
# Install freeze for SVG screenshots (detect architecture)
2240
RUN ARCH=$(uname -m) && \
@@ -28,6 +46,11 @@ RUN ARCH=$(uname -m) && \
2846

2947
COPY --from=builder /roborev /usr/local/bin/roborev
3048

49+
WORKDIR /screenshots
50+
COPY docs/screenshots/package.json docs/screenshots/package-lock.json ./
51+
RUN npm ci && npx playwright install --with-deps chromium
52+
COPY docs/screenshots/ ./
53+
3154
# Create config pointing to local daemon
3255
RUN mkdir -p /root/.roborev && \
3356
echo 'server_addr = "127.0.0.1:7373"' > /root/.roborev/config.toml
@@ -36,4 +59,4 @@ RUN mkdir -p /root/.roborev && \
3659
RUN printf '#!/bin/sh\ncat > /dev/null\n' > /usr/local/bin/xclip && \
3760
chmod +x /usr/local/bin/xclip
3861

39-
WORKDIR /screenshots
62+
ENTRYPOINT ["/bin/bash"]

0 commit comments

Comments
 (0)