@devrouter/cli 0.0.32 → 0.0.33
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 +19 -5
- package/package.json +1 -1
- package/upgrade-prompts/0.0.33.md +21 -0
package/dist/devrouter.js
CHANGED
|
@@ -1794,7 +1794,7 @@ function loadRepoConfig(repoPath) {
|
|
|
1794
1794
|
const config = parseConfig(parsed ?? {}, configPath);
|
|
1795
1795
|
const requiredVersion = config.devrouter?.version;
|
|
1796
1796
|
if (requiredVersion && !hasWarnedVersionMismatch) {
|
|
1797
|
-
const cliVersion = true ? "0.0.
|
|
1797
|
+
const cliVersion = true ? "0.0.33" : "0.0.0-dev";
|
|
1798
1798
|
if (cliVersion !== "0.0.0-dev" && compareSemver(requiredVersion, cliVersion) > 0) {
|
|
1799
1799
|
hasWarnedVersionMismatch = true;
|
|
1800
1800
|
process.stderr.write(
|
|
@@ -5087,7 +5087,7 @@ async function buildDoctorReport(options = {}) {
|
|
|
5087
5087
|
const config = runtimeConfig.config;
|
|
5088
5088
|
loadedConfig = config;
|
|
5089
5089
|
loadedWorkspace = runtimeConfig.workspace;
|
|
5090
|
-
const cliVersion = true ? "0.0.
|
|
5090
|
+
const cliVersion = true ? "0.0.33" : "0.0.0-dev";
|
|
5091
5091
|
const configVersion = config.devrouter?.version;
|
|
5092
5092
|
if (configVersion && cliVersion !== "0.0.0-dev" && compareSemver(configVersion, cliVersion) > 0) {
|
|
5093
5093
|
addCheck(checks, {
|
|
@@ -6751,6 +6751,14 @@ var init_stop = __esm({
|
|
|
6751
6751
|
});
|
|
6752
6752
|
|
|
6753
6753
|
// src/core/devpod-exec.ts
|
|
6754
|
+
function stripDevpodCompletionDiagnostic(value) {
|
|
6755
|
+
const index = value.indexOf(DEVPOD_MISSING_EXIT_STATUS_DIAGNOSTIC);
|
|
6756
|
+
if (index < 0) return value;
|
|
6757
|
+
return Buffer.concat([
|
|
6758
|
+
value.subarray(0, index),
|
|
6759
|
+
value.subarray(index + DEVPOD_MISSING_EXIT_STATUS_DIAGNOSTIC.length)
|
|
6760
|
+
]);
|
|
6761
|
+
}
|
|
6754
6762
|
function quotePosixArg(value) {
|
|
6755
6763
|
return `'${value.replaceAll("'", `'"'"'`)}'`;
|
|
6756
6764
|
}
|
|
@@ -6825,6 +6833,7 @@ async function devpodExec(repoPath, command) {
|
|
|
6825
6833
|
child.stderr.on("data", (chunk) => {
|
|
6826
6834
|
pending = Buffer.concat([pending, Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)]);
|
|
6827
6835
|
for (; ; ) {
|
|
6836
|
+
if (remoteStatus !== void 0) break;
|
|
6828
6837
|
if (readingStatus) {
|
|
6829
6838
|
const newline = pending.indexOf(10);
|
|
6830
6839
|
if (newline < 0) {
|
|
@@ -6858,7 +6867,9 @@ async function devpodExec(repoPath, command) {
|
|
|
6858
6867
|
reject(new Error(`devpod ssh terminated by signal ${signal ?? "unknown"}.`));
|
|
6859
6868
|
return;
|
|
6860
6869
|
}
|
|
6861
|
-
if (!readingStatus)
|
|
6870
|
+
if (!readingStatus) {
|
|
6871
|
+
forward(remoteStatus === void 0 ? pending : stripDevpodCompletionDiagnostic(pending));
|
|
6872
|
+
}
|
|
6862
6873
|
if (remoteStatus === void 0) {
|
|
6863
6874
|
reject(
|
|
6864
6875
|
new Error(`DevPod command did not report its exit status (devpod exited ${code}).`)
|
|
@@ -6870,7 +6881,7 @@ async function devpodExec(repoPath, command) {
|
|
|
6870
6881
|
});
|
|
6871
6882
|
});
|
|
6872
6883
|
}
|
|
6873
|
-
var import_node_child_process13, import_node_crypto4;
|
|
6884
|
+
var import_node_child_process13, import_node_crypto4, DEVPOD_MISSING_EXIT_STATUS_DIAGNOSTIC;
|
|
6874
6885
|
var init_devpod_exec = __esm({
|
|
6875
6886
|
"src/core/devpod-exec.ts"() {
|
|
6876
6887
|
"use strict";
|
|
@@ -6879,6 +6890,9 @@ var init_devpod_exec = __esm({
|
|
|
6879
6890
|
init_devpod_environment();
|
|
6880
6891
|
init_devpod_workspaces();
|
|
6881
6892
|
init_workspace();
|
|
6893
|
+
DEVPOD_MISSING_EXIT_STATUS_DIAGNOSTIC = Buffer.from(
|
|
6894
|
+
"Error tunneling to container: wait: remote command exited without exit status or exit signal\n"
|
|
6895
|
+
);
|
|
6882
6896
|
}
|
|
6883
6897
|
});
|
|
6884
6898
|
|
|
@@ -9878,7 +9892,7 @@ var init_version = __esm({
|
|
|
9878
9892
|
|
|
9879
9893
|
// src/cli.ts
|
|
9880
9894
|
var import_commander = require("commander");
|
|
9881
|
-
var CLI_VERSION = true ? "0.0.
|
|
9895
|
+
var CLI_VERSION = true ? "0.0.33" : "0.0.0-dev";
|
|
9882
9896
|
var VERSION_FLAGS = /* @__PURE__ */ new Set(["-V", "--version"]);
|
|
9883
9897
|
function withErrorHandling(action2) {
|
|
9884
9898
|
return async (...args) => {
|
package/package.json
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.0.33
|
|
2
|
+
|
|
3
|
+
Devrouter now hides a known DevPod transport diagnostic emitted after a one-shot command has completed and devrouter has already recovered its real exit status. Real command stderr and exact non-zero statuses remain unchanged.
|
|
4
|
+
|
|
5
|
+
1. Install `@devrouter/cli@0.0.33` on the host and bump `.devrouter.yml` to `devrouter.version: 0.0.33`.
|
|
6
|
+
2. Keep the `0.0.32` lifecycle adoption unchanged: use `ensure` for startup, `stop` for a non-destructive pause, and `exec` for one-shot commands.
|
|
7
|
+
3. Run `devrouter repo agents --repo <checkout>` only if the repository has not already adopted the `0.0.32` lifecycle guidance.
|
|
8
|
+
|
|
9
|
+
Verification:
|
|
10
|
+
|
|
11
|
+
- Run `devrouter exec <checkout> -- true` and confirm it exits `0` without a transport diagnostic.
|
|
12
|
+
- Run a command that exits `7` and confirm devrouter returns `7` without a transport diagnostic.
|
|
13
|
+
- Write a line to command stderr and confirm that line remains visible.
|
|
14
|
+
|
|
15
|
+
Report template:
|
|
16
|
+
|
|
17
|
+
- CLI/config version: `0.0.33`
|
|
18
|
+
- Successful exec: `<exit status and stderr>`
|
|
19
|
+
- Non-zero exec: `<exit status and stderr>`
|
|
20
|
+
- Real command stderr: `<preserved or failure details>`
|
|
21
|
+
- Remaining blockers: `<none or details>`
|