@invisibleloop/pulse 0.20.53 → 0.20.55

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invisibleloop/pulse",
3
- "version": "0.20.53",
3
+ "version": "0.20.55",
4
4
  "type": "module",
5
5
  "description": "AI-first frontend framework. The spec is the source of truth.",
6
6
  "license": "MIT",
@@ -76,7 +76,7 @@
76
76
  "scripts": {
77
77
  "dev": "node --watch src/cli/dev.js",
78
78
  "build": "node scripts/build.js",
79
- "test": "node src/spec/schema.test.js && node src/runtime/runtime.test.js && node src/runtime/navigate.test.js && node src/runtime/morph.test.js && node src/runtime/ssr.test.js && node src/runtime/image.test.js && node src/server/server.test.js && node src/cli/cli.test.js && node src/cli/validate.test.js && node src/cli/diagnose.test.js && node src/cli/check-bundles.test.js && node src/cli/review.test.js && node src/cli/process-utils.test.js && node src/cli/stamp.test.js && node src/cli/feedback.test.js && node src/cli/update.test.js && node src/cli/dev-host.test.js && node src/ui/ui.test.js && node src/testing/testing.test.js && node src/store/store.test.js && node src/md/md.test.js && node scripts/strip-server.test.js && node scripts/css-purge.test.js && node src/mcp/mcp.test.js && node src/mcp/guards.test.js",
79
+ "test": "node src/spec/schema.test.js && node src/runtime/runtime.test.js && node src/runtime/navigate.test.js && node src/runtime/morph.test.js && node src/runtime/ssr.test.js && node src/runtime/image.test.js && node src/server/server.test.js && node src/cli/cli.test.js && node src/cli/validate.test.js && node src/cli/diagnose.test.js && node src/cli/check-bundles.test.js && node src/cli/review.test.js && node src/cli/process-utils.test.js && node src/cli/stamp.test.js && node src/cli/feedback.test.js && node src/cli/update.test.js && node src/cli/dev-host.test.js && node src/ui/ui.test.js && node src/testing/testing.test.js && node src/store/store.test.js && node src/md/md.test.js && node scripts/strip-server.test.js && node scripts/css-purge.test.js && node scripts/release-version.test.js && node src/mcp/mcp.test.js && node src/mcp/guards.test.js",
80
80
  "typecheck": "tsc --noEmit",
81
81
  "docs": "node --watch src/cli/dev.js --root ../../docs --port 4000",
82
82
  "docs:start": "node ../../docs/server.js"
@@ -1 +1 @@
1
- 0.20.53
1
+ 0.20.55
@@ -11,7 +11,7 @@
11
11
  * feat: → minor
12
12
  * anything else (fix, perf, chore, docs…) → patch
13
13
  *
14
- * Scoped to `-- packages/pulse`: this repo is a monorepo where sibling
14
+ * Scoped to this package's directory (root-anchored): this repo is a monorepo where sibling
15
15
  * packages could share the same git history — without the path filter, a
16
16
  * commit that only touches a sibling package would incorrectly drive a
17
17
  * version bump for the @invisibleloop/pulse framework package.
@@ -19,7 +19,7 @@
19
19
  * Usage: node scripts/release-version.js (run from packages/pulse/)
20
20
  */
21
21
 
22
- import { execSync } from 'child_process'
22
+ import { execFileSync } from 'child_process'
23
23
  import { readFileSync } from 'fs'
24
24
  import path from 'path'
25
25
 
@@ -28,12 +28,19 @@ const pkg = JSON.parse(readFileSync(path.join(PKG_DIR, 'package.json'), 'utf
28
28
  const [major, minor, patch] = pkg.version.split('.').map(Number)
29
29
 
30
30
  // Collect commit subjects since the last release commit that touched this
31
- // package. git log outputs newest-first; we stop at the first release
32
- // commit we see. Must be run with cwd inside the repo (any subdirectory) —
33
- // `-- packages/pulse` is resolved relative to the repo root by git itself.
31
+ // package. git log outputs newest-first; we stop at the first release commit we
32
+ // see.
33
+ //
34
+ // The path filter is anchored at the repository root (":(top)…"). A plain
35
+ // `-- packages/pulse` is resolved relative to the CURRENT DIRECTORY, and the release
36
+ // workflow runs this from packages/pulse — so it matched nothing, the log was always
37
+ // empty, and every release was a patch: feat: and breaking commits never bumped the
38
+ // minor/major version.
34
39
  let commits = []
35
40
  try {
36
- const log = execSync('git log --pretty=format:%s -- packages/pulse', { encoding: 'utf8' }).trim()
41
+ const top = execFileSync('git', ['rev-parse', '--show-toplevel'], { cwd: PKG_DIR, encoding: 'utf8' }).trim()
42
+ const rel = path.relative(top, PKG_DIR) || '.'
43
+ const log = execFileSync('git', ['log', '--pretty=format:%s', '--', `:(top)${rel}`], { cwd: PKG_DIR, encoding: 'utf8' }).trim()
37
44
  for (const line of log.split('\n')) {
38
45
  if (/^chore: release \d+\.\d+\.\d+/.test(line)) break
39
46
  if (line) commits.push(line)