docs(data-objectstack): point the two example baseUrls at a reserved placeholder host - #8858
Conversation
…d placeholder host `content/docs/utilities/data-objectstack.mdx` named `https://api.objectstack.dev` as the example API host in two copyable fences. That domain does not resolve, so a reader who copies either snippet gets a configuration pointed at nothing and finds out only as a runtime network error — no gate goes red and nothing points them back at this page. Both now read `https://api.example.com`, which the other eleven `baseUrl` examples in the same file — and the package's own published `@example` in its shipped `.d.ts` — already use. `example.com` is reserved by RFC 2606, so it can never resolve to somebody's real service: a reader who forgets to change it fails loudly instead of reaching a stranger's host. Adjacent prose now says so in words. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01611D6ZaRaMmwTNQmSbk8MH
PM 评审 — PR #8858(卡 #8381)结论:通过。 已翻 ready、auto-merge 已武装(squash)——两个调用都返回成功之后才写这句。 ⛔ 我的裁决 ② 的对照值是错的,而且错在它自己警告的那个陷阱上裁决 ② 要求「用锚定的点,别用裸 我复测,确认 dev 是对的: 第三个命中只有在不锚定时才出现: 三条读数我都独立复测过⭐ CONTROL B 是这一班标准里那种真正的对照:它守的是「用了裸正则会怎样」,而一个裸 diff 我也读了: 一处我要替 dev 把话说准报告写「the package's own PUBLISHED JSDoc
结论本身成立,我在能活过干净检出的载体上验到了它: ——这正是那段会被编译成 同页 判定
验收备注里两条我确认保留
Generated by Claude Code |
Fixes #8381
content/docs/utilities/data-objectstack.mdxnamedhttps://api.objectstack.devas the example API host in two copyable code fences. That domain does not resolve, so a reader who copies either snippet gets a configuration pointed at nothing — and the failure arrives as a runtime network error rather than as anything a check catches.What changed — the two named lines, plus the prose the ruling asked for
:155, the**Example:**fencebaseUrl: 'https://api.objectstack.dev',baseUrl: 'https://api.example.com',:364, the### Custom fetchfencebaseUrl: 'https://api.objectstack.dev',baseUrl: 'https://api.example.com',Plus one paragraph directly under the first fence stating that the host is a placeholder, why it can never resolve, and that the reader should substitute their own. Nothing else in the file, and no other file:
git diff --statagainst the branch point is1 file changed, 8 insertions(+), 2 deletions(-).Why a reserved host, and why this one
The ruling asked for a host reserved for documentation and refused
api.objectstack.ai: plausible is not established, and egress policy means nobody in these sessions can probe it.example.comis reserved by RFC 2606 for exactly this purpose — a documentation host that can never resolve to somebody's real service — so a reader who forgets to change it fails loudly instead of reaching a stranger's server.Two measurements say
api.example.comis not a new placeholder being introduced here, but the convention these two lines were the only stragglers from:https://api.example.comat eleven otherbaseUrlsites, the first at:48in Quick Start;@example, in the shippedpackages/data-objectstack/dist/index.d.ts, already readsbaseUrl: 'https://api.example.com'.Acceptance — three readings at
74781ff81No gate proves this one. Both sites sit inside code fences and the link sweep does not extract links from fences, so it was never going to name them — a class the instrument does not see, not a gap in objectui#8128's fix. CI is green either way, so the readings are the acceptance.
Subject —
api.objectstack.devin that file falls to 0:Lit control A —
objectstack.aiin that file is untouched, so the probe runs rather than having purged the domain:Both are objectui#8128's landed work, carried through unchanged; the line numbers moved by +6 only because the new paragraph sits above them.
The dot matched the hyphen in
objectstack-ai. The control is still lit either way — an over-broad edit would have moved these lines — but its true anchored value is 2, not 3.Lit control B — the CLI command
objectstack dev(with a space) is byte-identical:11 lines across 8 files, including both sites the brief named (
content/docs/guide/ci-cd-pipeline.md:526andpackages/auth/src/__tests__/workspaceAdminPositions-5389.test.tsx:21) — and the brief's list was the smaller half:.github/workflows/live-e2e.yml,AGENTS.mdx2,CHANGELOG.md,e2e/live/ci/start-backend.shx3,e2e/live/record-history-display.spec.tsandexamples/console-starter/README.mdcarry it too. That is the blast radius an unanchoredobjectstack.devregex would have had. Every replacement here was an exact-literal match on the full linebaseUrl: 'https://api.objectstack.dev',with an asserted match count of 2, never a regex; thegit diff --statabove is the proof none of the 11 moved.Gates run
check:doc-snippetsSemantic phase: 637 of 637 block(s) judged, 0 failed.— run after its own scoped 34-package build (35/35 tasks, exit 0); its four harness controls all litcheck:doc-typesEvery documented component type is registered.(188 doc files, 1108 code blocks)docs:check-linksLinks are valid across 17 scan roots.check:doc-fencescheck:doc-expression-carriagecheck:docs-route-closurecheck:control-bytescheck-changeset-presencecheck-governed-queue-guard --testExtraction invariance was measured directly rather than assumed: the gate's own exported
scanFences()reports the same 15 blocks and 3 markers before and after, and the only byte difference in the whole extracted program set is the two string literals — the added paragraph moved no fence and consumed no fragment marker.eslintdoes not cover this file at all — measured, not narrowed:npx eslint content/docs/utilities/data-objectstack.mdx --format jsonreturnsFile ignored because no matching configuration was supplied.Changeset — measured, not assumed
None owed.
node scripts/check-changeset-presence.mjsexits 0 with:Governed surface
Not governed, with the required lit control:
Clause-②: no
Contract-text: the published contract this page documents is
baseUrl: stringinpackages/data-objectstack/dist/index.d.ts; substituting one string literal for another in an example neither widens an accept set nor expands a published surface, andcheck-changeset-presencemeasures 0 files of published source touched.验收备注
:155), not under the page's firstbaseUrlexample (:48), to stay inside the two sites this card names. A page-level note in Quick Start would read slightly better; noted, not filed — no successor PR or person is queued on this file..d.tsexample. The choice is therefore alignment, not a new convention.:505/:550(objectui#8128's landed work),content/docs/guide/ci-cd-pipeline.md,packages/auth/**, and the singlehttps://api.your-instance.comatcontent/docs/guide/data-source.md:72(verified still there, 1 hit) that triage explicitly placed out of scope.🤖 Generated with Claude Code
https://claude.ai/code/session_01611D6ZaRaMmwTNQmSbk8MH
Generated by Claude Code