@hyperlogue/r3 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +34 -14
  2. package/package.json +5 -5
package/README.md CHANGED
@@ -8,18 +8,28 @@
8
8
  <a href="https://www.npmjs.com/package/@hyperlogue/r3"><img src="https://img.shields.io/npm/v/@hyperlogue/r3?color=cb3837&amp;logo=npm&amp;label=%40hyperlogue%2Fr3" alt="npm version"></a>
9
9
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license: MIT"></a>
10
10
  <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey" alt="platforms: macOS, Linux">
11
+ <a href="https://hyperlogue.github.io/r3/demo/"><img src="https://img.shields.io/badge/live-demo-6164ff?logo=googlechrome&amp;logoColor=white" alt="live demo"></a>
12
+ </p>
13
+
14
+ <p align="center">
15
+ <img alt="r3_cc" src="https://github.com/user-attachments/assets/ba85f5a2-e244-4a04-b673-22cb88694c2b" width="49.6%">
16
+ <img alt="r3_web" src="https://github.com/user-attachments/assets/4b99a128-3484-44ce-a727-8d72a3dc532b" width="42.4%">
17
+ </p>
18
+
19
+ <p align="center">
20
+ <a href="https://hyperlogue.github.io/r3/demo/"><b>▶&nbsp;Try the live demo</b></a> — the full UI, running entirely in your browser.
11
21
  </p>
12
22
 
13
23
  r3 is a review tool for the diffs and docs produced by your coding agents, running
14
24
  locally with a web interface. You leave feedback pinned to the exact line or
15
25
  quote it's about, and track each comment to resolution.
16
26
 
17
- r3 fills a gap the chat box can't. Say your agent writes a long planning doc and
18
- you want to fix a handful of things. In a chat you copy-paste each passage to
19
- quote it, type your feedback, then lose track across turns of what's been handled.
20
- Instead of working in a linear, unstructured chat stream, r3 works like the code
21
- review tools you're used to, but just for you and your agents, and it runs fully
22
- locally.
27
+ r3 fills a gap that chat boxes cant. Say your agent writes a long planning
28
+ document and you want to fix a handful of issues. In chat, you have to copy and
29
+ paste each passage, explain your feedback, and then keep track of what has or
30
+ hasn’t been addressed across multiple turns. r3 replaces that linear,
31
+ unstructured stream with a workflow modeled on the code review tools you already
32
+ know—built specifically for you and your agents, and running entirely locally.
23
33
 
24
34
  <div align="center">
25
35
  <video src="https://github.com/user-attachments/assets/0c1aefaf-0229-49e7-a4dc-e660dc0214f6" width="760" muted controls></video>
@@ -27,7 +37,7 @@ locally.
27
37
 
28
38
  ## Workflow
29
39
 
30
- The point of r3 is a tight, copy-paste-free review loop between you and an agent.
40
+ r3 offers a tight, copy-paste-free review loop between you and an agent.
31
41
 
32
42
  ```mermaid
33
43
  sequenceDiagram
@@ -153,17 +163,27 @@ when exposed.) Force it either way with `R3_REQUIRE_LOGIN=1|0`.
153
163
 
154
164
  ```sh
155
165
  # on the host:
156
- export R3_PUBLIC_URL=https://myhost.tailnet.ts.net # allows that Host + requires login
157
- r3 restart
158
- tailscale serve --bg 8791 # -> https://myhost.tailnet.ts.net/
159
- r3 auth create-token --label laptop # prints the token once — paste it in the browser
166
+ r3 config set publicUrl https://myhost.tailnet.ts.net # allows that Host + requires login
167
+ r3 restart # config.json is read below env
168
+ tailscale serve --bg 8791 # -> https://myhost.tailnet.ts.net/
169
+ r3 auth create-token --label laptop # prints the token once — paste it in the browser
160
170
  ```
161
171
 
162
- `r3 auth list-tokens` / `r3 auth revoke-token <id> | --all` manage them (revoking
172
+ `r3 config set` **persists** these settings to `$XDG_CONFIG_HOME/r3/config.json`, so
173
+ a restart — or a daemon lazily re-spawned by any CLI call from a shell that never
174
+ exported the env vars — keeps serving remotely instead of silently dropping to
175
+ loopback-only. (`export R3_PUBLIC_URL=…` still works for a one-off run; it just
176
+ isn't remembered.) The store is a flat map — names `bind`, `port`, `publicUrl`,
177
+ `allowedHosts` (comma list), `requireLogin`: `r3 config show` dumps the JSON,
178
+ `r3 config get <name>` prints one value, `r3 config unset <name>` reverts one.
179
+
180
+ `r3 auth list-tokens` / `r3 auth revoke-token <id> | --all` manage tokens (revoking
163
181
  kills its sessions immediately).
164
182
 
165
- Env: `R3_PORT` (default 8791), `R3_BIND` (default `127.0.0.1`), `R3_ALLOWED_HOSTS`
183
+ Settings: `R3_PORT` (default 8791), `R3_BIND` (default `127.0.0.1`), `R3_ALLOWED_HOSTS`
166
184
  (comma-separated exact Host names, never `*`; a non-loopback name here also marks r3
167
185
  exposed), `R3_PUBLIC_URL` (a non-loopback host is auto-allowed **and** marks r3
168
186
  exposed, so this alone covers the common single-name `tailscale serve` case), `R3_REQUIRE_LOGIN`
169
- (`1`/`0` to force the login requirement on or off explicitly).
187
+ (`1`/`0` to force the login requirement on or off explicitly). Each resolves
188
+ **env → `config.json` (via `r3 config set`) → default**, so env overrides the
189
+ persisted file for a single run.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperlogue/r3",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Review. Revise. Resolve. — a local-first review tool for AI-generated code and docs. Runs the matching prebuilt native r3 binary (shipped as a per-platform optional dependency); works with `bunx @hyperlogue/r3` and `npx @hyperlogue/r3`.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -17,10 +17,10 @@
17
17
  "launch.mjs"
18
18
  ],
19
19
  "optionalDependencies": {
20
- "@hyperlogue/r3-darwin-arm64": "0.4.0",
21
- "@hyperlogue/r3-darwin-x64": "0.4.0",
22
- "@hyperlogue/r3-linux-x64": "0.4.0",
23
- "@hyperlogue/r3-linux-arm64": "0.4.0"
20
+ "@hyperlogue/r3-darwin-arm64": "0.6.0",
21
+ "@hyperlogue/r3-darwin-x64": "0.6.0",
22
+ "@hyperlogue/r3-linux-x64": "0.6.0",
23
+ "@hyperlogue/r3-linux-arm64": "0.6.0"
24
24
  },
25
25
  "engines": {
26
26
  "node": ">=18"