@devrouter/cli 0.0.53 → 0.0.55
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/dist/devrouter.js +38 -18
- package/package.json +1 -1
- package/upgrade-prompts/0.0.54.md +26 -0
- package/upgrade-prompts/0.0.55.md +23 -0
package/dist/devrouter.js
CHANGED
|
@@ -2693,7 +2693,7 @@ function loadRepoConfig(repoPath) {
|
|
|
2693
2693
|
const config = parseConfig(parsed ?? {}, configPath);
|
|
2694
2694
|
const requiredVersion = config.devrouter?.version;
|
|
2695
2695
|
if (requiredVersion && !hasWarnedVersionMismatch) {
|
|
2696
|
-
const cliVersion = true ? "0.0.
|
|
2696
|
+
const cliVersion = true ? "0.0.55" : "0.0.0-dev";
|
|
2697
2697
|
if (cliVersion !== "0.0.0-dev" && compareSemver(requiredVersion, cliVersion) > 0) {
|
|
2698
2698
|
hasWarnedVersionMismatch = true;
|
|
2699
2699
|
process.stderr.write(
|
|
@@ -5746,25 +5746,40 @@ function assertManagedContainerConfigUnchanged(options) {
|
|
|
5746
5746
|
const fileArgs = configFiles.flatMap((file) => ["-f", file]);
|
|
5747
5747
|
const result = (() => {
|
|
5748
5748
|
try {
|
|
5749
|
-
|
|
5749
|
+
const composeArgs = [
|
|
5750
|
+
"compose",
|
|
5751
|
+
"--project-name",
|
|
5752
|
+
composeProject,
|
|
5753
|
+
"--project-directory",
|
|
5754
|
+
workingDirectory
|
|
5755
|
+
];
|
|
5756
|
+
const env = managedComposeEnvironment(options.workspace);
|
|
5757
|
+
const rendered = (0, import_node_child_process7.spawnSync)(
|
|
5750
5758
|
"docker",
|
|
5751
|
-
[
|
|
5752
|
-
"compose",
|
|
5753
|
-
"--project-name",
|
|
5754
|
-
composeProject,
|
|
5755
|
-
"--project-directory",
|
|
5756
|
-
workingDirectory,
|
|
5757
|
-
...fileArgs,
|
|
5758
|
-
"config",
|
|
5759
|
-
"--hash",
|
|
5760
|
-
service
|
|
5761
|
-
],
|
|
5759
|
+
[...composeArgs, ...fileArgs, "config", "--format", "json"],
|
|
5762
5760
|
{
|
|
5763
5761
|
cwd: workingDirectory,
|
|
5764
5762
|
encoding: "utf-8",
|
|
5765
|
-
env
|
|
5763
|
+
env,
|
|
5766
5764
|
stdio: ["ignore", "pipe", "ignore"],
|
|
5767
|
-
timeout: COMPOSE_HASH_TIMEOUT_MS
|
|
5765
|
+
timeout: COMPOSE_HASH_TIMEOUT_MS,
|
|
5766
|
+
maxBuffer: 1024 * 1024
|
|
5767
|
+
}
|
|
5768
|
+
);
|
|
5769
|
+
if (rendered.status !== 0 || rendered.error || !rendered.stdout?.trim()) {
|
|
5770
|
+
throw new Error("Compose configuration rendering failed.");
|
|
5771
|
+
}
|
|
5772
|
+
return (0, import_node_child_process7.spawnSync)(
|
|
5773
|
+
"docker",
|
|
5774
|
+
[...composeArgs, "-f", "-", "config", "--no-interpolate", "--hash", service],
|
|
5775
|
+
{
|
|
5776
|
+
cwd: workingDirectory,
|
|
5777
|
+
encoding: "utf-8",
|
|
5778
|
+
env,
|
|
5779
|
+
input: rendered.stdout,
|
|
5780
|
+
stdio: ["pipe", "pipe", "ignore"],
|
|
5781
|
+
timeout: COMPOSE_HASH_TIMEOUT_MS,
|
|
5782
|
+
maxBuffer: 1024 * 1024
|
|
5768
5783
|
}
|
|
5769
5784
|
);
|
|
5770
5785
|
} catch {
|
|
@@ -8337,7 +8352,12 @@ function sameSet(left, right) {
|
|
|
8337
8352
|
return JSON.stringify([...left].sort()) === JSON.stringify([...right].sort());
|
|
8338
8353
|
}
|
|
8339
8354
|
function containerIdentity(container) {
|
|
8340
|
-
return JSON.stringify({
|
|
8355
|
+
return JSON.stringify({
|
|
8356
|
+
id: container.id,
|
|
8357
|
+
labels: container.labels,
|
|
8358
|
+
// Docker does not preserve mount-array order between inspections.
|
|
8359
|
+
mounts: container.mounts.map((mount) => JSON.stringify(mount)).sort()
|
|
8360
|
+
});
|
|
8341
8361
|
}
|
|
8342
8362
|
function stopRetainedManagedDevsyWorkspace(options) {
|
|
8343
8363
|
const { repoPath, devsyId } = options;
|
|
@@ -9585,7 +9605,7 @@ async function buildDoctorReport(options = {}) {
|
|
|
9585
9605
|
const config = runtimeConfig.config;
|
|
9586
9606
|
loadedConfig = config;
|
|
9587
9607
|
loadedWorkspace = runtimeConfig.workspace;
|
|
9588
|
-
const cliVersion = true ? "0.0.
|
|
9608
|
+
const cliVersion = true ? "0.0.55" : "0.0.0-dev";
|
|
9589
9609
|
const configVersion = config.devrouter?.version;
|
|
9590
9610
|
if (configVersion && cliVersion !== "0.0.0-dev" && compareSemver(configVersion, cliVersion) > 0) {
|
|
9591
9611
|
addCheck(checks, {
|
|
@@ -16858,7 +16878,7 @@ var init_version = __esm({
|
|
|
16858
16878
|
|
|
16859
16879
|
// src/cli.ts
|
|
16860
16880
|
var import_commander = require("commander");
|
|
16861
|
-
var CLI_VERSION = true ? "0.0.
|
|
16881
|
+
var CLI_VERSION = true ? "0.0.55" : "0.0.0-dev";
|
|
16862
16882
|
var VERSION_FLAGS = /* @__PURE__ */ new Set(["-V", "--version"]);
|
|
16863
16883
|
function withErrorHandling(action2) {
|
|
16864
16884
|
return async (...args) => {
|
package/package.json
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.0.54
|
|
2
|
+
|
|
3
|
+
Retained configuration verification now resolves service `env_file` values before
|
|
4
|
+
computing Compose hashes. This corrects false drift with affected Compose
|
|
5
|
+
versions without relaxing ownership, file membership or container checks.
|
|
6
|
+
|
|
7
|
+
## Task
|
|
8
|
+
|
|
9
|
+
Install the published `@devrouter/cli@0.0.54` package and update the consumer's
|
|
10
|
+
`devrouter.version` pin when adopting this release. No schema migration or
|
|
11
|
+
generated configuration rewrite is required.
|
|
12
|
+
|
|
13
|
+
## Validation
|
|
14
|
+
|
|
15
|
+
For an approved exact runtime recovery, preserve the original Compose
|
|
16
|
+
interpolation settings and use canonical stop and guarded repair. Real
|
|
17
|
+
configuration changes and missing retained resources still block recovery.
|
|
18
|
+
Never persist or print a resolved Compose model: it may contain credentials.
|
|
19
|
+
Require complete retained-container shutdown, zero exact routes and separate
|
|
20
|
+
application readiness proof. Adapter side effects retain their own approval
|
|
21
|
+
boundaries; this release does not authorize cache deletion or data changes.
|
|
22
|
+
|
|
23
|
+
## Report
|
|
24
|
+
|
|
25
|
+
Report installed/configured versions, exact checkout/profile, command outcome,
|
|
26
|
+
container and route state, application proof and remaining blockers.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.0.55
|
|
2
|
+
|
|
3
|
+
Managed stop now compares retained mounts independently of the order returned
|
|
4
|
+
by Docker. Exact mount fields and all other retained-runtime guards remain
|
|
5
|
+
mandatory.
|
|
6
|
+
|
|
7
|
+
## Task
|
|
8
|
+
|
|
9
|
+
Install the published patch and update the consumer devrouter.version pin when
|
|
10
|
+
adopting it. No schema migration or generated configuration rewrite is required.
|
|
11
|
+
|
|
12
|
+
## Validation
|
|
13
|
+
|
|
14
|
+
With authorization for an exact runtime, run canonical stop and verify all
|
|
15
|
+
retained containers are stopped with zero exact routes. Preserve the original
|
|
16
|
+
Compose interpolation settings. Use guarded repair only for an eligible
|
|
17
|
+
retained degraded runtime and independently verify application readiness.
|
|
18
|
+
Do not bypass missing state, changed configuration or adapter side-effect gates.
|
|
19
|
+
|
|
20
|
+
## Report
|
|
21
|
+
|
|
22
|
+
Report installed/configured versions, exact checkout/profile, producing command,
|
|
23
|
+
container/route state, application proof and remaining blockers.
|