@devrouter/cli 0.5.1 → 0.5.2

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.
@@ -5383,7 +5383,7 @@ function retain(session, previous) {
5383
5383
 
5384
5384
  // src/core/reliability-operation-store.ts
5385
5385
  function installedCliVersion() {
5386
- return true ? "0.5.1" : "0.0.0-dev";
5386
+ return true ? "0.5.2" : "0.0.0-dev";
5387
5387
  }
5388
5388
  function compareCliVersions(left, right) {
5389
5389
  const parts = (value) => value.split(".").map((part) => Number.parseInt(part, 10) || 0);
@@ -7393,7 +7393,7 @@ function loadRepoConfig(repoPath, read2 = (file) => import_node_fs19.default.rea
7393
7393
  const config = parseConfig(parsed ?? {}, configPath);
7394
7394
  const requiredVersion = config.devrouter?.version;
7395
7395
  if (requiredVersion && !hasWarnedVersionMismatch) {
7396
- const cliVersion = true ? "0.5.1" : "0.0.0-dev";
7396
+ const cliVersion = true ? "0.5.2" : "0.0.0-dev";
7397
7397
  if (cliVersion !== "0.0.0-dev" && compareSemver2(requiredVersion, cliVersion) > 0) {
7398
7398
  hasWarnedVersionMismatch = true;
7399
7399
  process.stderr.write(
package/dist/devrouter.js CHANGED
@@ -4774,7 +4774,7 @@ function loadRepoConfig(repoPath, read2 = (file) => import_node_fs8.default.read
4774
4774
  const config = parseConfig(parsed ?? {}, configPath);
4775
4775
  const requiredVersion = config.devrouter?.version;
4776
4776
  if (requiredVersion && !hasWarnedVersionMismatch) {
4777
- const cliVersion = true ? "0.5.1" : "0.0.0-dev";
4777
+ const cliVersion = true ? "0.5.2" : "0.0.0-dev";
4778
4778
  if (cliVersion !== "0.0.0-dev" && compareSemver(requiredVersion, cliVersion) > 0) {
4779
4779
  hasWarnedVersionMismatch = true;
4780
4780
  process.stderr.write(
@@ -6773,7 +6773,7 @@ var init_reliability_contract = __esm({
6773
6773
 
6774
6774
  // src/core/reliability-operation-store.ts
6775
6775
  function installedCliVersion() {
6776
- return true ? "0.5.1" : "0.0.0-dev";
6776
+ return true ? "0.5.2" : "0.0.0-dev";
6777
6777
  }
6778
6778
  function compareCliVersions(left, right) {
6779
6779
  const parts = (value) => value.split(".").map((part) => Number.parseInt(part, 10) || 0);
@@ -15530,6 +15530,12 @@ var init_reliability_model = __esm({
15530
15530
  function isLifecycleProgressPhase(value) {
15531
15531
  return typeof value === "string" && Object.hasOwn(ROLES, value);
15532
15532
  }
15533
+ function muteLifecycleProgressHeartbeat() {
15534
+ heartbeatMuted = true;
15535
+ }
15536
+ function lifecycleProgressHeartbeatMuted() {
15537
+ return heartbeatMuted;
15538
+ }
15533
15539
  function lifecycleProgressSnapshot(phase, receivedAt, now) {
15534
15540
  const elapsedMs = receivedAt === void 0 ? null : Math.max(0, Math.floor(now - receivedAt));
15535
15541
  return {
@@ -15541,7 +15547,7 @@ function lifecycleProgressSnapshot(phase, receivedAt, now) {
15541
15547
  liveness: "unknown"
15542
15548
  };
15543
15549
  }
15544
- var ROLES;
15550
+ var ROLES, heartbeatMuted;
15545
15551
  var init_lifecycle_progress = __esm({
15546
15552
  "src/core/lifecycle-progress.ts"() {
15547
15553
  "use strict";
@@ -15559,6 +15565,7 @@ var init_lifecycle_progress = __esm({
15559
15565
  rollback: "lifecycle-worker",
15560
15566
  stop: "lifecycle-stop"
15561
15567
  };
15568
+ heartbeatMuted = false;
15562
15569
  }
15563
15570
  });
15564
15571
 
@@ -15620,7 +15627,7 @@ async function runLifecycleWorker(request2, supervision, beforeAdmission) {
15620
15627
  let progressReceivedAt;
15621
15628
  let progressTimer;
15622
15629
  const emitProgress = () => {
15623
- if (closed || cancelled || request2.kind === "exec") return;
15630
+ if (closed || cancelled || request2.kind === "exec" || lifecycleProgressHeartbeatMuted()) return;
15624
15631
  const data = `${JSON.stringify(lifecycleProgressSnapshot(progressPhase, progressReceivedAt, performance.now()))}
15625
15632
  `;
15626
15633
  try {
@@ -24479,7 +24486,7 @@ function probeInstalledCliVersion(executable) {
24479
24486
  }
24480
24487
  function buildCliPathCheck(options = {}) {
24481
24488
  const id5 = "global.cli-path";
24482
- const runningVersion = options.runningVersion ?? (true ? "0.5.1" : "0.0.0-dev");
24489
+ const runningVersion = options.runningVersion ?? (true ? "0.5.2" : "0.0.0-dev");
24483
24490
  if (runningVersion === "0.0.0-dev") {
24484
24491
  return {
24485
24492
  id: id5,
@@ -25375,7 +25382,7 @@ async function buildDoctorReport(options = {}) {
25375
25382
  suggestion: `Remedy ${expansionNotice.remedy.code}: set a named default profile other than '${expansionNotice.profile}'${remedyCandidates}.`
25376
25383
  });
25377
25384
  }
25378
- const cliVersion = true ? "0.5.1" : "0.0.0-dev";
25385
+ const cliVersion = true ? "0.5.2" : "0.0.0-dev";
25379
25386
  const configVersion = config.devrouter?.version;
25380
25387
  const installedKnown = cliVersion !== "0.0.0-dev";
25381
25388
  const versionComparison = installedKnown && configVersion ? compareSemver(configVersion, cliVersion) : void 0;
@@ -33775,6 +33782,7 @@ async function runWorkspaceIdleCommand(options) {
33775
33782
  let stops = [];
33776
33783
  if (options.stop) {
33777
33784
  const paths = idleSweepPaths();
33785
+ if (!process.stderr.isTTY) muteLifecycleProgressHeartbeat();
33778
33786
  import_node_fs61.default.mkdirSync(paths.directory, { recursive: true, mode: 448 });
33779
33787
  const result = await withFileLock(paths.lock, { activity: "idle sweep" }, async () => {
33780
33788
  try {
@@ -33983,6 +33991,7 @@ var init_workspace2 = __esm({
33983
33991
  init_docker_leftovers();
33984
33992
  init_file_lock();
33985
33993
  init_idle_sweep();
33994
+ init_lifecycle_progress();
33986
33995
  init_output();
33987
33996
  init_reliability_lifecycle();
33988
33997
  init_repo_config();
@@ -34036,7 +34045,7 @@ var init_version = __esm({
34036
34045
 
34037
34046
  // src/cli.ts
34038
34047
  var import_commander = require("commander");
34039
- var CLI_VERSION = true ? "0.5.1" : "0.0.0-dev";
34048
+ var CLI_VERSION = true ? "0.5.2" : "0.0.0-dev";
34040
34049
  var VERSION_FLAGS = /* @__PURE__ */ new Set(["-V", "--version"]);
34041
34050
  function withErrorHandling(action2) {
34042
34051
  return async (...args) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrouter/cli",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
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,25 @@
1
+ # Upgrade to devrouter 0.5.2
2
+
3
+ This patch release keeps the idle-stop agent's `sweep.log` readable.
4
+ `workspace idle --stop` no longer writes a lifecycle progress line every ten
5
+ seconds of each stop when its stderr is not a terminal, as under launchd, so
6
+ the log records only stop outcomes and errors. An interactive sweep still shows
7
+ progress. There is no configuration change and no migration.
8
+
9
+ ## Task
10
+
11
+ Install the published 0.5.2 CLI. No repository change is needed. Bump a
12
+ repository's `devrouter.version` to 0.5.2 only when consumer source changes are
13
+ authorized. A machine that uses the idle-stop agent needs no setup rerun when
14
+ devrouter is installed through Volta, because the agent's entry path does not
15
+ change between versions.
16
+
17
+ ## Validation
18
+
19
+ 1. Run `devrouter -V` from the consumer checkout.
20
+ 2. Run `devrouter workspace idle --json` and confirm it completes.
21
+
22
+ ## Report
23
+
24
+ Report the release revision and the resolved executable with its installed
25
+ version.