@devrouter/cli 0.6.6 → 0.6.7

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.
@@ -5592,7 +5592,7 @@ function loadRepoConfig(repoPath, read2 = (file) => import_node_fs16.default.rea
5592
5592
  const config = parseRepoConfigSource(raw, configPath);
5593
5593
  const requiredVersion = config.devrouter?.version;
5594
5594
  if (requiredVersion && !hasWarnedVersionMismatch) {
5595
- const cliVersion = true ? "0.6.6" : "0.0.0-dev";
5595
+ const cliVersion = true ? "0.6.7" : "0.0.0-dev";
5596
5596
  if (cliVersion !== "0.0.0-dev" && compareSemver2(requiredVersion, cliVersion) > 0) {
5597
5597
  hasWarnedVersionMismatch = true;
5598
5598
  process.stderr.write(
@@ -7979,7 +7979,7 @@ function advanceAppReplacementAttempt(identity2, authority, stage, newPrimaryId)
7979
7979
  });
7980
7980
  }
7981
7981
  function installedCliVersion() {
7982
- return true ? "0.6.6" : "0.0.0-dev";
7982
+ return true ? "0.6.7" : "0.0.0-dev";
7983
7983
  }
7984
7984
  function compareCliVersions(left, right) {
7985
7985
  const parts = (value) => value.split(".").map((part) => Number.parseInt(part, 10) || 0);
package/dist/devrouter.js CHANGED
@@ -4944,7 +4944,7 @@ function loadRepoConfig(repoPath, read2 = (file) => import_node_fs8.default.read
4944
4944
  const config = parseRepoConfigSource(raw, configPath);
4945
4945
  const requiredVersion = config.devrouter?.version;
4946
4946
  if (requiredVersion && !hasWarnedVersionMismatch) {
4947
- const cliVersion = true ? "0.6.6" : "0.0.0-dev";
4947
+ const cliVersion = true ? "0.6.7" : "0.0.0-dev";
4948
4948
  if (cliVersion !== "0.0.0-dev" && compareSemver(requiredVersion, cliVersion) > 0) {
4949
4949
  hasWarnedVersionMismatch = true;
4950
4950
  process.stderr.write(
@@ -7266,7 +7266,7 @@ function validateAppReplacementAttempt(value, identity2) {
7266
7266
  return attempt;
7267
7267
  }
7268
7268
  function installedCliVersion() {
7269
- return true ? "0.6.6" : "0.0.0-dev";
7269
+ return true ? "0.6.7" : "0.0.0-dev";
7270
7270
  }
7271
7271
  function compareCliVersions(left, right) {
7272
7272
  const parts = (value) => value.split(".").map((part) => Number.parseInt(part, 10) || 0);
@@ -25492,14 +25492,17 @@ async function collectRouterStatus(repoPath) {
25492
25492
  );
25493
25493
  } else if (repo?.valid) {
25494
25494
  const repoArgument = `'${repo.path.replaceAll("'", `'\\''`)}'`;
25495
+ const failedTransition = repo.managedRuntime?.status === "failed-transition";
25495
25496
  if (repo.managedRuntime?.mode === "managed") {
25496
- nextSteps.push(`Run: devrouter ensure ${repoArgument}`);
25497
+ nextSteps.push(
25498
+ failedTransition ? `Inspect: devrouter status --repo ${repoArgument}; resolve the reported drift before retrying ensure.` : `Run: devrouter ensure ${repoArgument}`
25499
+ );
25497
25500
  } else {
25498
25501
  nextSteps.push(`Run: dev app ls --repo ${repo.path}`);
25499
25502
  nextSteps.push("Run: dev app run <name> --repo <path> --yes");
25500
25503
  }
25501
25504
  nextSteps.push("Run: dev ls");
25502
- if (repo.managedRuntime?.mountNesting?.status === "unwound") {
25505
+ if (!failedTransition && repo.managedRuntime?.mountNesting?.status === "unwound") {
25503
25506
  nextSteps.push(
25504
25507
  `Run: devrouter stop ${repoArgument} and then devrouter ensure ${repoArgument} to re-apply the unwound nested mount`
25505
25508
  );
@@ -25943,7 +25946,7 @@ function probeInstalledCliVersion(executable) {
25943
25946
  }
25944
25947
  function buildCliPathCheck(options = {}) {
25945
25948
  const id5 = "global.cli-path";
25946
- const runningVersion = options.runningVersion ?? (true ? "0.6.6" : "0.0.0-dev");
25949
+ const runningVersion = options.runningVersion ?? (true ? "0.6.7" : "0.0.0-dev");
25947
25950
  if (runningVersion === "0.0.0-dev") {
25948
25951
  return {
25949
25952
  id: id5,
@@ -26797,7 +26800,7 @@ async function buildDoctorReport(options = {}) {
26797
26800
  (entry) => `unwound=${entry.destination} (source ${entry.source} inside ${entry.nestedWithin})`
26798
26801
  )
26799
26802
  ].join("; "),
26800
- suggestion: `Run: devrouter stop ${repoArgument} and then devrouter ensure ${repoArgument}${variantOption} to restart the exact container, which re-applies the nested mount.`
26803
+ suggestion: managedRuntime.status === "failed-transition" ? void 0 : `Run: devrouter stop ${repoArgument} and then devrouter ensure ${repoArgument}${variantOption} to restart the exact container, which re-applies the nested mount.`
26801
26804
  });
26802
26805
  } else if (mountNesting.status === "unverified") {
26803
26806
  addCheck(checks, {
@@ -26842,7 +26845,7 @@ async function buildDoctorReport(options = {}) {
26842
26845
  suggestion: `Remedy ${expansionNotice.remedy.code}: set a named default profile other than '${expansionNotice.profile}'${remedyCandidates}.`
26843
26846
  });
26844
26847
  }
26845
- const cliVersion = true ? "0.6.6" : "0.0.0-dev";
26848
+ const cliVersion = true ? "0.6.7" : "0.0.0-dev";
26846
26849
  const configVersion = config.devrouter?.version;
26847
26850
  const installedKnown = cliVersion !== "0.0.0-dev";
26848
26851
  const versionComparison = installedKnown && configVersion ? compareSemver(configVersion, cliVersion) : void 0;
@@ -42521,7 +42524,7 @@ var init_version = __esm({
42521
42524
 
42522
42525
  // src/cli.ts
42523
42526
  var import_commander = require("commander");
42524
- var CLI_VERSION = true ? "0.6.6" : "0.0.0-dev";
42527
+ var CLI_VERSION = true ? "0.6.7" : "0.0.0-dev";
42525
42528
  var VERSION_FLAGS = /* @__PURE__ */ new Set(["-V", "--version"]);
42526
42529
  function withErrorHandling(action2) {
42527
42530
  return async (...args) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrouter/cli",
3
- "version": "0.6.6",
3
+ "version": "0.6.7",
4
4
  "description": "Local dev routing CLI with shared Traefik reverse proxy",
5
5
  "author": "Roland Schlaefli",
6
6
  "homepage": "https://github.com/rschlaefli/devrouter#readme",
@@ -0,0 +1,48 @@
1
+ # Upgrade to devrouter 0.6.7
2
+
3
+ Status and doctor keep failed-transition recovery advice consistent, including
4
+ combined status insights and unwound-mount diagnostics. Inspect the exact checkout
5
+ and resolve the reported transition before retrying ensure; the warning is not
6
+ permission to stop/restart an unproved population. Existing readiness, startup,
7
+ repair, ownership, levels and literal checkout argument rules remain.
8
+ No configuration schema or lifecycle contract changes are introduced.
9
+
10
+ ## Task
11
+
12
+ Within approved installation/adaptation scope, select the integrity-verified exact
13
+ package, update `devrouter.version` in `.devrouter.yml` and refresh existing agent
14
+ guidance through `devrouter repo agents`. Verify the actual selected executable,
15
+ PATH copies and participating package/source/harness/controller pins. Ask each
16
+ participating owner which executable can access this host's Devrouter state;
17
+ PATH inventory alone does not prove coordinated adoption.
18
+
19
+ Before the first 0.6.7 lifecycle write, active participating clients must use a
20
+ compatible qualified reader/writer. Older 0.6.6 refuses its newer-writer journals
21
+ through direct read, update and global enumeration even without a schema change.
22
+ Inactive older pins stay unused until compatible adoption is verified. Unknown
23
+ participation holds activation. Do not use an older reader as a downgrade recovery
24
+ route after new writes. Preserve all journal bytes, writer stamps and durable
25
+ initialization/replacement receipts; never erase state or loosen version/hash
26
+ fences to bypass refusal or rearm a consumed attempt.
27
+
28
+ Installation and release notices supply no consumer startup, repair, replacement,
29
+ initialization, reset or extra-attempt authority. Each owner retains exact runtime,
30
+ data and neighbour limits. Failed-transition inspection is a diagnostic action;
31
+ it does not prove application readiness or prescribe an automatic retry.
32
+
33
+ ## Validation
34
+
35
+ 1. Verify registry integrity, selected package/member bytes, executable version
36
+ and the existing local guidance. Run native checks for actual consumer edits.
37
+ 2. Use `devrouter status --repo <checkout> --json` and existing diagnostic results
38
+ for authorized inspection. Compare the actual obstruction and next-action
39
+ preconditions before any separately authorized lifecycle command.
40
+ 3. Any separately authorized runtime work ends with canonical stop and exact
41
+ provider/container/route/worker proof unless the user keeps it running.
42
+
43
+ ## Report
44
+
45
+ Report exact selected package/executable identities, participating-client adoption,
46
+ remaining unknowns and relevant checks. Record any actual runtime terminal with
47
+ its producing evidence. Package proof does not establish receiving-host adoption,
48
+ consumer recovery, broader guidance parity or retained-maintenance acceptance.