12 Commits
Author SHA1 Message Date
zeekayandHanzo Dev 2e39f0248d Go 1.27.1, and the code it can say more simply
Modules declare go 1.27.1 and the build images follow. go fix applied the
modernizers, and the stream request helper is now a generic method on
Client; omitzero is not applied, since it changes what the JSON says.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-16 19:23:22 -07:00
zeekay 8f73ecd09a carry the github copy onto the forge
github.com held commits this host lacked, which refuses the mirror push
("fetch first") and stops github receiving anything at all. Merging rather
than overwriting, so the mirror is a fast-forward again and neither side's
work is dropped.
2026-08-20 21:54:25 -07:00
zeekay 47adbe3635 run on the native fleet
Adds .hanzo/workflows/cicd.yml calling the canonical pipeline and drops the
GitHub-hosted workflows it replaces. Lands here because this is where the repo
is written — git.hanzo.ai is upstream and github.com is its push mirror, so the
same change made on github.com never reaches the runner fleet.
2026-08-20 20:12:21 -07:00
zeekay de6af5dce6 add the NOTICE this fork owes its upstream
Apache-2.0 §4(c) asks a derivative work to carry the attribution of what it was
built from. This tree carried none: LICENSE was the unmodified boilerplate with
its copyright line still the [yyyy] [name of copyright owner] placeholder, and
no NOTICE existed. The upstream is named directly here.
2026-08-20 09:59:55 -07:00
zeekay ce1d2c7960 ci: retire the dead .github lane, fold its gate into hanzo.yml
.hanzo/workflows already exists, and the forge resolves the first workflow
directory that exists rather than the union — so these three have run nothing
here since it landed. Removing them makes that visible in the tree.

The sanity check's real content is now in hanzo.yml: `go vet` and the race
detector join the build and test that were already there. Lost with it:
golangci-lint and the Codecov upload, which reports to a SaaS bound to GitHub.

close-inactive-issues.yml drops as GitHub issue automation. integration-tests.yml
drops because it drives the live OpenAI API and no key is declared on this repo
or the hanzoai org, so it could only ever have failed; API-contract coverage is
lost until one exists.
2026-08-13 21:12:10 -07:00
zeekayandHanzo Dev c8ca2910d4 ci: canonical pair — hanzo.yml + forge caller
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]>
2026-08-06 02:38:24 -07:00
zeekayandHanzo Dev f83e1080f5 chore(go): bump go directive to 1.26.5
Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 11:07:44 -07:00
zeekayandHanzo Dev 6168c092c9 jsonschema: emit properties:{} again — value receiver + no omitempty
MarshalJSON had drifted to a pointer receiver while Properties gained
`,omitempty`. Together those defeated the nil->empty-map fill: encoding/json
never invokes a pointer-receiver MarshalJSON on non-addressable values (map
entries, a Definition passed by value), and omitempty drops the empty map even
when it does. Nested schemas therefore lost the "properties":{} that OpenAI
requires on object schemas — the exact bug #419/#434 fixed.

Value receiver restores the guarantee for map entries and by-value marshals;
dropping omitempty lets the filled empty map through. TestDefinition_MarshalJSON
(got and gotPtr) passes again.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 15:43:22 -07:00
zeekayandHanzo Dev 88762272c3 refactor(module): declare own import path github.com/hanzoai/go-openai
The fork kept the upstream module path (module github.com/sashabaranov/
go-openai), so every consumer could only reach it through a
"replace github.com/sashabaranov/go-openai => github.com/hanzoai/go-openai"
directive — and Go replace directives do NOT propagate to consumers, so each
downstream repo had to copy the same replace or fail to compile against
fork-only fields (e.g. ReasoningContent). That is the opposite of one-and-
only-one-way.

Declare the fork's OWN module path so it can be required directly and inherited
transitively. Package name stays 'openai' (import identifier unchanged); only
the module path + internal self-imports (/internal, /jsonschema) are renamed.
Upstream issue-URL comments are left intact as attribution. Builds + vets clean.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-17 21:55:51 -07:00
zeekay fc6a641ca6 docs(brand): add hero banner 2026-06-28 20:31:49 -07:00
zeekay c954e4f6fd chore(brand): dynamic hero banner 2026-06-28 20:31:48 -07:00
zeekay 4a7c62c270 fix: restore original module path for replace directive compatibility 2026-02-22 12:29:32 -08:00