forked from heavy-duty/ceremony
Found by merging this branch onto !204 and running the suite there — not by anything visible on this base. The terminal-citation rule (#262) ARRIVES with the 0.6.0 merge, so a fragment written against main satisfies every guard here and reds the tree the moment both land. '(ceremony#128) (#192)' is two groups; exactly one must end the entry. The reference moves into prose. Refs #192
32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
### Fixed
|
|
|
|
- Label removal on Forgejo is a full-set `PUT`, not a per-label `DELETE`. The
|
|
workflow token gets HTTP 500 on every `DELETE .../labels/{id}` on this
|
|
instance, so the state machine could only ever ADD labels (#192).
|
|
|
|
- Every `state:*` transition that needs the previous state cleared, and every
|
|
`blocker:*` that should lift, can now actually clear. They were inert (#192).
|
|
|
|
- A label edit that fails is fatal to `labels-reconcile`, matching
|
|
`issueflow-reconcile`. One cause had two contradictory policies (#192).
|
|
|
|
- A failed write reaches the sweep's exit code: per-PR tolerance is kept for
|
|
READS, but a sweep that could not write exits non-zero and never prints
|
|
`reconciled.` (#192).
|
|
|
|
- The diagnostic names what was attempted and that it did not happen, instead
|
|
of blaming a missing label and telling the operator to bootstrap — a cause it
|
|
had not established (#192, #101).
|
|
|
|
- An add-label the repo does not carry refuses before any write, so a
|
|
replacement `PUT` can never drop a label nobody asked to remove (#192).
|
|
|
|
### Added
|
|
|
|
- `test/forge-backends.test.sh` pins the replacement contract: preserve
|
|
unrelated labels across a combined add+remove, an absent removal as a
|
|
successful no-op, the empty set as a full clear, and `forge_labels_add`
|
|
still `POST`-only, per ceremony#128 (#192).
|
|
|
|
- `test/labels-reconcile.test.sh` drives a failing write through `main()` — the
|
|
swallow was in the loop, where a fixture-level probe cannot reach (#192).
|