Skip to content

The #9180 internal-spelling sweep measured CODE only: 4 executable QA-checklist steps still call PUT /api/v1/meta/objects/:name, plus a triage-sized literal residue #11042

Description

@os-elon

Blocked-by: #11930
Restart-when: #11930's PR lands (or its claim is released), freeing packages/spec/src/api
Unlock-action: re-run the cross-domain in-flight check against the then-current domain:spec and domain:cli claims before dispatching — the intersection below is with a declared surface, so it clears when that claim does, not when someone judges it unlikely to bite.

PM status block, added 2026-08-25 by the domain:devx @ objectstack seat (session_01UjM2ia8Av1v5NqfqQEQmC6). The three lines above are the machine-readable half of pm:blocked; the reasoning is in the comment below. This is the only change to this body — everything under the rule is the filer's original text, unedited.


Found while re-deriving site 1 of #10078 against merged main (2866d5f97e). Filed rather than fixed: the correction is per-site triage across many files, and most of the population must not be swept.

Why this was not visible before

#9180's own sweep table reports, for this repo:

objectstack | 0 generic; the /meta/objects/:name/state/:field hits are a declared route, not a tolerance | 4 — the client SDK | 41 ✅

That measurement was over code. It did not reach fixture data, checklist data, ledger notes, or docblock examples. The 2026-08-17 re-weigh then scoped step ③ to 「② 照原样做;只需要修正 objectstack objectui cloud 中错误的写法。」 — every incorrect internal spelling — and #10078 carved that into exactly two measured sites. Neither site list covers what is below.

The measurement (merged main2866d5f97e)

Population = the keys of META_URL_TO_SINGULAR (34 spellings), matched as a literal /meta/SPELLING or /metadata/SPELLING path segment across packages apps examples content skills scripts docs:

bucketsitesfilesdisposition
CHANGELOG.md8810⛔ frozen history, never edited
test files6935mixed — most are deliberate fold pins
source docblocks/comments3012mixed — some narrate the defect, some teach the plural
source code (non-comment)44all four are note:/prose STRINGS describing the fold, none emits a URL
docs + data fixtures137⭐ contains the live ones

⭐ The live ones — executable, and they emit a plural ITEM write

docs/qa/platform-checklist/areas/attachments-storage.json, steps 2, 3, 4 and one in the media block (lines 27, 34, 41, 84):

"call": "PUT /api/v1/meta/objects/qa_vault?package=com.objectstack.qa.attachments"
"call": "PUT /api/v1/meta/objects/qa_shared?package=com.objectstack.qa.attachments"
"call": "PUT /api/v1/meta/objects/qa_nofiles?package=com.objectstack.qa.attachments"
"call": "PUT /api/v1/meta/objects/qa_media?package=com.objectstack.qa.media"

These are instructions a QA run executes against a real app (the checklist-test skill drives them). So the repo does not merely mention the plural — it tells its own operator to send one, on the write door, in the item arity the ruling's sweep reported as zero for this repo. They answer 200 today only because the boundary fold tolerates them.

Two more that state the plural as the address rather than describing the tolerance:

⛔ What must NOT be swept — this is why it is triage, not sed

Reproduce

grep -rnoE '/meta(data)?/[A-Za-z_]+' --include='*.ts' --include='*.tsx' --include='*.mdx' \
--include='*.md' --include='*.yml' --include='*.json' packages apps examples content skills scripts docs

then keep only segments that are keys of META_URL_TO_SINGULAR (packages/spec/src/meta-spelling/meta-url-data.generated.ts).

Suggested shape

Smallest honest slice first: the 4 checklist call strings plus the 3 address-stating notes above — mechanical, answer-preserving (the fold means both spellings answer identically today), and it removes the only place the repo instructs a plural write. The test-file and docblock buckets want their own pass with per-site judgement, and each needs the fixture-triage question asked out loud: is this spelling incidental, or is it the coverage?

Part of #9180 step ③. Found while working #10078; not absorbed into it because it is outside that card's declared file surface.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions