zeekay 9deb4713f2 Draw the new tab with the one shared composer
The answer page drew its own composer: a textarea showing the browser's
resize grip and focus outline, mode tabs and @source buttons inside the
box, and a boxed Auto Router select beside a dim send.  It now draws
@hanzo/ui 8.29.40's Composer, the one hanzo.ai draws: one 16px frame
with an even 1px edge, send only once there is text, and under the frame
one quiet line: the sources as chips, the model as `mind` and the mode
as `mode`, whose list shows each mode's note.  Toolbar.tsx is gone; its
lists live in answer/modes.ts.

The composer's paint is CSS in @hanzo/ui's glass.css, so newtab.ts
imports theme.css and the page's own newtab.css, and esbuild writes one
newtab.css beside newtab.js.  The page reads @hanzo/ui/primitives, not
the root barrel, whose root.js imports the 355KB styles.css.  newtab.css
now speaks @hanzo/design tokens only: it used to redeclare --border,
--surface-2, --glass and --radius*, which the composer's edge and gui's
$hover read.  The theme follows the device through @hanzo/appearance,
as on hanzo.ai, so the page has a light theme.

Top stories are cut from the composer's material: its ground, its edge,
radius 12, the column's width, a step of ink on hover, no shadow.

The catalog no longer serves `families`, so the picker had offered Auto
alone.  It answers the gateway's rows, so @hanzo/ui/models reads them
(fetchModelCatalog, can(m, 'chat')) and defaultModel picks Enso.

ModelSelector left @hanzo/ui at 8.27.61, so the sidebar's composer takes
the model as `mind` and RAG and Tab as chips.  Its peers come in at the
versions hanzo.ai pins: @hanzo/composer 0.2.0, @hanzo/voice 0.1.19,
@hanzo/i18n 0.5.4; @hanzo/appearance at 0.2.13, which 8.29.40 depends on.

newtab.js and sidebar.js grow to 1084 and 1080KB; the budget file says
where, by metafile.  Version 1.9.71: 1.9.70 is already published.
2026-11-01 16:23:09 -08:00
2026-10-31 14:56:59 -07:00
2026-09-29 12:24:30 -07:00

extension

Hanzo extensions

Hanzo AI inside every browser, editor and work app. One pnpm workspace; every build lands in dist/.

make install
make build                  # everything
make build target=chrome    # one target
make test
make check                  # the CI gate: build, test, bundle budget, e2e

Browser

Target Source Load
Chrome, Edge, Brave packages/browser chrome://extensions → Developer mode → Load unpacked → dist/chrome
Firefox packages/browser about:debugging#/runtime/this-firefox → Load Temporary Add-on → dist/firefox/manifest.json
Safari packages/browser dist/safari-xcode (built on macOS with Xcode)

Everything else

Kind Packages
Editors, notebooks vscode, jetbrains (Gradle), jupyter
Desktop desktop, dxt (Claude Desktop)
Documents, email office (Word, Excel, PowerPoint), outlook, gworkspace (Docs, Sheets, Slides, Gmail), notion, pdf
Design figma, sketch, canva
Chat, meetings slack, teams, meetings (Zoom, Meet)
Code hosts github, gitlab
Business apps salesforce, hubspot, zendesk, shopify, quickbooks, workday, docusign, clio, imanage, procore, epic, canvas-lms
Shared libraries auth, cards, aci, mcp
Download site apps/site

Each lives at packages/<name> with its own README; its build is linked at dist/<name>.

Release

Bump packages/browser/package.json (patch only) and merge to main. The publish workflow ships a version npm does not have yet to the Chrome Web Store, Firefox Add-ons and npm.

S
Description
🧩 Hanzo Extension: IDE plugin for VS Code compatible IDEs.
Readme MIT
16 MiB
Languages
TypeScript 87.1%
JavaScript 5.2%
HTML 3%
CSS 2%
Kotlin 1.2%
Other 1.4%