@devrouter/cli 0.1.2 → 0.2.0
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/README.md +5 -0
- package/dist/devrouter-lifecycle-worker.js +438 -218
- package/dist/devrouter.js +2785 -755
- package/package.json +6 -1
- package/upgrade-prompts/0.1.3.md +55 -0
- package/upgrade-prompts/0.2.0.md +81 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devrouter/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
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",
|
|
@@ -56,7 +56,12 @@
|
|
|
56
56
|
"qualify:non-node": "./scripts/qualify-non-node-consumer.sh",
|
|
57
57
|
"qualify:slow-dependency": "./scripts/qualify-slow-dependency-recovery.sh",
|
|
58
58
|
"qualify:killed-runtime": "./scripts/qualify-killed-runtime-recovery.sh",
|
|
59
|
+
"qualify:cohorts": "node --import tsx scripts/qualify-lifecycle-cohorts.ts",
|
|
60
|
+
"qualify:preparation": "node --import tsx scripts/qualify-process-preparation.ts",
|
|
61
|
+
"qualify:profiles": "node --import tsx scripts/qualify-profile-alternation.ts",
|
|
62
|
+
"qualify:host-suspend": "node --import tsx scripts/qualify-host-suspend.ts",
|
|
59
63
|
"test:process": "bash scripts/test-devrouter-process.sh",
|
|
64
|
+
"test:skills": "bash tests/worktree-reclaim/run-corpus.sh && bash tests/worktree-reclaim/test-reclaim.sh && bash tests/worktree-reclaim/test-manifest.sh",
|
|
60
65
|
"check": "biome check .",
|
|
61
66
|
"check:fix": "biome check --write .",
|
|
62
67
|
"check:docs-policy": "./scripts/check-docs-policy.sh",
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.1.3
|
|
2
|
+
|
|
3
|
+
This is a patch release on top of 0.1.2. It carries the managed-stop and
|
|
4
|
+
managed-profile corrections found while qualifying the reliability roadmap, a
|
|
5
|
+
repaired Docker network inventory template, and one measured efficiency change
|
|
6
|
+
that removes a redundant provider startup per registry read. No schema, CLI
|
|
7
|
+
flag, environment variable or journal migration changes.
|
|
8
|
+
|
|
9
|
+
## What changed for a consumer
|
|
10
|
+
|
|
11
|
+
- `stop --delete` settles three shapes that a 0.1.2 install could leave stuck in
|
|
12
|
+
`stopping`, where `workspace journal settle` reported already-settled and every
|
|
13
|
+
later `ensure` was refused: a primary checkout whose Devsy registration was
|
|
14
|
+
already gone, a managed environment whose ignored generated profile had been
|
|
15
|
+
removed, and a stop that refused after the managed population changed outside
|
|
16
|
+
devrouter. Each correction keeps the fail-closed refusal whenever ownership,
|
|
17
|
+
identity or surviving resources are unproven.
|
|
18
|
+
- A checkout held up by one of those shapes recovers with the supported flow once
|
|
19
|
+
this CLI is installed: run `devrouter stop <checkout> --delete`, or
|
|
20
|
+
`devrouter workspace journal settle <checkout>` when no lifecycle worker can be
|
|
21
|
+
running. Do not delete provider registrations or edit journal files by hand.
|
|
22
|
+
- The Docker network inventory template is one complete JSON object per network
|
|
23
|
+
again, so the capacity check reads the daemon's networks instead of reporting
|
|
24
|
+
unknown inventory and refusing managed allocation.
|
|
25
|
+
- Lifecycle actions start the provider CLI fewer times: on the retained
|
|
26
|
+
qualification fixture a cold or retained `ensure` fell from 26 to 18 provider
|
|
27
|
+
invocations and `stop --delete` from 22 to 16, with the same ownership proofs
|
|
28
|
+
and Docker work.
|
|
29
|
+
- `status` and `doctor` report an unwound nested mount as a bounded non-blocking
|
|
30
|
+
observation, and read a container's mount table only when a configured mount
|
|
31
|
+
nests.
|
|
32
|
+
|
|
33
|
+
## Task
|
|
34
|
+
|
|
35
|
+
Use the published 0.1.3 CLI. Update the repository `devrouter.version` metadata
|
|
36
|
+
only when consumer source changes are authorized. No schema, command, flag,
|
|
37
|
+
environment or journal migration is needed, and the upgrade rewrites no runtime
|
|
38
|
+
state; a checkout already stuck in `stopping` is released by running the
|
|
39
|
+
supported stop or settlement command.
|
|
40
|
+
|
|
41
|
+
## Validation
|
|
42
|
+
|
|
43
|
+
Verify the resolved executable and installed version with `devrouter -V`, then
|
|
44
|
+
run `devrouter doctor --repo <checkout>` and confirm `global.cli-path` reports
|
|
45
|
+
one authoritative install. For a checkout that an earlier version left in
|
|
46
|
+
`stopping`, run the supported stop or settlement flow and confirm the terminal
|
|
47
|
+
provider and route state. Record unknown ownership or surviving resources as
|
|
48
|
+
unresolved rather than as recovered.
|
|
49
|
+
|
|
50
|
+
## Report
|
|
51
|
+
|
|
52
|
+
Report the release revision, the executable and installed version, the doctor
|
|
53
|
+
block for any affected checkout, and the terminal result of any authorized
|
|
54
|
+
lifecycle operation. Keep source and package validation separate from consumer
|
|
55
|
+
readiness or recovery.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.2.0
|
|
2
|
+
|
|
3
|
+
This minor release adds worktree lifecycle tooling.
|
|
4
|
+
|
|
5
|
+
- `workspace down` is safer.
|
|
6
|
+
- A Git-safety verdict covers every linked worktree, managed or not.
|
|
7
|
+
- Reclaim and trim commands apply only an approved, hash-bound manifest.
|
|
8
|
+
- Two installable skills ship with the release: `worktree-reclaim` and
|
|
9
|
+
`devrouter-setup`.
|
|
10
|
+
|
|
11
|
+
It adds one optional `.devrouter.yml` key, `worktrees`. Earlier versions reject
|
|
12
|
+
unknown keys. A repository that declares `worktrees` therefore needs 0.2.0 or
|
|
13
|
+
later on every machine that loads its configuration.
|
|
14
|
+
|
|
15
|
+
## What changed for a consumer
|
|
16
|
+
|
|
17
|
+
- `workspace down` refuses to remove a worktree that holds local state the
|
|
18
|
+
earlier check missed. That state covers:
|
|
19
|
+
- unrecognised ignored files;
|
|
20
|
+
- a detached HEAD;
|
|
21
|
+
- an index lock;
|
|
22
|
+
- an unfinished merge, rebase, cherry-pick, revert or bisect;
|
|
23
|
+
- initialized submodules.
|
|
24
|
+
|
|
25
|
+
The error names each reason. `--keep-worktree` still removes only the
|
|
26
|
+
runtime and routes.
|
|
27
|
+
- `workspace cleanup --all-worktrees --check-merged` reports `RECLAIM`, `KEEP`
|
|
28
|
+
or `PRUNE` with stable reason codes for every linked worktree. This report
|
|
29
|
+
uses schema version 3. Without the flag, the report stays at schema version
|
|
30
|
+
2.
|
|
31
|
+
- `workspace reclaim` removes the worktrees in an approved manifest. It removes
|
|
32
|
+
their runtime, ownership record and branch along with each worktree.
|
|
33
|
+
- `workspace trim` removes only the ignored paths declared in
|
|
34
|
+
`worktrees.trim` and leaves the worktree, branch and runtime in place.
|
|
35
|
+
- Both commands follow the same manifest rules:
|
|
36
|
+
- Both are dry runs until `--yes` is passed.
|
|
37
|
+
- Both re-check each target inside its lifecycle lock.
|
|
38
|
+
- Both write receipts, so a rerun reports `already-done`.
|
|
39
|
+
- `cleanup --manifest` emits the manifest, and `workspace manifest hash|select`
|
|
40
|
+
hashes or narrows it. Manifests are interchangeable with the
|
|
41
|
+
`worktree-reclaim` skill.
|
|
42
|
+
- `npx skills add rschlaefli/devrouter` installs the `devrouter`,
|
|
43
|
+
`worktree-reclaim` and `devrouter-setup` skills.
|
|
44
|
+
|
|
45
|
+
## Task
|
|
46
|
+
|
|
47
|
+
Install the published 0.2.0 CLI. No migration or runtime-state change is
|
|
48
|
+
needed.
|
|
49
|
+
|
|
50
|
+
Optionally declare reproducible ignored paths in `.devrouter.yml`. Do this only
|
|
51
|
+
when consumer source changes are authorized. When you add the key, raise the
|
|
52
|
+
documented minimum devrouter version to 0.2.0 in the same change:
|
|
53
|
+
|
|
54
|
+
```yaml
|
|
55
|
+
worktrees:
|
|
56
|
+
disposable: ["**/playwright-report"]
|
|
57
|
+
trim: ["**/node_modules", "**/.next"]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Validation
|
|
61
|
+
|
|
62
|
+
1. Run `devrouter -V` from the consumer checkout. A repository Volta pin can
|
|
63
|
+
change which install resolves.
|
|
64
|
+
2. Run `devrouter doctor --repo <checkout>`.
|
|
65
|
+
3. Run `devrouter workspace cleanup --repo <checkout> --all-worktrees
|
|
66
|
+
--check-merged` and confirm the report lists every linked worktree with a
|
|
67
|
+
verdict.
|
|
68
|
+
4. Run every reclaim or trim as a dry run first. Run with `--yes` only after a
|
|
69
|
+
person has approved the manifest's printed SHA-256.
|
|
70
|
+
|
|
71
|
+
## Report
|
|
72
|
+
|
|
73
|
+
Report:
|
|
74
|
+
|
|
75
|
+
- the release revision;
|
|
76
|
+
- the resolved executable and its installed version;
|
|
77
|
+
- the verdict counts from the cleanup report;
|
|
78
|
+
- for any authorized reclaim or trim, the manifest hash and the per-target
|
|
79
|
+
outcomes.
|
|
80
|
+
|
|
81
|
+
Report kept trees with their reason codes, never as failures.
|