diff --git a/content/docs/guide/ci-cd-pipeline.md b/content/docs/guide/ci-cd-pipeline.md index 797be8619b..9d0447795c 100644 --- a/content/docs/guide/ci-cd-pipeline.md +++ b/content/docs/guide/ci-cd-pipeline.md @@ -1913,14 +1913,15 @@ one by hand is what removes that guarantee. > `skip-changeset` or `dependencies` label. None of it existed; > [#3724](https://github.com/objectstack-ai/objectui/issues/3724) deleted the page. > -> ⚠️ **The label object came back, and it still does nothing.** This note used to report a -> point-in-time labels-API reading (2026-08-08: of the two names only `dependencies` existed). -> That reading has since expired — a `skip-changeset` label now exists in this repository's -> label set, because GitHub mints a label the first time one is applied by name, so a single -> API call that applies it is enough to create it. By 2026-08-25 it sat on **seven** pull -> requests, carrying the default grey `ededed` and an empty description that tell an -> auto-minted label apart from a curated one. -> [#4912](https://github.com/objectstack-ai/objectui/issues/4912) tracks deleting the object. +> ⚠️ **The label object has been minted here before, and it never did anything.** This note +> used to report a point-in-time labels-API reading (2026-08-08: of the two names only +> `dependencies` existed), and that reading expired, because GitHub mints a label the first +> time one is applied by name — so a single API call that applies it is enough to create it. +> One did: by 2026-08-25 a `skip-changeset` label sat on **seven** pull requests, carrying the +> default grey `ededed` and an empty description that tell an auto-minted label apart from a +> curated one. [#4912](https://github.com/objectstack-ai/objectui/issues/4912) deleted that +> object on 2026-09-09, and ⛔ that deletion is no more durable than the reading it replaced: +> the same single API call re-mints it. > > ⛔ **Whether or not you can still see it in the picker, applying it declares nothing** — no > gate in this repository reads it. The real gate has no label escape hatch by design: its diff --git a/scripts/__tests__/ci-cd-pipeline-doc.test.ts b/scripts/__tests__/ci-cd-pipeline-doc.test.ts index 6e13c8657c..852ecd48f7 100644 --- a/scripts/__tests__/ci-cd-pipeline-doc.test.ts +++ b/scripts/__tests__/ci-cd-pipeline-doc.test.ts @@ -224,6 +224,12 @@ describe('ci-cd-pipeline.md — workflow inventory', () => { * recorded above, and the refusal was upheld on PR #6260. That is the exact harm #4912 * predicted, arriving after the card was filed. * + * ⭐ The object was deleted under #4912 on 2026-09-09, once its stated precondition — that + * no open PR carried it — had been measured. ⛔ That does not retire these two pins, and + * they must not be read as obsolete: one API call that applies the name mints the label + * again, and the instruction to apply it still reaches agents from the `objectstack` + * sibling, so its absence is a moment and not a state this repository can hold. + * * ⛔ What these two cases can and cannot see, said plainly because the boundary is the whole * design of this file: **a label lives in GitHub's data, not in the tree, so nothing here * can assert the label object is gone.** Deleting it is an administrative act, and a test @@ -289,9 +295,10 @@ describe('ci-cd-pipeline.md — workflow inventory', () => { expect( prose, 'content/docs/guide/ci-cd-pipeline.md must keep stating that nothing reads the ' + - '`skip-changeset` label. The label object exists in this repository (auto-minted by ' + - 'being applied, objectui#4912) and agents are being told to use it, so a page that ' + - 'stops denying it leaves the label as the most authoritative-looking answer in reach.', + '`skip-changeset` label. The label object was auto-minted in this repository once by ' + + 'being applied, and deleting it (objectui#4912) does not stop one API call from ' + + 'minting it again while agents are still told to use it, so a page that stops ' + + 'denying it leaves the label as the most authoritative-looking answer in reach.', ).toContain('no gate in this repository reads it'); expect(