@critiquedotsh/harness 0.1.13 → 0.1.14
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.
- package/README.md +17 -5
- package/dist/cli.js +6858 -619
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -85,7 +85,7 @@ critique-code remote --slack --anywhere
|
|
|
85
85
|
critique-code slack
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
-
Drive it from the website instead. Open [critique.sh/
|
|
88
|
+
Drive it from the website instead. Open [critique.sh/connect](https://critique.sh/connect), click **Connect this PC**, then paste the printed code on this machine:
|
|
89
89
|
|
|
90
90
|
```bash
|
|
91
91
|
critique-code connect K7M2-9QWX
|
|
@@ -98,11 +98,13 @@ Describe the change. Slash lines (`/review`, `/ship`, …) are never sent to the
|
|
|
98
98
|
## What a session does
|
|
99
99
|
|
|
100
100
|
1. **Author** implements in the working tree (writes go through a content-addressed apply path).
|
|
101
|
-
2. You can ask the model to run a workspace command via `critique_run`. **You** approve or deny each request. Denied means nothing runs. Output is not Evidence.
|
|
101
|
+
2. You can ask the model to run a workspace command via `critique_run`. **You** approve or deny each request. Denied means nothing runs. Networked runs are disabled unless a controller explicitly provides an enforced sandbox. Output is not Evidence.
|
|
102
102
|
3. **`/review` or `/ship`** starts the evidence harness. Author chat is withheld from the reviewer.
|
|
103
103
|
4. **`/repair`** runs verified repair on promoted findings. It is not auto-applied chatter.
|
|
104
104
|
5. `none_promoted` means nothing was promoted. It is **not** a correctness proof.
|
|
105
105
|
|
|
106
|
+
EOF attempts to review dirty work, while `/exit` records an incomplete session without claiming completion. The session store keeps only the task contract, review handoff, capsule digest, and bounded status—not the author transcript. A later invocation resumes only when the repository still matches that digest; stale state is surfaced explicitly. Partial or failed reports cannot satisfy `/done` or `/ship` without an auditable user override.
|
|
107
|
+
|
|
106
108
|
The author can fan out **`critique_task`** workers (`explore` is read-only; `general` / `implement` can write through the same CAS path). Independent native review is still `/review`, not a worker. `critique_cli` spawns the installed Critique CLI sidecar when you ask for that binary. `critique_run` still needs your approval. Workers cannot nest `critique_task` or `critique_cli`.
|
|
107
109
|
|
|
108
110
|
The TTY shows a wordmark, a compact live status (`thinking` / `write path` / `task explore …`), then a one-line `▸` summary before the reply. It does not stream thinking paragraphs.
|
|
@@ -135,7 +137,7 @@ critique-code help
|
|
|
135
137
|
| `critique-code` / `chat` | Interactive author session |
|
|
136
138
|
| `web` | Local browser UI on `127.0.0.1` (same author kernel; no TTY required) |
|
|
137
139
|
| `remote` | Phone pairing to this laptop: LAN PIN, optional `--anywhere` tunnel. Not Critique Cloud. |
|
|
138
|
-
| `connect [CODE]` | Register this PC on critique.sh/
|
|
140
|
+
| `connect [CODE]` | Register this PC on critique.sh/connect. The website is a remote; the kernel stays here. |
|
|
139
141
|
| `slack` / `telegram` | Outbound bots. DM the agent from those apps; the kernel stays in this process. |
|
|
140
142
|
| `login` | Browser device approval; connect Critique Inference |
|
|
141
143
|
| `settings` / `keys` / `models` | TUI for route, stored keys, and model ids |
|
|
@@ -180,6 +182,10 @@ Type `/` or `/help` for a selectable picker. **Lines that start with `/` never g
|
|
|
180
182
|
| `/voice` | Record one spoken prompt (Qwen3 ASR) |
|
|
181
183
|
| `/voice on` | Keep listening after each reply |
|
|
182
184
|
| `/voice off` | Return to the keyboard |
|
|
185
|
+
| `/goal <objective>` | Set one durable author objective; include the intended end state and proof loop |
|
|
186
|
+
| `/goal` / `/goal status` | Show the objective, lifecycle, and latest native review state |
|
|
187
|
+
| `/goal edit <objective>` | Change and resume the current objective |
|
|
188
|
+
| `/goal pause` / `/goal resume` / `/goal clear` | Control or remove the durable objective |
|
|
183
189
|
| `/review` | Evidence harness since the last review checkpoint |
|
|
184
190
|
| `/review all` | Evidence harness on the current tree even if unchanged |
|
|
185
191
|
| `/critique` | Spawn the Critique CLI sidecar (`critique review --json`) |
|
|
@@ -197,6 +203,12 @@ Spoken `review`, `repair`, `ship`, and `exit` match the typed commands when voic
|
|
|
197
203
|
|
|
198
204
|
Unknown `/foo` is rejected in the TUI. It is not forwarded as chat.
|
|
199
205
|
|
|
206
|
+
### Durable goals
|
|
207
|
+
|
|
208
|
+
`/goal` keeps one controller-owned objective with the resumable author session; it is restored after a process restart without retaining the raw author transcript. An active goal autonomously takes bounded checkpoint turns until it pauses, requests final verification, or becomes genuinely blocked. Every eight autonomous turns, CritiqueCode compacts the author context and opens a fresh author kernel with the durable task, live workspace state, controller evidence, and the active goal—so a long run does not depend on an ever-growing transcript. There is no implicit one-day ceiling for an interactive goal.
|
|
209
|
+
|
|
210
|
+
The author cannot mark a goal complete. It can only request final verification through `critique_goal`; the controller then runs validation and native `/review` on the current workspace. A qualifying clean result records the goal as complete; an unresolved completion decision records it as blocked. Pausing a goal preserves it but stops autonomous turns and goal injection.
|
|
211
|
+
|
|
200
212
|
## Voice mode
|
|
201
213
|
|
|
202
214
|
Talk to the author and the reviewer. `/voice` records one clip (Enter to stop). `/voice on` keeps listening after each reply. `/voice off` returns to the keyboard. `critique-code --voice` starts already listening.
|
|
@@ -269,7 +281,7 @@ The agent is this process on this laptop. Phone, Slack, Telegram, and the websit
|
|
|
269
281
|
1. Leave the machine awake with the session running.
|
|
270
282
|
2. Same Wi-Fi: `critique-code remote`, open the LAN URL on the phone, enter the PIN from the terminal.
|
|
271
283
|
3. Anywhere: DM the Slack or Telegram bot (`critique-code slack` / `critique-code telegram` / `--slack`). Those open outbound sockets. No inbound port.
|
|
272
|
-
4. Website: `critique-code connect CODE` after `critique-code login` claims the PC from [critique.sh/
|
|
284
|
+
4. Website: `critique-code connect CODE` after `critique-code login` claims the PC from [critique.sh/connect](https://critique.sh/connect). The site relays prompts and approvals; the kernel stays here.
|
|
273
285
|
5. Optional `--anywhere` uses **your** `cloudflared` or `ngrok`. The tunnel is a pipe. Writes still happen in this working tree.
|
|
274
286
|
|
|
275
287
|
Slack Socket Mode needs `SLACK_BOT_TOKEN` (`xoxb-`) and `SLACK_APP_TOKEN` (`xapp-`) with message events. Telegram needs `TELEGRAM_BOT_TOKEN`. Optional allowlists: `CRITIQUE_CODE_PORTAL_USERS`, `CRITIQUE_CODE_PORTAL_CHATS`.
|
|
@@ -292,7 +304,7 @@ Project `REVIEW_GUIDELINES.md` is loaded as a review constraint. `AGENTS.md`, `C
|
|
|
292
304
|
## Safety
|
|
293
305
|
|
|
294
306
|
- The model cannot pick a working directory, open a network path, or run a process on its own.
|
|
295
|
-
- `critique_run` is the only workspace exec path. You approve or deny each call. Output is not Evidence.
|
|
307
|
+
- `critique_run` is the only workspace exec path. You approve or deny each call; networked commands require an enforced controller sandbox and are disabled by default. Output is not Evidence.
|
|
296
308
|
- Promotion of findings stays on `/review` and `/ship`.
|
|
297
309
|
- Named checks are controller-owned. Author check output is not Evidence.
|
|
298
310
|
- `none_promoted` is not a proof that the tree is correct.
|