projecta-rrr 1.22.0 → 1.22.1
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 +38 -0
- package/package.json +1 -1
- package/scripts/register-mcp.js +19 -6
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,44 @@ All notable changes to RRR will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [1.22.1] - 2026-04-19
|
|
8
|
+
|
|
9
|
+
**Patch: fixes v1.22.0 fresh install regression.**
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- **`scripts/register-mcp.js` postinstall** no longer breaks `npm install -g projecta-rrr`. Two fixes:
|
|
13
|
+
1. Fallback path corrected — looks at `<pkg>/rrr/mcp-server/index.js` (npm layout) before `<pkg>/mcp-server/index.js` (legacy). v1.22.0 only checked the legacy path, which doesnt exist in the npm tarball, causing the postinstall to exit 1 and abort the entire install.
|
|
14
|
+
2. Registration failures are now advisory (`process.exit(0)` + warn) instead of fatal (`process.exit(1)`). Re-run `node scripts/register-mcp.js` or `/rrr:doctor` after install if needed.
|
|
15
|
+
|
|
16
|
+
Surfaced via UAT: fresh `HOME=tmp npm install -g projecta-rrr@1.22.0 --prefix=tmp` aborted before `node_modules/projecta-rrr` landed. v1.22.1 installs cleanly.
|
|
17
|
+
|
|
18
|
+
### Verified in UAT
|
|
19
|
+
- **Hosted MCP latency** (5 samples): 108–142ms (median ~128ms) on /health.
|
|
20
|
+
- **Model-router PreToolUse latency** (10 samples): 30–40ms per Task spawn.
|
|
21
|
+
- **Dynamic routing (Phase 83)** static = no rewrite (v1.21 bit-for-bit); dynamic = `rrr-explore→haiku` rewrite + telemetry row.
|
|
22
|
+
- **Stage-aware routing**: `verify-work` + `rrr-verifier` = sonnet; `plan-phase` execution + `general-purpose` = inherit.
|
|
23
|
+
- **Phase 84 escalation**: `rrr-debugger` iter-3 with state at `<project>/.rrr/state/debug-session.json` → opus + telemetry `reason:"debugger_iter_escalate", retry_count:3, prior_tier:"inherit"`.
|
|
24
|
+
- **Phase 85 tool-disallow**: BLOCKs main-thread Read with exit 2 when flag on; allows when flag off; respects `RRR_TOK_DISALLOW=off` kill switch.
|
|
25
|
+
- **Phase 85 edit-batching-nudge**: 2nd Edit within 30s → "edited foo.js 2× in ~30s" advisory; 3rd silent (lastNudgeMs prevents spam); state at `<project>/.planning/.cache/edit-batching-state.json`.
|
|
26
|
+
- **PUSH-POLICY**: 10/10 RRR command skills include `git push`/`auto-push` reference.
|
|
27
|
+
- **auto-push helper**: graceful failure on no-remote ("non-fatal — your work is committed locally"); `auto_push:false` → `{ran:false, skipped:"settings_disabled"}`.
|
|
28
|
+
- **measure-token-delta + measure-opus-rate**: correctly return INSUFFICIENT_DATA verdict on partial telemetry (13 dispatches, need ≥100). Methodology + min_required documented in JSON output.
|
|
29
|
+
- **/rrr:savings**: reads `<project>/.planning/observations*.jsonl` + `~/.rrr/telemetry/escalations.jsonl`.
|
|
30
|
+
- **doctor**: clean on populated install ("Found 1 command root(s) ✅ active"); reports 0 + SAFE MODE on hud-only install (expected — full provision needs `npx projecta-rrr install`).
|
|
31
|
+
- **Fresh install (v1.22.1)**: `HOME=tmp npm install -g projecta-rrr@1.22.1 --prefix=tmp` succeeds, package lands in node_modules.
|
|
32
|
+
|
|
33
|
+
### Known UAT findings (followups, not blockers)
|
|
34
|
+
- **edit-batching-nudge state location**: `<project>/.planning/.cache/edit-batching-state.json`. Hook is silent if CWD has no `.planning/` directory — by design (cant infer project context). Document in onboarding.
|
|
35
|
+
- **/rrr:savings input path**: project-root `.planning/observations*.jsonl`, NOT HOME. Reports 0 if v1.19 observation logger never ran in current project.
|
|
36
|
+
- **`tool-disallow` subagent exemption**: heuristic uses `input.agent_name` field; needs validation against real Claude Code PreToolUse payload schema (Phase 85 followup).
|
|
37
|
+
- **Postinstall `--hud-only`**: full command/agent/script provision requires separate `npx projecta-rrr install`. Consider auto-bootstrapping in v1.22.x.
|
|
38
|
+
- **`/metrics/freshness`** hosted endpoint returns 404 — by design; HUD reads freshness via `semantic_search` response payload.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### Known limitations (followups)
|
|
42
|
+
- `tool-disallow` subagent exemption uses `input.agent_name` heuristic; may need updating when Claude Code PreToolUse payload schema is fully nailed down.
|
|
43
|
+
- Escalation requires per-project state file at `<project>/.rrr/state/debug-session.json` (not HOME). Increments are wired in v1.22 but operator should verify their /rrr:debug session writes to CWD.
|
|
44
|
+
|
|
7
45
|
## [1.22.0] - 2026-04-19
|
|
8
46
|
|
|
9
47
|
**Webhook Live Reindex + Dynamic Routing + Token Diet v2.**
|
package/package.json
CHANGED
package/scripts/register-mcp.js
CHANGED
|
@@ -41,8 +41,14 @@ function getMCPServerPath() {
|
|
|
41
41
|
return installedPath;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
// Fallback to relative path
|
|
45
|
-
//
|
|
44
|
+
// Fallback to package-relative path. Try both layouts: published npm package
|
|
45
|
+
// ships the server at <pkg>/rrr/mcp-server/index.js, but the dev repo also
|
|
46
|
+
// has a top-level <pkg>/mcp-server (legacy v1.17 layout).
|
|
47
|
+
// scripts/register-mcp.js → __dirname is <pkg>/scripts
|
|
48
|
+
const npmLayout = path.resolve(__dirname, '..', 'rrr', 'mcp-server', 'index.js');
|
|
49
|
+
if (fs.existsSync(npmLayout)) {
|
|
50
|
+
return npmLayout;
|
|
51
|
+
}
|
|
46
52
|
return path.resolve(__dirname, '..', 'mcp-server', 'index.js');
|
|
47
53
|
}
|
|
48
54
|
|
|
@@ -274,13 +280,20 @@ if (require.main === module) {
|
|
|
274
280
|
console.log(`Registered ${MCP_SERVER_ID} with Claude Code (method: ${result.method})`);
|
|
275
281
|
process.exit(0);
|
|
276
282
|
} else {
|
|
277
|
-
|
|
278
|
-
|
|
283
|
+
// Advisory only — don't fail npm postinstall on registration failure.
|
|
284
|
+
// The MCP server can be registered later via /rrr:doctor or by re-running
|
|
285
|
+
// `node scripts/register-mcp.js`. v1.22.0 shipped exit(1) here, which
|
|
286
|
+
// broke fresh `npm install -g projecta-rrr` (the package never landed
|
|
287
|
+
// because postinstall errored). v1.22.1 makes this advisory.
|
|
288
|
+
console.warn(`[mcp] Registration skipped: ${result.error}`);
|
|
289
|
+
console.warn(`[mcp] Run 'node scripts/register-mcp.js' or '/rrr:doctor' after install to retry.`);
|
|
290
|
+
process.exit(0);
|
|
279
291
|
}
|
|
280
292
|
})
|
|
281
293
|
.catch(err => {
|
|
282
|
-
console.
|
|
283
|
-
|
|
294
|
+
console.warn(`[mcp] Registration error: ${err.message}`);
|
|
295
|
+
console.warn(`[mcp] Continuing — re-run registration manually.`);
|
|
296
|
+
process.exit(0);
|
|
284
297
|
});
|
|
285
298
|
}
|
|
286
299
|
}
|