Skip to content

plugin-gantt README's navigation example shows basePath, which no read site consumes and the spec's NavigationConfigSchema refuses #6050

Description

@yinlianghui

Measured while declaring the cast-read gantt keys for #5903 (that card's scope is
the ObjectGanttSchema declaration, not the README, so this is filed rather than
fixed there).

The fact

packages/plugin-gantt/README.md:48 documents the record-navigation override as:

Override by setting `navigation` on the schema, e.g.
`{ mode: 'page', basePath: '/console/apps/.../campaign' }` to route
to the standalone detail page instead.

basePath is not a navigation key.

  1. Nothing reads it. A repo-wide grep for basePath finds it only in
    packages/providers/src/UploadProvider.tsx (upload storage prefix) and
    packages/auth/src/createAuthClient.ts (better-auth URL split). Neither is
    reachable from useNavigationOverlay, which is where a gantt's navigation
    config lands.

  2. The spec refuses it.navigation is the spec's NavigationConfig, and
    NavigationConfigSchema declares exactly six members —
    mode view preventNavigation openNewTab size width — with no
    passthrough. So the documented example is not merely inert, it fails
    validation. Measured directly while writing ObjectGantt reads 11 top-level schema keys that ObjectGanttSchema does not declare — all via as any, so nothing connects read to declaration #5903's pin test, which used the
    README's example verbatim as its "well-typed" fixture:

    code: 'unrecognized_keys',
    keys: [ 'basePath' ],
    path: [ 'navigation' ],
    message: 'Unrecognized key(s) on this navigation configuration: `basePath`. …'
    

    That failure is how this was found — the README example was the fixture.

Why it is worth a card

It is the #5057 / #5012 shape again on a key those cards did not reach: an
author copying the documented snippet gets a rejected navigation config, and
mode: 'page' — the thing the sentence is actually teaching — never takes
effect. The correct spelling for "which detail surface" appears to be the spec's
view member, but which member the sentence means is a judgement about intent,
not a mechanical substitution, which is why this is filed rather than patched.

Not in scope of #5903

#5903 is ObjectGanttSchema's declaration surface. Its PR does remove the
phantom from the one place it had just been copied into — the new
ObjectGanttSchema.navigation doc comment, which had been drafted from this
README line — and records there that no read site consumes it. The README itself
is untouched.


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatched

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions