Files
zeekayandHanzo Dev aa0a99d212 event: one wire, one door, one client — this repo serves none of them
The measurement product is ONE product and it lives in hanzoai/cloud:
apps/analytics owns /v1/analytics and the ingest door /v1/event. This repo was a
second implementation of that surface in four places, and all four are deleted.

1. POST /v1/event (src/app/v1/event/route.ts). It took a BARE JSON ARRAY of
   {site, ts, type, path, ref, props, anon, sid, w, h} on a path spelled
   identically to cloud's front door, which takes {batch:[…]}. Measured, live:

     POST api.hanzo.ai/v1/event       {"batch":[]}  -> 200 {"accepted":0,"dropped":0}
     POST analytics.hanzo.ai/v1/event []            -> 204

   One path spelling, two protocols, two servers — so a @hanzo/event client
   pointed at the wrong host failed silently. One door survives and it is
   cloud's. getWebsiteByHost, whose only caller this was, goes with it.

2. public/hz.js -> hanzoai/ui pkgs/event (@hanzo/[email protected], commit b64341c).
   The tag is a CLIENT, and the house has one client home. There it is the
   script-tag distribution of @hanzo/event: same WireEvent batch, same
   POST {host}/v1/event, default host api.hanzo.ai, on the CDN as
   unpkg.com/@hanzo/event/hz.js — with its DOM autocapture intact.

3. collector/ — a THIRD event collector, its own Go module, deployed nowhere in
   universe, forwarding to insights-capture.hanzo.svc:3000, a service that no
   longer exists.

4. src/lib/insights-forward.ts, its call site in src/app/api/send/route.ts and
   its INSIGHTS_HOST / INSIGHTS_API_KEY env — fire-and-forgetting every event at
   that same deleted service.

What remains is a Umami fork holding per-site history in its own Postgres, with
no /v1/* surface and no client. LLM.md says so, and says not to add one back.

3.0.11 -> 3.0.12.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-01 11:37:17 -07:00

66 lines
1.2 KiB
JSON

{
"$schema": "https://biomejs.dev/schemas/2.3.6/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"includes": ["**", "!!**/dist"]
},
"formatter": {
"enabled": true,
"lineWidth": 100,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf"
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"a11y": "off",
"correctness": {
"useExhaustiveDependencies": "off"
},
"style": {
"noDescendingSpecificity": "off"
},
"complexity": {
"noImportantStyles": "off"
},
"suspicious": {
"noArrayIndexKey": "off",
"noExplicitAny": "off",
"noImplicitAnyLet": "off"
},
"performance": {
"noImgElement": "off"
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"trailingCommas": "all",
"arrowParentheses": "asNeeded"
}
},
"css": {
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf"
}
},
"assist": {
"enabled": true,
"actions": {
"source": {
"organizeImports": "on"
}
}
}
}