Repository navigation
Commit 0578d56
ci(npm-dist-tag):
The workflow was built on the premise that the CI `NPM_TOKEN` — the token that publishes
the set — is therefore the token that can retag it. With the config shadow fixed, that
premise was testable for the first time, and it is false for `rm`.
Run 34424234319: `npm whoami` succeeds, so the secret is valid and the earlier E401 was
entirely the shadowed npmrc. Then all fourteen packages return
`403 Forbidden - DELETE /-/package/@metaobjectsdev%2f<pkg>/dist-tags/next`. The
maintainer's local granular token returns the same 403, and `--otp` changes nothing on
either, so the registry is not asking for a second factor. This is npm's 2026-07-31
restriction: a bypass-2FA granular token may still publish but may not change package
access, and deleting a dist-tag is package access. Two independent credentials on two
machines, same refusal — this is a grant boundary, not a misconfiguration.
What DOES work is `add`, which is how `next` was moved off `1.0.0-rc.8` onto `1.0.0`. So
the workflow gains that action rather than only being able to report and to fail:
- `add` repoints the tag at a given version across the set (needs `version`).
- `rm` is kept — the grant may widen, and it is still the operation one wants — but the
header says to expect 403, and a failed `rm` now prints the remedy instead of leaving a
reader to conclude the credential is broken.
- `ls` stays the default, so a dispatch meant to report still cannot write.
This also settles the open question of whether a stale `next` can be retired: not by any
automated path. Repointing it at the current release removes the prerelease install path,
which was the actual harm; deleting the tag outright is cosmetic beyond that.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTcEKXTQMYt84fAjuw5A2Mrm is refused by every token we hold; add is the remedy that works1 parent 2871626 commit 0578d56
1 file changed
Lines changed: 46 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
11 | 18 | | |
12 | 19 | | |
13 | 20 | | |
| |||
23 | 30 | | |
24 | 31 | | |
25 | 32 | | |
26 | | - | |
| 33 | + | |
27 | 34 | | |
28 | 35 | | |
29 | 36 | | |
30 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
31 | 42 | | |
32 | 43 | | |
33 | 44 | | |
| |||
51 | 62 | | |
52 | 63 | | |
53 | 64 | | |
| 65 | + | |
54 | 66 | | |
55 | 67 | | |
56 | 68 | | |
| |||
61 | 73 | | |
62 | 74 | | |
63 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
64 | 80 | | |
65 | 81 | | |
66 | 82 | | |
67 | 83 | | |
68 | 84 | | |
69 | 85 | | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
80 | 103 | | |
81 | 104 | | |
82 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
83 | 110 | | |
0 commit comments