@hanzo/event 0.3.39 and 0.3.40 carry a Hanzo key whose project no
longer exists, so the ingest door answers every beacon from gui with
403 ingest_key_unknown. 0.3.41 carries the current keys. The telemetry
package asks for it, and an override lifts the copy @hanzo/observe
pins to the same version.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
apps/team moved to hanzo-apps/team with its history, and builds there
against the published @hanzo/gui. It leaves the workspace list, the
lockfile, and the Written-at-Hanzo list in every NOTICE (ten names
become nine).
Co-authored-by: Hanzo Dev <[email protected]>
The loader and the Next plugin only existed to drive webpack; Next runs
on Turbopack and Vite has its own plugin. kitchen-sink and the
integration app serve through vite, the optimizer suite drops the
webpack name, and its fixture packages join the workspace so a fresh
checkout links @my/ui.
kitchen-sink and sandbox drive a browser against a dev server, and
kitchen-sink-go a Maestro run on an iOS simulator; each has its own
lane, and the release gates on the unit suites like CI.
Co-authored-by: Hanzo Dev <[email protected]>
kitchen-sink drives a browser against a webpack dev server; hanzo.yml
already keeps it out of the unit gate, and the release now reads the
same list.
Co-authored-by: Hanzo Dev <[email protected]>
Every published manifest now states the same exports: types, the
native emit where the package builds one, ESM under import and
CommonJS under require, with src, types and dist in files. The nine
packages that read import.meta do so in one here.ts each, with a
here.cjs.ts sibling for the CommonJS emit; the stragglers on bun,
esbuild, plain tsc or hand-written shims build with the runner like
everything else, and the root-level .cjs shims that pointed at emits
no build produces are gone, as is the vite-plugin-cjs mirror.
Co-authored-by: Hanzo Dev <[email protected]>
Babel and esbuild were never here for TypeScript. Babel carried the static
optimizing compiler and one plugin that appended extensions to esbuild's
emitted imports; source now names its own extensions and the compiler rewrites
them on emit. A sixty-line runner replaces the tool: an ESM emit with
declarations, a CommonJS emit where a manifest states a require entry, and a
native emit where a .native sibling takes its sibling's name. The compiler
packages keep Babel as their own substrate; nothing else runs over the code.
Eighteen packages still carry type errors the previous tool never checked.
Nothing in the repo declared Babel 7; the root override pinned it while every
package asked for 8. The fixture tsconfigs named downlevelIteration, which
TypeScript 7 removed, and the base-url flag named an option that no longer
exists.
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.
The config was written for a compiler that no longer accepts it: `module: System`,
`moduleResolution: node10`, `baseUrl` and `downlevelIteration` are all removed in
TypeScript 7, and non-relative `paths` targets now need a leading './'. tsgo
reported 692 config errors across ~115 project tsconfigs before this; it reports
zero after.
Measured, not assumed. On apps/kitchen-sink the two compilers agree exactly —
2321 errors at identical file:line:code — and tsgo runs it in 6.0s against tsc's
34.1s. The one diagnostic tsc lacks is TS2882 (side-effect import with no type
declaration), which apps/gui.hanzo.ai/css-modules.d.ts now answers for '*.css'
and for '@docsearch/css', whose specifier carries no extension for the wildcard
to match.
The change is also not the cause of this repo's standing type errors: the same
project reports 2335 errors under the old System/node10 settings and 2321 under
these, so the migration removes fourteen and adds none. Those ~2321 pre-existing
TS2322 errors are a separate problem — committed types/ has drifted from src/ —
and are unrelated to which compiler runs.
Emit is untouched: hanzogui-build still calls the TypeScript API for .d.ts.
Co-authored-by: Hanzo Dev <[email protected]>
The transplant rebuilt the tree on upstream tamagui and carried our own
packages forward by hand, which silently lost seven @hanzo_network/*
packages and apps/team — 735 files with no other home in the workspace.
They are back at the tip of the old lineage's content.
pkgs/ai is NOT restored: @hanzo/ai is published from hanzo-js/ai, so a
copy here would be the duplicate we are trying to avoid.
templates/expo-router is NOT restored: apps/starters/expo-router already
declares that exact package name upstream.
Also fixes a rebrand defect: the blanket tamagui->hanzogui rule rewrote
upstream's GitHub path into github.com/hanzogui/hanzogui, a repo that has
never existed, and it shipped in repository.url for every published
package. The transform now maps the remote to hanzoai/gui and repairs a
tree already branded wrong, so a future sync cannot reintroduce it.
Co-authored-by: Hanzo Dev <[email protected]>
This repo could never sync. There was NO merge-base with tamagui — 372 commits
here against 15,791 there, unrelated histories — because it began as a
copy-paste rebrand with a flattened layout. Every "sync" since was a hand
re-application that drifted, which is why the tree sat on 7.3.1 while upstream
shipped fixes we then rediscovered by hand.
This commit's PARENT IS TAMAGUI. A future sync is `git merge tama/main` then
`node scripts/rebrand.mjs` — a real merge, because the history is now shared.
174 packages: 166 upstream, our 8 restored (chrome, shell, telemetry, recipes,
get, font-geist-{sans,mono}, @hanzo/booker), bento-get gained. 170/170 build.
Our patches to files UPSTREAM ALSO OWNS are carried, which the package-level
delta missed and which was where the value actually was:
- useMedia's server snapshot (`initState ?? getMedia()`). Upstream still
returns undefined there, so every Tamagui Dialog kills a prerender — the
exact crash hanzo.app spent a day on.
- data-slot on web host nodes, absent upstream entirely.
Both applied ONTO upstream's newer files (it rewrote useMedia +150/-63 and
createComponent +160/-55), marked `PATCH (ours, carried across the transplant)`.
Seven traps are encoded in scripts/rebrand.mjs, each found by a gate:
skip itself and lockfiles; special-case the double-branded names in BOTH scoped
and bare form; map path strings, not just paths; drop a level for the flattened
group; check disk rather than a stale index.
Rust build artifacts are NOT committed. An earlier draft of this commit swept
apps/desktop/src-tauri/target/debug in via `git add -A` — 3,859 files including
a 272MB .a, over GitHub's 100MB cap, so the push could never have landed. They
are gitignored now.
Co-Authored-By: Hanzo Dev <[email protected]>
Replaces Dependabot with a bun audit CI gate; fixes all 5 critical advisories via root overrides (handlebars, protobufjs, shell-quote, vitest, happy-dom). Vulnerable modules 54->21, criticals 5->0. Gate: bun audit --audit-level critical, no ignores.
- switch integration test to rnw-lite (avoids inline-style-prefixer CJS interop)
- fix integration test process cleanup (detached groups, separate ports)
- add inline-style-prefixer to vite plugin optimizeDeps
- enable fixVite8SymlinkExportResolutions in sandbox
- fix trailing comma in build package.json
- ignore UNSORTED_DEPENDENCIES manypkg rule
- Add 'browser' condition to package exports for web bundler compatibility
- Change 'default' export from CJS native to ESM for proper web fallback
- Add test:web script to expo-router-starter for CI
- Add test:native task to turbo.json
This fixes module duplication issues where Metro and other bundlers would
load both ESM and CJS versions of tamagui packages, causing context mismatch
errors like 'Missing theme' during hydration.