@retasc/cli 1.51.0 → 1.52.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.
- package/CHANGELOG.md +19 -1
- package/dist/commands/bind.js +0 -1
- package/dist/commands/plan.js +4 -2
- package/dist/index.js +0 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,10 +6,28 @@ release commits and the issues they reference.
|
|
|
6
6
|
|
|
7
7
|
Dates are the npm publish date. Each entry names the RTSC issue behind it.
|
|
8
8
|
|
|
9
|
-
## 1.
|
|
9
|
+
## 1.52.0 (2026-09-14)
|
|
10
10
|
|
|
11
11
|
- TODO: describe this release, and name the RTSC issue behind it.
|
|
12
12
|
|
|
13
|
+
## 1.51.0 (2026-09-13)
|
|
14
|
+
|
|
15
|
+
- **RTSC-962** — the proxy now reports git worktrees nobody claimed, so Retasc can see
|
|
16
|
+
work an agent started without saying so. Retasc fenced the END of work and nothing at
|
|
17
|
+
the START: `done` rejects on a claim mismatch, `review` demands a handoff, but the
|
|
18
|
+
server never sees an agent edit a file — so an agent could build thousands of lines
|
|
19
|
+
against an issue the queue still showed as free, and a second agent would read it as
|
|
20
|
+
untouched and duplicate or decompose it.
|
|
21
|
+
The server still reads no git. This process does: a `rtsc-NN/<slug>` worktree with no
|
|
22
|
+
live claim behind it is reported, and the issue gets a **provisional hold** — visible
|
|
23
|
+
on `get_issue`, withheld from `next_issue` / `next_batch`, lapsing after an hour.
|
|
24
|
+
A hold is not a lease and never refuses an explicit `claim_issue`, so the agent that
|
|
25
|
+
forgot to claim always gets its own work back.
|
|
26
|
+
Only ACTIVE worktrees count (uncommitted changes, or a commit in the last day), so an
|
|
27
|
+
abandoned directory cannot park an issue; git runs asynchronously and off the critical
|
|
28
|
+
path, so the census never delays a tool call; and each unclaimed worktree is announced
|
|
29
|
+
once, not on every call. A server without the tool simply produces no holds.
|
|
30
|
+
|
|
13
31
|
## 1.50.0 (2026-09-11)
|
|
14
32
|
|
|
15
33
|
- **RTSC-901** — `retasc plan`: which subscription pays for each of your agents, listed
|
package/dist/commands/bind.js
CHANGED
|
@@ -513,7 +513,6 @@ export async function completeWorkspaceSetup(args) {
|
|
|
513
513
|
: (await api.mintKey({
|
|
514
514
|
orgId,
|
|
515
515
|
projectId: projectId,
|
|
516
|
-
agentName: opts.agent,
|
|
517
516
|
runtime: opts.runtime ?? "claude-code",
|
|
518
517
|
// RTSC-859 — bind is the folder door, so this is a workspace key, and the row
|
|
519
518
|
// says so rather than leaving it to the server's default.
|
package/dist/commands/plan.js
CHANGED
|
@@ -4,8 +4,10 @@ import { ask, isInteractive, select } from "../lib/prompt.js";
|
|
|
4
4
|
// for that: an agent name or a plan label carrying \x1b[ can move the cursor, clear
|
|
5
5
|
// the line and rewrite the rows above it. That matters most HERE, because this
|
|
6
6
|
// command prints a list and then asks a question the reader answers by number, and
|
|
7
|
-
// `mintKey` stores `
|
|
8
|
-
//
|
|
7
|
+
// `mintKey` stores `runtime` verbatim — so any member of the org can choose what lands
|
|
8
|
+
// on an owner's terminal. Since RTSC-958 the NAME is no longer one of those values: it
|
|
9
|
+
// is generated server-side. `clean` still covers it, because every name typed before
|
|
10
|
+
// that change is still stored, and `runtime` is caller-supplied either way.
|
|
9
11
|
import { clean } from "../lib/text.js";
|
|
10
12
|
// Nothing about plans is compiled in here — not the list, and not the two terminal
|
|
11
13
|
// answers either. `cli/src/lib/outcome.ts` records why the CLI cannot import
|
package/dist/index.js
CHANGED
|
@@ -146,7 +146,6 @@ program
|
|
|
146
146
|
.option("--org-id <id>", "Use an existing org id instead of creating one")
|
|
147
147
|
.requiredOption("--project <name>", "Project name")
|
|
148
148
|
.requiredOption("--prefix <PREFIX>", "Project prefix, e.g. XEN")
|
|
149
|
-
.option("--agent <name>", "Agent member name (default: auto, \"{you}'s {runtime}\")")
|
|
150
149
|
.option("--runtime <runtime>", "Label for this agent in the Dash (claude-code | codex | grok | …). Does NOT choose where MCP config is written — `retasc setup` wires every harness on the machine.", "claude-code")
|
|
151
150
|
.option("-y, --yes", "Don't prompt to confirm replacing an existing binding")
|
|
152
151
|
.option("--no-install", "Don't install `retasc` on this machine; wire the pinned npx launcher instead")
|
|
@@ -190,7 +189,6 @@ program
|
|
|
190
189
|
opts: {
|
|
191
190
|
project: opts.project,
|
|
192
191
|
prefix: opts.prefix,
|
|
193
|
-
agent: opts.agent,
|
|
194
192
|
runtime: opts.runtime,
|
|
195
193
|
install: opts.install,
|
|
196
194
|
yes: opts.yes,
|
|
@@ -214,7 +212,6 @@ program
|
|
|
214
212
|
.option("--project-id <id>", "Use an existing project id")
|
|
215
213
|
.option("--project <name>", "Create a new project with this name (with --prefix)")
|
|
216
214
|
.option("--prefix <PREFIX>", "Prefix for a new project, e.g. ACME")
|
|
217
|
-
.option("--agent <name>", "Agent member name (default: auto)")
|
|
218
215
|
.option("--runtime <runtime>", "Label for this agent in the Dash (claude-code | codex | grok | …). Does NOT choose where MCP config is written — `retasc setup` wires every harness on the machine.", "claude-code")
|
|
219
216
|
.option("-y, --yes", "Don't prompt to confirm replacing an existing binding")
|
|
220
217
|
// RTSC-523 — decline the global install without a TTY. `bind`/`join` ask when a human
|
|
@@ -371,7 +368,6 @@ key
|
|
|
371
368
|
.command("mint")
|
|
372
369
|
.requiredOption("--org-id <id>")
|
|
373
370
|
.requiredOption("--project-id <id>")
|
|
374
|
-
.option("--agent <name>", "Agent member name (default: auto, \"{you}'s {runtime}\")")
|
|
375
371
|
.option("--runtime <runtime>", "Label for this agent in the Dash (claude-code | codex | grok | …). Does NOT choose where MCP config is written — `retasc setup` wires every harness on the machine.", "claude-code")
|
|
376
372
|
.option("--name <label>", "Key label")
|
|
377
373
|
// RTSC-859 — say at mint that this key will never have a local runner. Without it
|
|
@@ -394,7 +390,6 @@ key
|
|
|
394
390
|
const res = (await api.mintKey({
|
|
395
391
|
orgId: opts.orgId,
|
|
396
392
|
projectId: opts.projectId,
|
|
397
|
-
agentName: opts.agent,
|
|
398
393
|
runtime: opts.runtime,
|
|
399
394
|
keyName: opts.name,
|
|
400
395
|
// RTSC-859 — said only when the caller actually said something. `--hosted` is
|
|
@@ -553,7 +548,6 @@ program
|
|
|
553
548
|
.argument("<link>", "The invite link you were given (or just the rtscinv_… code)")
|
|
554
549
|
.option("--no-bind", "Redeem only — don't set this folder up")
|
|
555
550
|
.option("--project-id <id>", "Which project to bind to (skips the picker)")
|
|
556
|
-
.option("--agent <name>", "Agent member name (default: auto)")
|
|
557
551
|
.option("--runtime <runtime>", "Label for this agent in the Dash (claude-code | codex | grok | …). Does NOT choose where MCP config is written — `retasc setup` wires every harness on the machine.", "claude-code")
|
|
558
552
|
// RTSC-477 — name the way back. `--yes` skips the identity question and must never answer
|
|
559
553
|
// it, so the flag that causes the gap is the right place to say how to close it.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@retasc/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.52.0",
|
|
4
4
|
"description": "Retasc CLI — the issue tracker AI agents pull work from. Sign in with GitHub or Google, create projects, mint agent API keys, and wire your agent to the Retasc MCP server in one command.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|