Skip to content

Commit e8ded0d

Browse files
committed
chore: changeset for the spec refusal-message id strip
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E5LFCYBJ3q2s6yW6oMLxwy
1 parent 0a91428 commit e8ded0d

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
"@objectstack/spec": patch
3+
---
4+
5+
Strip internal tracker ids from the refusal messages an author actually reads (#12124)
6+
7+
Fifteen zod refusal messages across nine `packages/spec/src` files ended a sentence with
8+
an internal issue id. Those strings are printed **at** the author, verbatim, the moment
9+
their metadata is refused — by `os validate`, by a publish gate, by a parse — and the
10+
reader has no tracker to open. A `#NNNN` there is a citation-shaped token that resolves to
11+
nothing, in the one place the sentence most needs to be actionable.
12+
13+
```text
14+
before: A field condition's keys are field names, never $-prefixed operators (#7711).
15+
after: A field condition's keys are field names, never $-prefixed operators.
16+
17+
before: ... refused at authoring time because the query path refuses it too
18+
(400 INVALID_FILTER, #5869).
19+
after: ... refused at authoring time because the query path refuses it too
20+
(400 INVALID_FILTER).
21+
```
22+
23+
Where a customer-resolvable anchor already carried the meaning it was kept and the id
24+
dropped beside it: the second example above keeps `400 INVALID_FILTER`, which is the token
25+
an author can actually match their query-path error against. Where the reference is
26+
load-bearing for an *internal* reader only, it moved to an adjacent `//` comment (four
27+
sites: the endpoint publish gate's two `#5040` section pointers, the summary-field rule's
28+
founding incident, and the interim renderer precedence behind the doubled-redirect
29+
refusal). Elsewhere it is simply gone — git history keeps the anchor.
30+
31+
Text only. **No accept/reject behaviour changes**: the same inputs are refused on the same
32+
schemas with the same issue `code`, `path` and error shape; only the sentence changes.
33+
Test twins that pinned the old wording now pin the new text plus a negative assertion that
34+
the message carries no issue id at all.
35+
36+
The convention is held mechanically from here — `check:doc-authoring` gained a third rule
37+
that parses `packages/spec/src` and reds on an id in any refusal-message string. It parses
38+
rather than scanning lines because refusal prose here is written as multi-line string
39+
concatenation: a single-line `message:.*#[0-9]{3,5}` grep sees 1 of the 16 literals.

0 commit comments

Comments
 (0)