@azure-id/orc 0.55.2 → 0.56.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 CHANGED
@@ -7,14 +7,14 @@
7
7
  *Intake → analyze → plan → score → parallel subagents → review → verify → ship.*
8
8
 
9
9
  ![npm](https://img.shields.io/npm/v/%40azure-id%2Forc?style=for-the-badge&color=cb3837&logo=npm)
10
- ![Version](https://img.shields.io/badge/version-0.55.2-blue.svg?style=for-the-badge)
10
+ ![Version](https://img.shields.io/badge/version-0.56.0-blue.svg?style=for-the-badge)
11
11
  ![License](https://img.shields.io/badge/license-MIT-green.svg?style=for-the-badge)
12
12
  ![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg?style=for-the-badge)
13
13
  ![Claude Code](https://img.shields.io/badge/Claude_Code-Skills-purple.svg?style=for-the-badge)
14
14
  ![Dependencies](https://img.shields.io/badge/dependencies-zero-lightgrey.svg?style=for-the-badge)
15
15
  ![GitHub stars](https://img.shields.io/github/stars/azure-id/orc?style=for-the-badge&color=yellow)
16
16
 
17
- **Latest: v0.55.2** · updated 2026-08-27 · [full changelog](CHANGELOG.md)
17
+ **Latest: v0.56.0** · updated 2026-08-27 · [full changelog](CHANGELOG.md)
18
18
 
19
19
  **On npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** — `npm i -g @azure-id/orc`
20
20
 
@@ -24,6 +24,38 @@
24
24
 
25
25
  ---
26
26
 
27
+ > [!CAUTION]
28
+ > **Upgrading from a version before v0.56.0? Do this once.**
29
+ >
30
+ > The package moved from the unscoped `orc` to **`@azure-id/orc`**. Both declare
31
+ > the same `orc` command, and npm will not hand that command to the new package
32
+ > while the old one still holds it — so **every** install source fails with the
33
+ > same error, and `orc upgrade` cannot fix itself:
34
+ >
35
+ > ```text
36
+ > npm error code EEXIST
37
+ > npm error File exists: C:\Users\you\AppData\Roaming\npm\orc
38
+ > ```
39
+ >
40
+ > Run these two lines once. Nothing in your `.claude/` is touched, and your
41
+ > `orc.config.yaml` survives:
42
+ >
43
+ > ```bash
44
+ > npm uninstall -g orc # release the `orc` command from the old package
45
+ > npm i -g @azure-id/orc # install the current one
46
+ > orc update # re-apply into this project (add --global for ~/.claude)
47
+ > ```
48
+ >
49
+ > **From v0.56.0 onward `orc upgrade` handles this for you** — it removes the old
50
+ > package first, then installs, and says so while it does it. `orc doctor` also
51
+ > reports the old package by name if it is still there.
52
+ >
53
+ > Do **not** reach for `npm i -g -f`. `--force` overwrites the command file and
54
+ > leaves the superseded package installed underneath, owning nothing and never
55
+ > updated again.
56
+
57
+ ---
58
+
27
59
  > [!IMPORTANT]
28
60
  > **`orc-open` is released — ORC for non-Claude agents.**
29
61
  > A provider-agnostic port of the pipeline:
@@ -178,8 +210,11 @@ You do not have to run a command to hear about it: the same notice appears
178
210
  inside Claude Code through ORC's hooks, at **zero model tokens** — hooks are
179
211
  scripts Claude Code runs, not model turns.
180
212
 
181
- If the GitHub spec fails to install (common under **NVM**), `orc upgrade` retries
182
- with a plain tarball by itself.
213
+ `orc upgrade` tries the npm registry first, then a plain tarball, then the
214
+ GitHub spec and it remembers which one worked. If the old unscoped `orc`
215
+ package is still installed, it removes that first (announced), because npm
216
+ cannot give the `orc` command to `@azure-id/orc` while another package owns it.
217
+ See the caution at the top of this README for the one-time manual version.
183
218
 
184
219
  </details>
185
220
 
@@ -465,6 +500,41 @@ a current audit: [EVAL-REPORT.md](EVAL-REPORT.md).
465
500
  **Full history: [CHANGELOG.md](CHANGELOG.md)** — or `orc changelog`, which prints
466
501
  only what is newer than the version you have.
467
502
 
503
+ ### v0.56.0 - a rename moved the command, and nobody could reach the fix _(2026-08-27)_
504
+
505
+ **READ THIS FIRST IF YOUR `orc upgrade` IS FAILING.** On a version before
506
+ v0.56.0, this release cannot install itself - your `orc upgrade` is the OLD one.
507
+ Run these three lines once, by hand:
508
+
509
+ - **Step 1 - release the command from the old package:** `npm uninstall -g orc`
510
+ - **Step 2 - install the current package:** `npm i -g @azure-id/orc`
511
+ - **Step 3 - re-apply it to your project:** `orc update` (add `--global` to also
512
+ refresh `~/.claude`)
513
+
514
+ Then `orc version` should print 0.56.0 or newer. Your `.claude/` and your
515
+ `orc.config.yaml` are untouched. **Do not use `npm i -g -f`.**
516
+
517
+ **The package moved from the unscoped `orc` to `@azure-id/orc`, and every
518
+ upgrade path in the field died at once.** Both names declare the same `orc` bin,
519
+ and npm will not link it for the new package while the old one owns it - so the
520
+ tarball, the `github:` spec and the registry all failed with the same `EEXIST`
521
+ on the command file. It is a FILE conflict, not a source problem, which is why
522
+ changing sources never helped and `npm i -g -f` was the only thing that worked.
523
+
524
+ - **`orc upgrade` evicts the legacy package BEFORE trying any source**, because
525
+ the collision fails every source identically. Announced, never silent.
526
+ Detection is by OWNERSHIP - a package that does not declare the `orc` bin is
527
+ never touched.
528
+ - **The npm registry is tried first**, then the tarball, then the `github:` spec.
529
+ `freshCliPath()` now resolves the SCOPED directory, so step 2 stops re-applying
530
+ the templates step 1 just superseded.
531
+ - **`--force` is kept for the one case it fits** - an orphaned command file no
532
+ package owns - and never for an unrelated `EEXIST`.
533
+ - **`orc doctor` reports `legacy-global-package` by name.** Not `--fix`-able on
534
+ purpose: `--fix` is scoped to this project's `.claude/`.
535
+ - **A CAUTION at the top of this README** carries the one-time manual fix, since
536
+ anyone still on the old package does not have this code yet.
537
+
468
538
  ### v0.55.2 - a gate that is never probed is a gate that is always off _(2026-08-27)_
469
539
 
470
540
  **`/orc-quick` and `/orc-fast` documented the foreign-worker option and then