The purpose-prefixed labels (hanzo-build-*, hanzo-deploy-*, hanzo-docs-build-*)
are retired in favour of the bare <os>-<arch> every runner already advertises.
They were not a capability, only a habit, and the habit cost builds: papers asked
for hanzo-build-linux-amd64, no online runner offered it, and two idle
linux-amd64 runners sat beside the queue while the build simply never ran. The
lux tree lost three days to lux-linux-amd64 the same way.
What a job is FOR is the workflow's name. runs-on is the machine it needs.
Co-authored-by: Hanzo Dev <[email protected]>
The forge reads .github/workflows natively and github.com reads nothing else,
so one directory serves both planes instead of two conventions that disagree
about which one is live. The reusable in hanzoai/ci already lives there, so a
caller naming that path now resolves to a file that exists.
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]>
Import order only, one line per file. These sat unformatted because fmt.yml
filtered on pushes to `main` while this repo's default branch is `master`, so
the check had nothing to look at on the branch every commit lands on. With the
filter corrected the gate ran and named them immediately.
Co-authored-by: Hanzo Dev <[email protected]>
Two of the eight workflows carry value that runs here; six were bound to
PostHog's own GitHub org and could never resolve on this forge.
Moved, with the two things that kept them from working:
fmt.yml, unit-tests.yml both pinned setup-go to 1.21 while go.mod declares
1.26.4, so the toolchain refused the module before any check ran. They read
go-version-file: go.mod now, and checkout moved ahead of setup-go so that
file exists when it is read. Their push filter also named only `main`, and
the default branch here is `master` -- pushes to the branch everything lands
on matched nothing. Both branches are listed.
Dropped, with what each cost:
release.yml PostHog's release pipeline end to end: a GitHub App
token, changeset-driven bumps of version.go,
planetscale/ghcommit-action, `gh release create`,
GitHub environment approvals read back through
`gh api .../approvals`, and Slack notifications
through posthog/.github reusables. None of those
surfaces exists here, so releases are cut by hand.
sdk-compliance.yml called PostHog/posthog-sdk-test-harness. Reusable
workflows resolve against this forge, where that repo
does not exist, so SDK compliance is untested in CI.
call-flags-project-board.yml, lint-pr.yml
PostHog/.github reusables driving a project board and
conventional-commit title checks off pull_request
metadata -- GitHub API surfaces with no local address.
codeql.yml uploaded SARIF to GitHub code scanning; no such
service here.
stale.yaml aged out issues and pull requests. It was the only
thing that had been going green on master, which is
the point: the repo now runs a build and a test
instead of an issue sweep.
Note for whoever picks this up: branch `main` is three commits ahead of master
and carries its own hanzo.yml plus .hanzo/workflows/cicd.yml. That lineage is
untouched here and still needs a merge decision.
Co-authored-by: Hanzo Dev <[email protected]>
The README is the product's front door and carries our brand. NOTICE is where a
fork's provenance is legally required to live, and it is the file a licence audit
reads. Naming the upstream in the README put attribution in the one place nobody
checks for it and branding in a place that had to share.
Where the NOTICE already named the same upstream, the moved line was dropped
rather than duplicated, and markdown link syntax was flattened -- NOTICE is plain
text, not a rendered document.
Co-authored-by: Hanzo Dev <[email protected]>
The module declares go 1.27.1 and the adapter image follows. go fix
applied the modernizers and left ptrString and ptrBool with no callers,
so they are gone; omitzero is not applied, since it changes what the
JSON says.
Co-authored-by: Hanzo Dev <[email protected]>
github.com has no runner for hanzo-build-linux-amd64, so a caller under
.github/workflows is a gate that can never be scheduled. This is the ~7-line
caller on the plane that can (git.hanzo.ai git-runner fleet), pinned @v1.
Co-authored-by: Hanzo Dev <[email protected]>
The build refused before compiling anything:
go: go.mod requires go >= 1.26.4 (running go 1.21.13; GOTOOLCHAIN=local)
The workflow set up Go 1.21 while go.mod requires 1.26.4, and GOTOOLCHAIN=local
forbids fetching a newer toolchain — so the two could never agree.
go-version-file reads the requirement from go.mod, which means they cannot drift
apart again the next time the module moves.
Co-authored-by: Hanzo Dev <[email protected]>
The SDK-compliance workflow hands sdk_compliance_adapter/Dockerfile to the
PostHog test harness on every PR and push to main, and that Dockerfile still
pulled golang:1.21-alpine against a go.mod requiring 1.26.4. GOTOOLCHAIN=local
in the official golang images makes that a hard failure rather than a
toolchain download.
Pin to 1.26.5 and set GOTOOLCHAIN=auto so a future go.mod bump resolves
itself instead of breaking the compliance run.
Co-authored-by: Hanzo Dev <[email protected]>
Rename Go package from posthog to insights across all 80+ files.
Consumers now import as `insights "github.com/hanzoai/insights-go"`
and use insights.Client, insights.Config, insights.Capture, etc.
- Rename posthog.go -> insights.go, posthog_test.go -> insights_test.go
- Update package declaration from posthog to insights in all .go files
- Update SDKName from posthog-go to insights-go
- Update DefaultEndpoint from app.posthog.com to insights.hanzo.ai
- Update all FieldError/ConfigError type strings
- Update User-Agent headers, log prefixes, comments, and docs
- Update JSON test fixtures to match new SDK name
- Update CLI, examples, extras, and sdk_compliance_adapter
- Fix pre-existing go vet warnings (non-constant format strings)
- Update module path from github.com/posthog/posthog-go to github.com/hanzoai/insights-go
- Update all imports in source files, tests, and examples
- Update README documentation