@retasc/cli 1.43.0 → 1.44.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 CHANGED
@@ -6,6 +6,20 @@ 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.44.0 (2026-09-08)
10
+
11
+ - **RTSC-861** — the proxy now tells Retasc which CLI version it is. It rides on
12
+ `mint_session_key`, the one call every proxy already makes at startup, as an optional
13
+ `cliVersion` argument, so an older build that sends nothing still mints exactly as
14
+ before.
15
+
16
+ Why it matters: the update notice (RTSC-520) fires from a `postAction` hook on
17
+ `retasc <command>`, and someone whose only contact with the CLI is the proxy their
18
+ harness spawns runs no commands and never sees it. Three live setups were found on
19
+ builds older than 1.41.0 with no way to find out. The server can now say so in the
20
+ tool result, which reaches every harness, and with this version it can name the exact
21
+ gap instead of inferring one from behaviour.
22
+
9
23
  ## 1.43.0 (2026-09-05)
10
24
 
11
25
  - **RTSC-799** - `tidy`, `done` and `claim` now work out which branch is this repo's trunk
@@ -46,7 +46,13 @@ export async function mintSessionKey(opts) {
46
46
  jsonrpc: "2.0",
47
47
  id: MINT_RPC_ID,
48
48
  method: "tools/call",
49
- params: { name: "mint_session_key", arguments: { label: opts.label } },
49
+ params: {
50
+ name: "mint_session_key",
51
+ arguments: {
52
+ label: opts.label,
53
+ ...(opts.cliVersion ? { cliVersion: opts.cliVersion } : {}),
54
+ },
55
+ },
50
56
  }),
51
57
  signal: AbortSignal.timeout(MINT_TIMEOUT_MS),
52
58
  });
package/dist/proxy.js CHANGED
@@ -15,6 +15,7 @@ import { AUTO_WORKSPACE, resolveConn } from "./lib/keystore.js";
15
15
  import { toolResult as parseTool } from "./lib/toolresult.js";
16
16
  import { mintSessionKey, appendFallbackNotice, recordSession, nameWorkspace, RPC_ID } from "./lib/session.js";
17
17
  import { readHookRecord, clearHookRecord, modelFromTranscript } from "./lib/sessionHook.js";
18
+ import { VERSION } from "./version.js";
18
19
  import { attachRoot, isLocalAttachCall, mergeAttachTool, readAttachFile, resolveAttachPath, uploadFailureMessage, uploadUrlWith, } from "./lib/attachFile.js";
19
20
  import { MAX_FETCH_BYTES, downloadFailureMessage, existingDownload, isLocalFetchCall, mergeFetchTool, resolveDownloadTarget, writeDownloadedFile, } from "./lib/fetchFile.js";
20
21
  // RTSC-92/98: resolve the workspace key via the SHARED resolver, so the proxy and
@@ -195,7 +196,16 @@ async function adoptSessionKey() {
195
196
  if (!KEY)
196
197
  return;
197
198
  const label = process.env.RETASC_SESSION_LABEL || `${hostname()}#${process.pid}`;
198
- const outcome = await mintSessionKey({ url: MCP_URL, key: KEY, label, warn: log });
199
+ // RTSC-861 report our own version at the one call every proxy makes at startup,
200
+ // so the server never has to infer whether this build is current. A proxy too old to
201
+ // send it is exactly the case the server-side inference exists for.
202
+ const outcome = await mintSessionKey({
203
+ url: MCP_URL,
204
+ key: KEY,
205
+ label,
206
+ cliVersion: VERSION,
207
+ warn: log,
208
+ });
199
209
  if (outcome.ok) {
200
210
  activeKey = outcome.key; // switch to the session key
201
211
  log(`adopted session key "${outcome.session ?? label}"`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retasc/cli",
3
- "version": "1.43.0",
3
+ "version": "1.44.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": {