@hanzlaa/rcode 3.4.27 → 3.4.28
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/AGENTS.md +1 -1
- package/CONTRIBUTING.md +9 -0
- package/cli/lib/manifest.cjs +13 -7
- package/dist/rcode.js +4 -5
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -24,7 +24,7 @@ If a user says "just keep going" or "don't stop until done", that authorization
|
|
|
24
24
|
|
|
25
25
|
- Follow [Conventional Commits](https://www.conventionalcommits.org/) format: `type(scope): subject`
|
|
26
26
|
- Types allowed: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `perf`, `revert`
|
|
27
|
-
- Scopes allowed: `agents`, `skills`, `workflows`, `templates`, `dashboard`, `docs`, `config`, `github`, `commands`, `memory`, `brand`, `cli`, `ci`, `release`, `meta`, `tasks`, `migrations`, `refs`, `state`, `hooks`, `install`, `parity`, `triggers`, `dogfood`, `namespace`, `planning`, `insights`, `help`, `roadmap`, `session`, `audits`, `execute`, `executor`, `plan`, `planner`, `readme`, `sync`, `sprint`, `agent-exp`, `extensibility`, `lens-audit`, `tiers`, plus numeric phase/sprint scopes (e.g. `docs(15)`, `feat(8.3)`)
|
|
27
|
+
- Scopes allowed: `agents`, `skills`, `workflows`, `templates`, `dashboard`, `docs`, `config`, `github`, `commands`, `memory`, `brand`, `cli`, `ci`, `release`, `meta`, `tasks`, `migrations`, `refs`, `state`, `hooks`, `install`, `parity`, `triggers`, `dogfood`, `namespace`, `planning`, `insights`, `help`, `roadmap`, `session`, `audits`, `execute`, `executor`, `plan`, `planner`, `readme`, `sync`, `sprint`, `agent-exp`, `extensibility`, `lens-audit`, `tiers`, `build`, `council`, `doctor`, `postinstall`, `progress`, `security`, `tools`, `uninstall`, `test`, plus numeric phase/sprint scopes (e.g. `docs(15)`, `feat(8.3)`)
|
|
28
28
|
- Subject: lowercase first letter, imperative mood, no trailing period, under 72 chars
|
|
29
29
|
- **NEVER add Claude/AI attribution to commit messages.** No "Generated with Claude Code", no "Co-Authored-By: Claude", no "🤖 Generated". The user does not want this.
|
|
30
30
|
- **NEVER use `--no-verify`** to bypass hooks. If hooks fail, fix the underlying issue.
|
package/CONTRIBUTING.md
CHANGED
|
@@ -298,6 +298,15 @@ We use [Conventional Commits](https://www.conventionalcommits.org/) format. The
|
|
|
298
298
|
- `extensibility` — extensibility and plugin hooks
|
|
299
299
|
- `lens-audit` — 15-lens audit system and lenses
|
|
300
300
|
- `tiers` — TIERS.md and tier-related documentation
|
|
301
|
+
- `build` — `scripts/build.cjs`, esbuild config, bundle artifacts
|
|
302
|
+
- `council` — `/rihal-council` workflow + spawning logic
|
|
303
|
+
- `doctor` — `cli/doctor.js` health checks
|
|
304
|
+
- `postinstall` — `cli/postinstall.js` lifecycle hook
|
|
305
|
+
- `progress` — `/rihal-progress` workflow
|
|
306
|
+
- `security` — security guardrails (symlink guards, integrity checks)
|
|
307
|
+
- `test` — test files under `test/` (test-only changes)
|
|
308
|
+
- `tools` — `rihal/bin/rihal-tools.cjs` subcommands
|
|
309
|
+
- `uninstall` — `cli/uninstall.js` flow
|
|
301
310
|
- `<phase-id>` — numeric phase scope when committing inside a phase (e.g. `docs(15)`, `feat(8.3)`)
|
|
302
311
|
- `<sprint-id>` — numeric sprint scope inside a phase (e.g. `feat(15.1)`)
|
|
303
312
|
|
package/cli/lib/manifest.cjs
CHANGED
|
@@ -109,7 +109,12 @@ function diffSet(editor, kind, expected, installed) {
|
|
|
109
109
|
* makes doctor report drift like "agents 119/23" when nothing is wrong.
|
|
110
110
|
* That's why the agent count comes from .claude/agents/, not .claude/skills/.
|
|
111
111
|
*/
|
|
112
|
-
function verifyClaudeInstall(cwd, packageRoot) {
|
|
112
|
+
function verifyClaudeInstall(cwd, packageRoot, options = {}) {
|
|
113
|
+
// Issue #698: tests assert against an isolated tempdir cwd. The global
|
|
114
|
+
// fallback (#664) makes that impossible because it reads the contributor's
|
|
115
|
+
// real ~/.claude/. Tests can pass { globalFallback: false } to disable it.
|
|
116
|
+
// Default remains true to preserve the runtime behavior introduced in #664.
|
|
117
|
+
const globalFallback = options.globalFallback !== false;
|
|
113
118
|
const pkg = readPackageManifest(packageRoot);
|
|
114
119
|
const agentsDir = path.join(cwd, '.claude/agents');
|
|
115
120
|
const skillsDir = path.join(cwd, '.claude/skills');
|
|
@@ -129,7 +134,7 @@ function verifyClaudeInstall(cwd, packageRoot) {
|
|
|
129
134
|
// level .claude/agents/rihal-*.md when the user's ~/.claude/ already has
|
|
130
135
|
// them, to avoid duplicate commands. Without this fallback the verifier
|
|
131
136
|
// reports 0 agents on every successful install in that scenario.
|
|
132
|
-
if (installedAgents.size === 0) {
|
|
137
|
+
if (installedAgents.size === 0 && globalFallback) {
|
|
133
138
|
try {
|
|
134
139
|
const os = require('os');
|
|
135
140
|
const globalAgentsDir = path.join(os.homedir(), '.claude/agents');
|
|
@@ -143,12 +148,13 @@ function verifyClaudeInstall(cwd, packageRoot) {
|
|
|
143
148
|
} catch { /* non-fatal — permission errors etc. */ }
|
|
144
149
|
}
|
|
145
150
|
|
|
146
|
-
// Actions: .claude/skills
|
|
147
|
-
//
|
|
151
|
+
// Actions: .claude/skills/rihal-<name>/. installSkills (cli/install.js)
|
|
152
|
+
// prefixes every action with rihal-, and readPackageManifest does the
|
|
153
|
+
// same — so both sides are normalized. The previous version filtered OUT
|
|
154
|
+
// rihal-* dirs which excluded ALL real actions and made the diff always
|
|
155
|
+
// report "everything missing." Compare directly against the prefixed set.
|
|
148
156
|
const allInstalled = readInstalledDirs(skillsDir);
|
|
149
|
-
const actionsInstalled = new Set(
|
|
150
|
-
[...allInstalled].filter((n) => !n.startsWith('rihal-'))
|
|
151
|
-
);
|
|
157
|
+
const actionsInstalled = new Set([...allInstalled].filter((n) => pkg.actions.has(n)));
|
|
152
158
|
|
|
153
159
|
return [
|
|
154
160
|
diffSet('claude', 'agents', pkg.agents, installedAgents),
|
package/dist/rcode.js
CHANGED
|
@@ -15073,7 +15073,8 @@ var require_manifest = __commonJS({
|
|
|
15073
15073
|
extra
|
|
15074
15074
|
};
|
|
15075
15075
|
}
|
|
15076
|
-
function verifyClaudeInstall(cwd, packageRoot) {
|
|
15076
|
+
function verifyClaudeInstall(cwd, packageRoot, options = {}) {
|
|
15077
|
+
const globalFallback = options.globalFallback !== false;
|
|
15077
15078
|
const pkg = readPackageManifest(packageRoot);
|
|
15078
15079
|
const agentsDir = path2.join(cwd, ".claude/agents");
|
|
15079
15080
|
const skillsDir = path2.join(cwd, ".claude/skills");
|
|
@@ -15085,7 +15086,7 @@ var require_manifest = __commonJS({
|
|
|
15085
15086
|
}
|
|
15086
15087
|
}
|
|
15087
15088
|
}
|
|
15088
|
-
if (installedAgents.size === 0) {
|
|
15089
|
+
if (installedAgents.size === 0 && globalFallback) {
|
|
15089
15090
|
try {
|
|
15090
15091
|
const os = require("os");
|
|
15091
15092
|
const globalAgentsDir = path2.join(os.homedir(), ".claude/agents");
|
|
@@ -15100,9 +15101,7 @@ var require_manifest = __commonJS({
|
|
|
15100
15101
|
}
|
|
15101
15102
|
}
|
|
15102
15103
|
const allInstalled = readInstalledDirs(skillsDir);
|
|
15103
|
-
const actionsInstalled = new Set(
|
|
15104
|
-
[...allInstalled].filter((n) => !n.startsWith("rihal-"))
|
|
15105
|
-
);
|
|
15104
|
+
const actionsInstalled = new Set([...allInstalled].filter((n) => pkg.actions.has(n)));
|
|
15106
15105
|
return [
|
|
15107
15106
|
diffSet("claude", "agents", pkg.agents, installedAgents),
|
|
15108
15107
|
diffSet("claude", "actions", pkg.actions, actionsInstalled)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzlaa/rcode",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.28",
|
|
4
4
|
"description": "rcode — the memory bank for AI-driven SaaS teams. Persistent project context, distinctive engineering personas, and phase-based workflows. Built by Rihal. Works in Claude Code, Cursor, Gemini, VS Code, and Antigravity.",
|
|
5
5
|
"main": "cli/index.js",
|
|
6
6
|
"bin": {
|