@devrouter/cli 0.0.38 → 0.0.40

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrouter/cli",
3
- "version": "0.0.38",
3
+ "version": "0.0.40",
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",
@@ -57,6 +57,7 @@
57
57
  "test:watch": "vitest",
58
58
  "routing:smoke": "./scripts/smoke-routing.sh",
59
59
  "devcontainer:smoke": "./scripts/smoke-devcontainer.sh",
60
+ "devpod:profile-smoke": "./scripts/smoke-devpod-profile-lifecycle.sh",
60
61
  "workspace:lifecycle-smoke": "./scripts/smoke-workspace-lifecycle.sh",
61
62
  "workspace:cleanup-smoke": "./scripts/smoke-workspace-cleanup-report.sh",
62
63
  "bench:startup": "zsh -lc 'set -euo pipefail; echo \"=== dev --help (x5) ===\"; for i in {1..5}; do /usr/bin/time -p node dist/devrouter.js --help >/dev/null; done; echo \"=== dev app add --help (x5) ===\"; for i in {1..5}; do /usr/bin/time -p node dist/devrouter.js app add --help >/dev/null; done; echo \"=== dev status --json (x3, best effort) ===\"; for i in {1..3}; do /usr/bin/time -p node dist/devrouter.js status --json >/dev/null || true; done'",
@@ -0,0 +1,48 @@
1
+ # Upgrade to devrouter 0.0.39
2
+
3
+ Devrouter now lets managed devcontainers select independent runtime dimensions.
4
+ The optional `managedRuntime` registry names base Compose services, optional
5
+ Compose capabilities, and repository-owned process markers. Profiles may select
6
+ routed apps, optional services, and processes independently, including
7
+ route-free capability profiles such as an AI gateway or MCP server.
8
+
9
+ 1. Install `@devrouter/cli@0.0.39` on the host and bump `.devrouter.yml` to
10
+ `devrouter.version: 0.0.39`.
11
+ 2. Repositories without `managedRuntime` keep their existing app-only profile
12
+ behavior. No database or data migration is required.
13
+ 3. For a managed devcontainer, register every base service, optional Compose
14
+ service, and managed process marker. Keep the source `devcontainer.json`
15
+ as the full native configuration; `devrouter ensure` owns its ignored
16
+ generated sibling for selective startup.
17
+ 4. Add profiles for the real dependency graph. For example, an `ai` profile
18
+ can select the application, `litellm`, and its process, while an `mcp`
19
+ profile can select only the MCP service and process. Omitted optional
20
+ dimensions stay stopped; use `*` or a `full` profile for the complete set.
21
+ 5. Refresh generated discoverability artifacts with `devrouter repo agents`.
22
+ Do not commit `.devcontainer/devcontainer.devrouter.json` or place secrets
23
+ in the registry or managed runtime state.
24
+
25
+ Verification:
26
+
27
+ - Run `devrouter -V --repo <checkout>` and confirm both the installed CLI and
28
+ local repository report `0.0.39`.
29
+ - Run `devrouter doctor --repo <checkout> --json` and confirm the configuration
30
+ and managed registry validate.
31
+ - Run a managed app profile and a capability-only profile with
32
+ `devrouter ensure <checkout> --profile <name> --json`; confirm desired and
33
+ active services/processes match and that a capability-only profile has no
34
+ application routes.
35
+ - Switch profiles in the same workspace and confirm the DevPod and volumes are
36
+ retained, post-create does not rerun, and dropped resources stop only after
37
+ exact ownership proof.
38
+ - Run `devrouter status --repo <checkout> --json` and inspect any reported drift
39
+ before continuing development.
40
+
41
+ Report template:
42
+
43
+ - CLI/config version: `0.0.39`
44
+ - Registry and profile validation: `<passed or details>`
45
+ - Managed app profile: `<passed or details>`
46
+ - Capability-only profile: `<passed or details>`
47
+ - Warm transition and exact stop: `<passed or details>`
48
+ - Remaining blockers: `<none or details>`
@@ -0,0 +1,34 @@
1
+ # Upgrade to devrouter 0.0.40
2
+
3
+ Devrouter now keeps a managed DevPod stoppable when its first profile
4
+ transition fails. The ignored generated Dev Container configuration is restored
5
+ to the exact observed service baseline instead of being removed while DevPod
6
+ still references it.
7
+
8
+ 1. Install `@devrouter/cli@0.0.40` on the host and bump `.devrouter.yml` to
9
+ `devrouter.version: 0.0.40`.
10
+ 2. No schema, data, volume, or runtime migration is required.
11
+ 3. Keep `.devcontainer/devcontainer.devrouter.json` ignored and owned by
12
+ devrouter. Do not delete it to recover a failed transition.
13
+ 4. Retry the desired profile with `devrouter ensure`. If the repository-owned
14
+ post-start adapter still fails, correct that adapter before retrying.
15
+
16
+ Verification:
17
+
18
+ - Run `devrouter -V --repo <checkout>` and confirm both the installed CLI and
19
+ local repository report `0.0.40`.
20
+ - Run the repository's managed profile checks, including a cold transition
21
+ whose post-start adapter fails.
22
+ - Confirm the ignored generated configuration remains present after the
23
+ failure and `devrouter stop <checkout>` stops the exact DevPod without
24
+ deleting its workspace or volumes.
25
+ - Correct the post-start failure, rerun `devrouter ensure`, and confirm the
26
+ desired services, processes, and routes reconcile successfully.
27
+
28
+ Report template:
29
+
30
+ - CLI/config version: `0.0.40`
31
+ - Cold failure rollback: `<passed or details>`
32
+ - Exact non-destructive stop: `<passed or details>`
33
+ - Retry after correction: `<passed or details>`
34
+ - Remaining blockers: `<none or details>`