These lines are written by the build, and the catalog has moved since they were
last written. Committing the build's own answer keeps the record true instead of
showing a version that is no longer inside the tarball.
Co-authored-by: Hanzo Dev <[email protected]>
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]>
c04da7fb6 took 334 upstream commits and resolved the conflicts by keeping this
fork's import lines above upstream's bodies. The bodies then reached for names
nothing imported — useMemo, CheckIcon, LinkIcon, useApiClient, compile,
ExampleRequestItem, RequestTabsRenderContext, TranslationValue,
TranslationsAPIExtension, ClientBoundary, processDocument — 24 type errors in a
package that kept publishing, because tsdown does not type-check. Each one is
restored from where upstream imports it, under our name for the fork.
renderResponse was the one that was not an import. The resolution kept our
`{tabs.map(renderResponse)}` and took upstream's rewrite of the function above
it, which had inlined that body and deleted the definition — a call with no
callee. Reconstructed from upstream's inlined form, keeping the fork's deltas
(base-ui tabs, and hanzo_docs_openapi_requests to match the responses group id
rather than leak the upstream brand into a storage key).
Three fixes come with it, all the same merge:
- fetcher returned the old {status,type,data} error shape from a `data`
parameter it called `options`, against upstream's new FetchResult union.
- request-tabs and schema/client carried imports for symbols they never use,
two of them from the Radix package.
- openapi-sampler goes: upstream replaced it with @/utils/schema/sample and
response-tabs was the last importer still pointing at the package.
63 tests pass — three suites could not even import test/utils before this.
Co-authored-by: Hanzo Dev <[email protected]>
Three things the workspace disagreed with itself about.
Versions. apps/docs ran ahead on next 16.2.6 / react 19.2.6 / TS 6, the other
21 apps trailed on next 16.1.6 / react 19.2.3 / TS 5.9.3, and the packages sat
somewhere between with five different @types/react pins. Everything is now on
the newest patch of the line it was already on — react 19.2.8, next 16.2.12,
@types/react 19.2.18, @types/react-dom 19.2.4 — and the TS-5 stragglers join
the TS 6.0.3 the root and every package already used. No majors were invented:
6.0.3 IS the top of the 6.x line, and TS 7 is blocked because [email protected]
declares `typescript: ^5.5.0 || ^6.0.0`.
The duplicate key. next.config.mts declared `transpilePackages` twice in one
object literal, so the later list won and @hanzogui/shell and @hanzo/brand had
never been transpiled — the comment explaining why they must be outlived the
setting it described. tsc had been reporting this the whole time as
next.config.mts(193,3) TS1117; the app's `types:check` never reaches tsc (its
script starts with a bare `@hanzo/docs-mdx`, which is not the bin's name and
fails immediately), so nobody saw it. One list now, both groups in it.
Dead weight. Twelve packages apps/docs declared and no file, config, script or
browserslist field referenced: @radix-ui/react-dialog, @floating-ui/react-dom,
@mixedbread/sdk, @orama/orama, openapi-sampler, react-remove-scroll,
algoliasearch, gray-matter, tinyexec, tinyglobby, @types/three (types for a
package that isn't installed) and shadcn (no components.json exists anywhere in
the repo, so the CLI was never initialized). The ones that are real
dependencies of packages/openapi, packages/core and packages/cli keep their own
copies — pnpm's node_modules is isolated, so nothing lost a resolution.
@orama/core stays: apps/docs/app/static.json/route.ts pulls OramaDocument
through @hanzo/docs-core/search/orama-cloud, which types against it.
Verified against a clean worktree at HEAD, since the working tree carries
gigabytes of untracked synced project docs that CI never checks out:
turbo build, apps + packages 43/52 before, 43/52 after, same 9 failures
docs export 1764 html pages, byte-identical page count
deploy.yml gate index/docs/services present, /docs has nav
tsc --noEmit in apps/docs 325 errors before, 324 after (the TS1117)
vitest 169 passed / 13 failed, both sides
The 9 build failures and 13 test failures are unchanged from HEAD and none are
version-related: 7 sibling apps cannot resolve @hanzo/mdx:collections/server
under `next build --webpack`, zen-docs has a committed docs/server.ts importing
a deleted zen5-coder-flash.mdx, and packages/preview cannot resolve its own
@/lib/source alias under waku/vite.
Co-authored-by: Hanzo Dev <[email protected]>
openapi/story/cli/python imported @hanzo/docs-base-ui (and others) without
declaring it. Under pnpm strict isolation Turbopack resolves from the importing
package's node_modules and couldn't find base-ui's subpath exports
(components/ui/button, components/tabs, utils/use-copy-button) — webpack was
lenient. Declare the missing workspace deps so resolution is deterministic.
The docs Next build failed on 24 unresolved modules, so no content pages
ever shipped (every /docs sub-page 404s live). Root causes, all fixed:
- @hanzo/docs-openapi dist leaked its internal `@/` path alias
(`@/utils/schema-to-string`, `@/playground/*`, `@/requests/*`) because
tsdown ran with unbundle:true and no alias mapping. Add
`alias: { '@': src }` so the built dist resolves to relative paths.
- @hanzo/docs-openapi imported `openapi-sampler` without declaring it — add
it as a dependency so consumers can resolve it.
- apps/docs imported packages it never declared (phantom deps under pnpm's
strict node_modules): @hanzo/docs-base-ui, @hanzo/logo, @hanzo/iam,
@radix-ui/react-select, @radix-ui/react-slot, openapi-sampler. Declare them.
- lib/source imports the bare `collections/server` specifier but only
`@hanzo/mdx:collections/*` was aliased. Alias the bare form too.