You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
saveMetaItem's spec-validation 422 message restates its issues[] on the envelope, but message-only faces (duplicatePackage failed[].error) forbid the #10524 trim until they declare a structured channel #10888
Found and measured while implementing #10524 — a fourth site of that card's family, beyond the three in the PM's table there. Trial-trimmed during that card and deliberately reverted; filing with the measurement so the revert is not misread as "nothing to fix".
err.issues = issues — and the HTTP boundary carries it in details.issues.
On the HTTP 422 face both channels ride the same response: every console rendering both shows each finding twice — the exact #10524 shape, on the save door.
Why the trim was reverted there (the load-bearing measurement)
Trimming this message to the #10524 headline turned three GUARD pins red, and they were right:
protocol.batch-verb-driver-text.test.ts — "P10 keeps saveMetaItem's spec-validation prescription in full": duplicatePackage's failed[].error quotes this message without threading issues, and the pin holds the author's prescription ("Unrecognized key(s) on this view container…", the defineView( spelling) to that string — on that face the message is the sole carrier.
So the declare-then-trim order applies one level up: first inventory the faces that quote this message (duplicatePackage.failed[], migrateStoredMetadata.rows[].reason, any other clientFacingFailureText sink) and declare/thread a structured channel on each, then trim. #10524 did exactly that for the batch-publish and seed faces; this card is the same two-step for the save-door message's remaining faces.
Also worth deciding together: a headline for this site degrades worst on root-level union failures (locators become <root> [invalid_union]; <root> [unrecognized_keys] — key names only in issues[]), so the headline grammar may want the unrecognized key names, not just paths, hoisted into the locator.
Back-link: #10524's PR carries the trial-trim diff and the red-pin evidence.
Found and measured while implementing #10524 — a fourth site of that card's family, beyond the three in the PM's table there. Trial-trimmed during that card and deliberately reverted; filing with the measurement so the revert is not misread as "nothing to fix".
The duplication (real, at
4d7c5645eb)packages/metadata-protocol/src/protocol.tssaveMetaItemoverlay validation (~:13306-13318):zodIssuesToMetadataIssues(parsed.error.issues)→issues({ path, message, code? })issues.slice(0, 3).map(i =>${i.path}: ${i.message})+(+N more)err.issues = issues— and the HTTP boundary carries it indetails.issues.On the HTTP 422 face both channels ride the same response: every console rendering both shows each finding twice — the exact #10524 shape, on the save door.
Why the trim was reverted there (the load-bearing measurement)
Trimming this message to the #10524 headline turned three GUARD pins red, and they were right:
protocol.batch-verb-driver-text.test.ts— "P10 keepssaveMetaItem's spec-validation prescription in full":duplicatePackage'sfailed[].errorquotes this message without threadingissues, and the pin holds the author's prescription ("Unrecognized key(s) on this view container…", thedefineView(spelling) to that string — on that face the message is the sole carrier.protocol.save-union-issues.test.ts— two pins holding the 元数据保存的 422 也丢掉 union 分支处方:一个 view 保存失败只回一条path:"" message:"Invalid input",Studio 无字段可高亮 #5364 union-expansion prose ("Unrecognized key(s)", the container prescription) to the message.So the declare-then-trim order applies one level up: first inventory the faces that quote this message (
duplicatePackage.failed[],migrateStoredMetadata.rows[].reason, any otherclientFacingFailureTextsink) and declare/thread a structured channel on each, then trim. #10524 did exactly that for the batch-publish and seed faces; this card is the same two-step for the save-door message's remaining faces.Also worth deciding together: a headline for this site degrades worst on root-level union failures (locators become
<root> [invalid_union]; <root> [unrecognized_keys]— key names only inissues[]), so the headline grammar may want the unrecognized key names, not just paths, hoisted into the locator.Back-link: #10524's PR carries the trial-trim diff and the red-pin evidence.