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
{{ message }}
Repository navigation
Commit 2f6b2bf
Browse filesBrowse the repository at this point in the historyBrowse files
fix(types,plugin-tree): derive TreeViewConfig from the spec and drop titleField (#9052)
`@object-ui/types` published `TreeViewConfig` as a hand-written interface — a
copy of the protocol's `ListView.tree` block under a second name — and the copy
declared a fifth key, `titleField`, that `@objectstack/spec@17.4.0` REFUSES on
that block by name (`TreeConfigSchema` is a `strictObject` since spec #15469
closed the `.passthrough()` window 17.3.0 left open). This repo's published face
therefore accepted what the contract rejects: an author who followed
`@object-ui/types` was refused at publish.
Both divergences are addressed:
- the KEY — `titleField` is removed from the type, and `getTreeConfig`'s
`?? schema.titleField` rung goes with it. That rung read the flattened NODE,
never the block, and `titleField` is declared on neither face; it was also
unreachable from both in-repo producers of an `object-tree` node, each of
which floors `labelField` before the node is built.
- the COPY — `TreeViewConfig` is now `NonNullable<SpecListView['tree']>`, a
derivation rather than a rename of the spec's `TreeConfig`. The NAME is kept
(a consumer census found nine referencing files and no `TreeConfig` free in
the barrel); what is retired is the hand copy behind it, which is the half
that could drift.
The `Pick` interim objectui#8841 offered was conditional on the 17.4.0 bump not
having landed. It had: `chore(deps): take the 17.4.0 @objectstack/* line` moved
the lockfile to 17.4.0 four hours after this card was filed, so the plain alias
is available and no dependency is bumped here.
The three `labelField || titleField` dual-reads (plugin-view, plugin-list,
app-shell) are kept as undeclared tolerant fallbacks so stored view records keep
resolving and objectui#6557's pin stays green; retiring them is a follow-up. The
console's canonical rung stays annotated `TreeViewConfig`; its legacy rung is
deliberately left untyped rather than re-declared.
Both census pins are re-pinned as PARITY WITH THE PROTOCOL rather than as a
literal key list — a literal list is what let this drift through, since it was
maintained alongside the type it was supposed to audit.
Claude-Session: https://claude.ai/code/session_01Jmxdo7bmeqCQHLSfmLVX9w
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
0 commit comments