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
fix(client): declare the response the meta reset door actually sends on both deleteItem twins (#13148)
* fix(client): declare the response the meta reset door actually sends
Both `deleteItem` declarations — the unscoped `ObjectStackClient.meta` and the
environment-scoped `ScopedEnvironmentClient.meta` twin — declared
`Promise<{ type: string; name: string; deleted: boolean }>`. That shape is not
merely imprecise, it is uninhabited: `DELETE /meta/:type/:name` ends in
`res.json(result)` with `deleteMetaItem`'s return, and not one of that method's
four return branches carries `type`, `name` or `deleted`. So a caller who
branched on the documented `deleted` flag read `undefined` — falsy — on every
reset, including the ones that really removed an overlay row.
Both twins now BIND `DeleteMetaItemResponse`, the type `@objectstack/spec`
already exported, rather than transcribing its members: a hand-written member
list is the same defect one layer up. The wire is untouched.
`os meta delete` read the phantom key too and now reports `result.reset`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UjujZN219uFzBhSYfMykCd
* test(client): re-judge the two wire-extras pins #13208 falsified by design
DeleteMetaItemResponseSchema now declares seq and projectionApplied
(#13208, issue #13155), so the @ts-expect-error pins asserting they were
undeclared became unused suppressions. Re-judged as positive reads: the
keys are reachable from the bound type, and a schema regression dropping
either reds these as TS2339. Function renamed to say what it now pins.
---------
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments