replen 1.3.0 → 1.4.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/dist/auto-register.js
CHANGED
|
@@ -148,6 +148,9 @@ async function postProjectsBulk(base, token, projects) {
|
|
|
148
148
|
name: p.name,
|
|
149
149
|
tags: p.tags,
|
|
150
150
|
primaryLanguage: p.primaryLanguage ?? undefined,
|
|
151
|
+
// Absolute local checkout path — see sync-projects.ts. Inert unless
|
|
152
|
+
// the server is a self-host install with Immersion enabled.
|
|
153
|
+
localPath: p.localPath,
|
|
151
154
|
})),
|
|
152
155
|
}),
|
|
153
156
|
signal: ctrl.signal,
|
package/dist/skill-install.js
CHANGED
|
@@ -20,6 +20,7 @@ const BUNDLED_SKILLS_ROOT = join(SELF_DIR, "..", "extras", "skills");
|
|
|
20
20
|
// follow the MCP tool's description instead. The CLAUDE.md instruction
|
|
21
21
|
// shipped by `replen project-init` is the cross-host fallback.
|
|
22
22
|
const CLAUDE_SKILLS_ROOT = join(homedir(), ".claude", "skills");
|
|
23
|
+
const CLAUDE_COMMANDS_ROOT = join(homedir(), ".claude", "commands");
|
|
23
24
|
const SKILLS = [
|
|
24
25
|
{
|
|
25
26
|
name: "replen",
|
|
@@ -54,6 +55,18 @@ export function installSkills() {
|
|
|
54
55
|
catch { /* best effort */ }
|
|
55
56
|
}
|
|
56
57
|
}
|
|
58
|
+
// Migrate: an early Replen shipped a `/replen` slash COMMAND (~/.claude/commands/
|
|
59
|
+
// replen.md) that invokes the now-removed `replen-match` skill. Left in place it
|
|
60
|
+
// renders a DUPLICATE `/replen` next to the skill. Remove only OUR stale command —
|
|
61
|
+
// gated on it referencing `replen-match`, so a user's own `/replen` command (or any
|
|
62
|
+
// other) is never touched.
|
|
63
|
+
try {
|
|
64
|
+
const legacyCmd = join(CLAUDE_COMMANDS_ROOT, "replen.md");
|
|
65
|
+
if (existsSync(legacyCmd) && readFileSync(legacyCmd, "utf8").includes("replen-match")) {
|
|
66
|
+
rmSync(legacyCmd, { force: true });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch { /* best effort */ }
|
|
57
70
|
let installed = 0;
|
|
58
71
|
for (const skill of SKILLS) {
|
|
59
72
|
for (const rel of skill.files) {
|
package/dist/sync-projects.js
CHANGED
|
@@ -38,6 +38,11 @@ export async function syncDiscoveredProjects({ token, base, explicitRoots = [],
|
|
|
38
38
|
name: p.name,
|
|
39
39
|
tags: p.tags,
|
|
40
40
|
primaryLanguage: p.primaryLanguage ?? undefined,
|
|
41
|
+
// Absolute local checkout path. Used by Immersion on a self-host install
|
|
42
|
+
// (server == this machine) to ground on the actual source; inert on the
|
|
43
|
+
// hosted server, which can't read it. Always sent — it's identity, not
|
|
44
|
+
// code; nothing is read unless the operator enables Immersion.
|
|
45
|
+
localPath: p.localPath,
|
|
41
46
|
})),
|
|
42
47
|
};
|
|
43
48
|
let res;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: replen
|
|
3
|
-
description:
|
|
3
|
+
description: Triage today's Replen matches for this repo — a verdict and effort estimate per candidate, grounded in your code. Invoke with `/replen` or "what's new from Replen?".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Replen Match — in-session candidate triage
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: replen-onboard
|
|
3
|
-
description: One-time
|
|
3
|
+
description: One-time Replen setup — profiles your active repos so matches are relevant, not generic. Runs autonomously in the background. Invoke with `/replen-onboard`.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Replen onboarding — autonomous, background, multi-repo setup
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "replen",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Make your AI coding tools smarter. One command, no API keys, free. Replen watches what your projects actually do and surfaces a few things worth bringing in each month. Use one as is, port a piece of another, cherry pick an idea, or build it clean room. The match happens inside your AI tool's session. A few actionable matches a month, by design.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|