@devrouter/cli 0.6.4 → 0.6.5

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.4" : "0.0.0-dev";
5595
+ const cliVersion = true ? "0.6.5" : "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.4" : "0.0.0-dev";
7982
+ return true ? "0.6.5" : "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.4" : "0.0.0-dev";
4947
+ const cliVersion = true ? "0.6.5" : "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.4" : "0.0.0-dev";
7269
+ return true ? "0.6.5" : "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);
@@ -25486,13 +25486,18 @@ async function collectRouterStatus(repoPath) {
25486
25486
  nextSteps.push(`Run: dev repo init --repo ${repo.path}`);
25487
25487
  } else if (repo && !repo.valid) {
25488
25488
  nextSteps.push("Fix .devrouter.yml validation errors and re-run `dev doctor --repo <path>`");
25489
- } else if (repo?.valid && repo.appCount === 0) {
25489
+ } else if (repo?.valid && repo.managedRuntime?.mode !== "managed" && repo.appCount === 0) {
25490
25490
  nextSteps.push(
25491
25491
  `Run: dev app add --name <name> --host <name>.localhost --protocol http --runtime host --repo ${repo.path}`
25492
25492
  );
25493
25493
  } else if (repo?.valid) {
25494
- nextSteps.push(`Run: dev app ls --repo ${repo.path}`);
25495
- nextSteps.push("Run: dev app run <name> --repo <path> --yes");
25494
+ if (repo.managedRuntime?.mode === "managed") {
25495
+ const repoArgument = `'${repo.path.replaceAll("'", `'\\''`)}'`;
25496
+ nextSteps.push(`Run: devrouter ensure ${repoArgument}`);
25497
+ } else {
25498
+ nextSteps.push(`Run: dev app ls --repo ${repo.path}`);
25499
+ nextSteps.push("Run: dev app run <name> --repo <path> --yes");
25500
+ }
25496
25501
  nextSteps.push("Run: dev ls");
25497
25502
  if (repo.managedRuntime?.mountNesting?.status === "unwound") {
25498
25503
  nextSteps.push(
@@ -25938,7 +25943,7 @@ function probeInstalledCliVersion(executable) {
25938
25943
  }
25939
25944
  function buildCliPathCheck(options = {}) {
25940
25945
  const id5 = "global.cli-path";
25941
- const runningVersion = options.runningVersion ?? (true ? "0.6.4" : "0.0.0-dev");
25946
+ const runningVersion = options.runningVersion ?? (true ? "0.6.5" : "0.0.0-dev");
25942
25947
  if (runningVersion === "0.0.0-dev") {
25943
25948
  return {
25944
25949
  id: id5,
@@ -26836,7 +26841,7 @@ async function buildDoctorReport(options = {}) {
26836
26841
  suggestion: `Remedy ${expansionNotice.remedy.code}: set a named default profile other than '${expansionNotice.profile}'${remedyCandidates}.`
26837
26842
  });
26838
26843
  }
26839
- const cliVersion = true ? "0.6.4" : "0.0.0-dev";
26844
+ const cliVersion = true ? "0.6.5" : "0.0.0-dev";
26840
26845
  const configVersion = config.devrouter?.version;
26841
26846
  const installedKnown = cliVersion !== "0.0.0-dev";
26842
26847
  const versionComparison = installedKnown && configVersion ? compareSemver(configVersion, cliVersion) : void 0;
@@ -42515,7 +42520,7 @@ var init_version = __esm({
42515
42520
 
42516
42521
  // src/cli.ts
42517
42522
  var import_commander = require("commander");
42518
- var CLI_VERSION = true ? "0.6.4" : "0.0.0-dev";
42523
+ var CLI_VERSION = true ? "0.6.5" : "0.0.0-dev";
42519
42524
  var VERSION_FLAGS = /* @__PURE__ */ new Set(["-V", "--version"]);
42520
42525
  function withErrorHandling(action2) {
42521
42526
  return async (...args) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrouter/cli",
3
- "version": "0.6.4",
3
+ "version": "0.6.5",
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,45 @@
1
+ # Upgrade to devrouter 0.6.5
2
+
3
+ Status and doctor now recommend `devrouter ensure <checkout>` for managed
4
+ repositories, including profiles with no routed apps. The command quotes the
5
+ exact checkout path. Legacy app guidance and existing unwound-mount diagnostics
6
+ remain. No configuration schema or provider/lifecycle contract changes.
7
+
8
+ ## Task
9
+
10
+ Within approved installation/adaptation scope, select the verified exact package,
11
+ update `devrouter.version` in `.devrouter.yml` and refresh existing agent guidance
12
+ with `devrouter repo agents`. Check every PATH-visible executable and known
13
+ wrapper, package/source invocation and harness/controller pin. Obtain participating
14
+ owners' actual executable/package identities; PATH inventory is not fleet proof.
15
+ Do not start a consumer to validate metadata or installation.
16
+
17
+ Before the first 0.6.5 lifecycle write, coordinate compatible qualified clients
18
+ sharing those journals, including readers and controllers. Older 0.6.4 refuses
19
+ newer-writer state, including direct reads, updates and global enumeration.
20
+ Unknown or competing client identities hold activation. Each receiving host
21
+ and consumer retains its own runtime/data authority and consumed attempt limits.
22
+ Installation and a release notice do not authorize activation.
23
+
24
+ Preserve journal bytes, writer stamps and durable initialization/replacement
25
+ receipts. Downgrading an older reader is not a recovery route after newer writes.
26
+ Use a compatible qualified CLI with fresh ownership proof for authorized recovery;
27
+ never erase or edit state to bypass refusal or rearm an attempt.
28
+
29
+ ## Validation
30
+
31
+ 1. Verify selected package integrity, executable bytes/version and existing local
32
+ guidance. Run native checks for the actual consumer edits.
33
+ 2. Use canonical exact-checkout ensure only under the receiving owner's separate
34
+ runtime authority. Diagnostic startup guidance is advice, not approval or proof
35
+ that all startup preconditions hold. Retain known refusals and unknown outcomes.
36
+ 3. Any separately authorized runtime work ends with canonical stop and exact
37
+ provider/container/route/worker proof, unless explicitly retained by the user.
38
+
39
+ ## Report
40
+
41
+ Report the exact selected package and executable identities, participating-client
42
+ adoption and remaining unknowns, relevant checks and any actual runtime terminal.
43
+ Keep release/package proof distinct from consumer recovery. This patch's
44
+ qualification does not add provider combinations, maintenance/reset support,
45
+ consumer data acceptance or permission for another runtime attempt.