pm-ops 2026.7.22 → 2026.7.25

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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.7.23 - 2026-07-23
4
+
5
+ ### Fixed
6
+
7
+ - Recommend pm merge reconcile (2026.7.22) over raw history-repair in Multi-agent merge safety docs ([ops-owhy](https://github.com/unbraind/pm-ops/blob/main/.agents/pm/issues/ops-owhy.toon))
8
+
9
+ ### Other
10
+
11
+ - Adopt pm field-aware merge driver for multi-agent branch-merge safety ([ops-3ype](https://github.com/unbraind/pm-ops/blob/main/.agents/pm/chores/ops-3ype.toon))
12
+
3
13
  ## 2026.7.19 - 2026-07-19
4
14
 
5
15
  ### Other
package/README.md CHANGED
@@ -295,6 +295,16 @@ MIT © unbrained
295
295
  This repo tracks its project management in `.agents/pm/` and ships a committed `.gitattributes`
296
296
  that maps those tracker artifacts to pm-cli's field-aware Git merge drivers, so concurrent-branch
297
297
  tracker edits merge cleanly instead of hard-conflicting. The driver **definitions** live in
298
- per-clone Git config; `npm install` / `npm ci` wires them automatically via the `prepare` script
299
- (guarded — it runs `pm merge install` only when the `pm` CLI is on `PATH`, and no-ops cleanly otherwise so production / `--omit=dev` installs are not broken). To (re)run manually: `npm run merge:install`. After merging a branch that
300
- touched `.agents/pm/`, run `pm history-repair --all` to reconcile history verification.
298
+ per-clone Git config; `npm install` / `npm ci` wires them automatically via the `prepare` script (a portable Node guard, `scripts/prepare-merge-driver.mjs`: it runs
299
+ `pm merge install` only when the `pm` CLI is on `PATH`, and no-ops cleanly otherwise so
300
+ production / `--omit=dev` installs are not broken; being Node-based it behaves identically
301
+ on POSIX shells and Windows `cmd.exe`). To (re)run manually: `npm run merge:install`.
302
+
303
+ After merging a branch that touched `.agents/pm/`, reconcile any residual history-hash drift with
304
+ **`pm merge reconcile`** (pm-cli ≥ 2026.7.22): preview with `pm merge reconcile --dry-run`, apply with
305
+ `pm merge reconcile --message "post-merge reconcile"`, then confirm with `pm validate`, which scans the
306
+ whole tracker and flags remaining history drift across **every** affected item (`pm merge reconcile`
307
+ itself lists each affected stream in its output; `pm history --verify <id>` spot-checks one item). The field-aware driver already unions every author's
308
+ content, so `reconcile` only re-greens the hash chain (no data loss) — see the authoritative
309
+ [pm-cli merge-safety guide](https://github.com/unbraind/pm-cli/blob/main/docs/MERGE_SAFETY.md). The
310
+ older blunt `pm history-repair --all` remains available as a lower-level primitive.
package/dist/index.js CHANGED
@@ -1521,7 +1521,7 @@ function emitResult(structured, format, outputPath, formatter) {
1521
1521
  // ---------------------------------------------------------------------------
1522
1522
  export default defineExtension({
1523
1523
  name: "pm-ops",
1524
- version: "2026.7.22",
1524
+ version: "2026.7.25",
1525
1525
  activate(api) {
1526
1526
  if (typeof api.registerRenderer === "function") {
1527
1527
  api.registerRenderer("toon", renderCommandResult);
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-ops",
3
- "version": "2026.7.22",
3
+ "version": "2026.7.25",
4
4
  "description": "Multi-repo fleet operations for pm-cli",
5
5
  "author": "@unbraind",
6
6
  "entry": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-ops",
3
- "version": "2026.7.22",
3
+ "version": "2026.7.25",
4
4
  "description": "Multi-repo fleet operations for pm-cli",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,13 +28,13 @@
28
28
  "check": "npm run typecheck",
29
29
  "audit:prod": "node --input-type=module -e \"import { spawnSync } from 'node:child_process'; import { devNull } from 'node:os'; const env = { ...process.env, npm_config_userconfig: devNull, NPM_CONFIG_USERCONFIG: devNull }; for (const key of Object.keys(env)) if (key.toLowerCase() === 'npm_config_allow_scripts') delete env[key]; const cmd = process.platform === 'win32' ? 'npm.cmd' : 'npm'; const r = spawnSync(cmd, ['audit', '--omit=dev'], { stdio: 'inherit', env }); process.exit(r.status ?? 1);\"",
30
30
  "pack:dry-run": "npm pack --dry-run",
31
- "changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-ops/blob/main/.agents/pm",
32
- "changelog:full": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-ops/blob/main/.agents/pm",
33
- "changelog:check": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-ops/blob/main/.agents/pm --check",
31
+ "changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-ops/blob/main/.agents/pm --respect-item-release",
32
+ "changelog:full": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-ops/blob/main/.agents/pm --respect-item-release",
33
+ "changelog:check": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-ops/blob/main/.agents/pm --respect-item-release --check",
34
34
  "release:check": "npm run typecheck && npm run build && npm test && npm run audit:prod && npm run pack:dry-run && npm run changelog:check",
35
35
  "prepublishOnly": "npm run release:check",
36
- "release:notes": "pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-ops/blob/main/.agents/pm --pm-bin ./node_modules/.bin/pm --github-step-summary",
37
- "prepare": "if command -v pm >/dev/null 2>&1; then pm merge install; fi",
36
+ "release:notes": "pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-ops/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --github-step-summary",
37
+ "prepare": "node scripts/prepare-merge-driver.mjs",
38
38
  "merge:install": "pm merge install"
39
39
  },
40
40
  "peerDependencies": {
@@ -42,8 +42,8 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/node": "26.1.1",
45
- "@unbrained/pm-cli": "^2026.7.21",
46
- "pm-changelog": "2026.7.18",
45
+ "@unbrained/pm-cli": "^2026.7.22",
46
+ "pm-changelog": "^2026.7.24",
47
47
  "typescript": "7.0.2"
48
48
  },
49
49
  "keywords": [