A version written into a manifest is written into every manifest that wants it,
which is how eslint came to exist in a hundred and four forms across this estate
and how a package came to resolve twice at run time. The catalog moves the number
out of the manifest: a manifest names the package, the workspace names the
version.
Four are held below their latest because the newer release cannot be used, and
the reason is recorded rather than the version alone: @noble/hashes 2 renamed
every subpath the web3 stack imports, @splinetool/runtime 2 depends on a package
that was never published, @dynamic-labs 5.4.1 the same, and react-resizable-panels
3 points its types condition at the bundle.
Co-authored-by: Hanzo Dev <[email protected]>
Every dependency on a @hanzo/@luxfi/@zooai package now names the same version
across the repo: a catalog entry where pnpm supports one, an exact pin where it
does not, and a range only where a peer genuinely means one.
pnpm itself is pinned too — the estate ran eighteen different versions, five of
them too old to read a catalog.
Co-authored-by: Hanzo Dev <[email protected]>
Scira was one of five AI entries in the "Open" dropdown and the only one
nobody here can name a reader for. It goes.
ChatGPT, Claude and Cursor stay. They are not our stack wired to a
competitor's — they are a hyperlink that hands the reader's OWN tool the
URL of the page they are looking at. No key, no call, no data path of
ours. The one that IS our stack, Enso -> hanzo.chat, already sits first
in the list and stays first.
Removed in all six places it lived, not just the one that renders:
base-ui AND radix-ui both carry a copy of page-actions and of the
`pageActionsOpenScira` key, and the zh-CN/zh-TW packs translated it. A
key left in a locale pack after its entry is gone is a dangling string
that the next translator faithfully re-translates.
Co-authored-by: Hanzo Dev <[email protected]>
The per-page Open popover deep-linked Scira, ChatGPT, Claude and Cursor with a
read-this-page prompt while Hanzo's own assistant was absent from Hanzo's own
pages. Add the Enso item before the third-party links: it opens hanzo.chat/c/new
with an edit-intent prompt carrying the page URL (chat's composer prefills from
?q=), and the raw MDX every page already exports beside itself gives the
assistant the exact source being edited.
Title and prompt ride the existing i18n contract (pageActionsOpenEnso,
pageActionsEditInLLMPrompt) in both UI twins and both locale packs; the edit
intent stays a distinct value from the ask intent. Tests pin the keys across all
four translation surfaces and that rendering substitutes the URL without
residue.
Co-authored-by: Hanzo Dev <[email protected]>
The fumadocs-fork rebrand left ~13 apps + examples referencing packages under
names that don't exist in the workspace (in BOTH directions: some kept
fumadocs-*, some became @hanzo/docs-*). pnpm install failed outright. Mapped
every reference (deps + imports, 607 source + 61 package.json) to the package
that actually exists, by suffix:
@hanzo/docs-{core,mdx,ui,base-ui} → fumadocs-{core,mdx,ui} / @fumadocs/base-ui
@fumadocs/{story,cli,mdx-remote,tailwind} → @hanzo/docs-{story,cli,...}
fumadocs-{docgen,epub,twoslash,typescript} → @hanzo/docs-{...}
drop phantom eslint-config-custom
Guarded @hanzo/docs-mdx vs -mdx-remote. Also fixes a pre-existing cli bug
(createConfigSchema referenced undefined isSrc) that blocked the package build.
Verified: pnpm install resolves clean (46.8s, was broken); package dist
regenerates phantom-free from the corrected source (hanzo-docs 430→0). Full
app build-green is blocked only by a node v26 toolchain bug in fumadocs-mdx's
config loader (repo targets node >=24.14; CI node builds it).