projectstore-claude 0.29.0 → 0.29.2
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/README.md +1 -0
- package/node_modules/projectstore/.claude-plugin/marketplace.json +1 -1
- package/node_modules/projectstore/.claude-plugin/plugin.json +1 -1
- package/node_modules/projectstore/README.md +10 -2
- package/node_modules/projectstore/commands/review.md +1 -1
- package/node_modules/projectstore/harnesses/claude-code.json +17 -2
- package/node_modules/projectstore/harnesses/codex.json +20 -4
- package/node_modules/projectstore/hooks/pre-compact.mjs +2 -1
- package/node_modules/projectstore/hooks/session-rules.mjs +19 -7
- package/node_modules/projectstore/hooks/session-start.mjs +20 -18
- package/node_modules/projectstore/package.json +2 -2
- package/node_modules/projectstore/scripts/binding.mjs +3 -3
- package/node_modules/projectstore/scripts/build-adapters.mjs +43 -13
- package/node_modules/projectstore/scripts/cli.mjs +7 -4
- package/node_modules/projectstore/scripts/codemap.mjs +2 -2
- package/node_modules/projectstore/scripts/doctor.mjs +110 -58
- package/node_modules/projectstore/scripts/draft.mjs +4 -3
- package/node_modules/projectstore/scripts/graph.mjs +3 -2
- package/node_modules/projectstore/scripts/harness.mjs +89 -0
- package/node_modules/projectstore/scripts/install-harness.mjs +99 -16
- package/node_modules/projectstore/scripts/kanban.mjs +3 -2
- package/node_modules/projectstore/scripts/lib.mjs +81 -8
- package/node_modules/projectstore/scripts/mcp.mjs +2 -2
- package/node_modules/projectstore/scripts/portable-registration.mjs +6 -1
- package/node_modules/projectstore/scripts/query.mjs +2 -1
- package/node_modules/projectstore/scripts/reconcile.mjs +4 -3
- package/node_modules/projectstore/scripts/story-section.mjs +2 -1
- package/node_modules/projectstore/scripts/surfaces.mjs +2 -1
- package/node_modules/projectstore/scripts/term.mjs +3 -1
- package/node_modules/projectstore/scripts/touch-session.mjs +6 -1
- package/node_modules/projectstore/scripts/worktree.mjs +12 -7
- package/package.json +2 -2
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
import { dirname, resolve } from "node:path";
|
|
15
15
|
import { fileURLToPath } from "node:url";
|
|
16
|
-
import { projectRoot, readConfigAt, truncFront, PATH_CELL } from "./lib.mjs";
|
|
16
|
+
import { projectRoot, readConfigAt, truncFront, PATH_CELL, commandForm, inheritForm, bindInherits } from "./lib.mjs";
|
|
17
17
|
import { gitIn } from "./diff-refs.mjs";
|
|
18
18
|
|
|
19
19
|
// SessionStart is user-facing and budgets its gather in hundreds of
|
|
@@ -28,8 +28,10 @@ const trim = (s) => (typeof s === "string" ? s.trim() : null);
|
|
|
28
28
|
// Every branch returns every field. A caller reading a field that only exists on
|
|
29
29
|
// the happy path throws, and a hook swallows that into silence — which looks
|
|
30
30
|
// exactly like the mechanism deciding it had nothing to say.
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
// `layout` and `language` are the parent's: what a bind without an inherit
|
|
32
|
+
// path must name to write the parent's binding rather than bind's defaults.
|
|
33
|
+
function record(state, worktree, mainCheckout, vaultPath, parent = null) {
|
|
34
|
+
return { state, worktree, mainCheckout, vaultPath, layout: parent?.layout || null, language: parent?.language || null };
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
// The main checkout behind a linked worktree.
|
|
@@ -77,7 +79,7 @@ export function resolveBinding(projectDir = projectRoot()) {
|
|
|
77
79
|
const parent = readConfigAt(main);
|
|
78
80
|
if (!parent || !parent.vault_path) return record("unbound", true, main, null);
|
|
79
81
|
|
|
80
|
-
return record("inheritable", true, main, parent.vault_path);
|
|
82
|
+
return record("inheritable", true, main, parent.vault_path, parent);
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
// Pure: record in, block out. Both interpolated paths are user-controlled and
|
|
@@ -87,14 +89,17 @@ export function bindingOfferText(b) {
|
|
|
87
89
|
return [
|
|
88
90
|
"# projectstore — this worktree is not bound",
|
|
89
91
|
"",
|
|
90
|
-
|
|
92
|
+
`This checkout has no \`.projectstore/projectstore.json\`, so \`${commandForm("*")}\` commands`,
|
|
91
93
|
"cannot run here. The checkout it was forked from is bound:",
|
|
92
94
|
"",
|
|
93
95
|
`- main checkout: \`${truncFront(String(b.mainCheckout), PATH_CELL)}\``,
|
|
94
96
|
`- its vault: \`${truncFront(String(b.vaultPath), PATH_CELL)}\``,
|
|
95
97
|
"",
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
...(bindInherits()
|
|
99
|
+
? [`Run \`${inheritForm(b.vaultPath, { layout: b.layout, language: b.language })}\` to adopt that binding. It copies the binding`,
|
|
100
|
+
"only — the vault is shared and unchanged, and no session state travels with it."]
|
|
101
|
+
: [`Run \`${inheritForm(b.vaultPath, { layout: b.layout, language: b.language })}\` to bind this checkout to the same vault,`,
|
|
102
|
+
"layout and language — the vault is shared and unchanged, and no session state travels with it."]),
|
|
98
103
|
"",
|
|
99
104
|
"",
|
|
100
105
|
].join("\n");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projectstore-claude",
|
|
3
|
-
"version": "0.29.
|
|
3
|
+
"version": "0.29.2",
|
|
4
4
|
"description": "Installs projectstore for Claude Code from npm: the core pinned and bundled, the harness fixed — npx projectstore-claude install --project \"$PWD\".",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"projectstore",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"README.md"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"projectstore": "=0.29.
|
|
40
|
+
"projectstore": "=0.29.2"
|
|
41
41
|
},
|
|
42
42
|
"bundleDependencies": [
|
|
43
43
|
"projectstore"
|