@inixiative/config 0.5.66 → 0.5.67

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 CHANGED
@@ -79,7 +79,7 @@ bunx @inixiative/config ports [project]
79
79
 
80
80
  `train` is the release cascade, run from a git checkout of this repo; it refuses to train from a copy that isn't one (a bunx or npm cache). One train at a time per machine: it takes one machine-wide lock, `~/.inixiative/train.lock`, shared by every clone, worktree and lane, and refuses to start while another train holds it, naming the holder and the lock path. The lock is created atomically and records the holder's pid, hostname and process start time. A lock is stale, and taken over, when its process is gone, its pid now belongs to a different process, or the file can't be parsed. A lock from another host is never judged stale; if its train is truly gone, delete the file. The lock is released on exit and on SIGINT, SIGTERM or SIGHUP. `--dry-run` takes no lock. It walks every lane in order (primitives, then agentic), or only the lane `--lane` names. Origin is the truth: it refuses to run from a config checkout behind origin, and it fast-forwards clean checkouts to origin before working (dirty or diverged repos still skip). It only ships the default branch: a checkout on a feature branch is skipped whole — never re-locked, committed to, or published from.
81
81
 
82
- Lanes stand alone. A lane with a package missing a checkout, or claimed by ambiguous checkouts, does not run; a lane whose check, commit or publish fails stops there and leaves its BOM entries as they were. Neither holds back the other lane. Within a lane it walks checkouts in dependency order; per checkout it: bumps ecosystem ranges to the blessed sets → re-locks → runs the repo's `check` → commits only its own changes (`package.json` files + `bun.lock`) → publishes each lane package whose local version is ahead of npm, in dependency order, and waits until the registry serves it (up to 15 minutes, since npm holds new versions for processing) → records it in its lane's section of the BOM. A root package publishes with `npm publish`; a workspace member is packed with `bun pm pack`, which rewrites `workspace:` ranges to the versions being released, and the tarball is published with `npm publish`, so OTP prompts pass through either way. A package already on npm at its local version but not yet blessed — published by hand, or by a train whose lane later failed — is blessed on the next run.
82
+ Lanes stand alone. A lane with a package missing a checkout, or claimed by ambiguous checkouts, does not run; a lane whose check, commit or publish fails stops there and leaves its BOM entries as they were. Neither holds back the other lane. Within a lane it walks checkouts in dependency order; per checkout it: bumps ecosystem ranges to the blessed sets → re-locks → runs the repo's `check` → commits only its own changes (`package.json` files + `bun.lock`) → publishes each lane package whose local version is ahead of npm, in dependency order, and waits until the registry serves it (up to 15 minutes, since npm holds new versions for processing) → records it in its lane's section of the BOM. A root package publishes with `npm publish`; a workspace member is packed with `bun pm pack`, which rewrites `workspace:` ranges to the versions being released, and the tarball is published with `npm publish`, so OTP prompts pass through either way. A package already on npm at its local version but not yet blessed — published by hand, or by a train whose lane later failed — is blessed on the next run. Likewise, an `@inixiative/config` version committed ahead of npm (a release whose publish failed) is published by the next run, even when it blesses nothing new.
83
83
 
84
84
  Consumers run once, after every selected lane, upstreams first, against the full blessed set: a consumer of both lanes ends coherent with both whichever lane ran. They get the same bump → re-lock → `check`, never a publish, and their changes go through review: the train commits them on a `train/ecosystem-sync-<date>` branch and leaves the checkout there until it is merged.
85
85
 
package/dist/cli.js CHANGED
@@ -1484,8 +1484,9 @@ if (command === "train") {
1484
1484
  blessed: ${blessed.length === 0 ? "nothing" : blessed.join(", ")}`);
1485
1485
  if (skipped.length > 0) console.log(`skipped: ${skipped.join(", ")}`);
1486
1486
  if (failed.length > 0) console.log(`failed: ${failed.join(", ")}`);
1487
- if (bomDirty) {
1488
- const remoteVersion = npmLatest("@inixiative/config");
1487
+ const remoteVersion = npmLatest("@inixiative/config");
1488
+ const unpublished = remoteVersion !== null && compare(ownVersion(), remoteVersion) > 0;
1489
+ if (bomDirty || unpublished) {
1489
1490
  let version = ownVersion();
1490
1491
  if (remoteVersion !== null && compare(version, remoteVersion) <= 0) {
1491
1492
  version = bumpPatch(remoteVersion);
@@ -1526,6 +1527,8 @@ blessed: ${blessed.length === 0 ? "nothing" : blessed.join(", ")}`);
1526
1527
  spawnSync2("git", ["add", "--", "package.json", "versions.json", "test/fixtures"], {
1527
1528
  cwd: packageRoot
1528
1529
  });
1530
+ if (spawnSync2("git", ["diff", "--cached", "--quiet"], { cwd: packageRoot }).status === 0)
1531
+ return;
1529
1532
  const commit = spawnSync2(
1530
1533
  "git",
1531
1534
  ["commit", "-m", `chore: bless ${blessed.join(", ")} \u2014 ${version}`],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inixiative/config",
3
- "version": "0.5.66",
3
+ "version": "0.5.67",
4
4
  "description": "Shared toolchain for the inixiative ecosystem: tsconfig/biome/tsup presets, a version manifest (BOM), and a sync/check CLI",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/versions.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "@types/bun"
14
14
  ],
15
15
  "ecosystem": {
16
- "@inixiative/config": "0.5.66",
16
+ "@inixiative/config": "0.5.67",
17
17
  "@inixiative/json-rules": "3.5.1",
18
18
  "@inixiative/permissions": "0.4.0",
19
19
  "@inixiative/transitions": "0.5.0",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "agentic": {
26
26
  "@inixiative/signet": "0.3.0",
27
- "@inixiative/archive": "0.11.1",
27
+ "@inixiative/archive": "0.12.1",
28
28
  "@inixiative/agent-session": "0.5.2",
29
29
  "@inixiative/foundry-core": "0.4.0",
30
30
  "@inixiative/foundry": "0.4.0"