40 Commits
Author SHA1 Message Date
zeekay 68063c0467 chore: sync working tree
Commits 1 outstanding change(s) that were sitting uncommitted.
No build artifacts and no secrets in the changeset (both checked).
2026-07-26 10:01:48 -07:00
zeekayandHanzo Dev 59c8f2c92a fix(zap): length-tolerant InitializeResponse decode (evolvable VM wire)
InitializeResponse.Decode now reads the trailing Capabilities field only when >=8 bytes remain, so a
newer node decoding a pre-v1.0.16 plugin's short payload yields Capabilities=0 instead of the
unexpected-EOF that broke every EVM Initialize in the v1.36.11 skew (Capabilities appended at protocol
42 without a bump). Appending a future trailing field can no longer EOF-break an older peer. New test
locks the tolerance.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
v1.1.2
2026-07-16 12:31:15 -07:00
zeekay a856555c3d chore(deps): bump geth v1.20.1 + luxfi deps — stack unification v1.1.1 2026-07-15 11:12:38 -07:00
zeekayandHanzo Dev b658165f98 zap: infer transport network from addr (unix socket / in-proc fast path)
Dial + Listen now infer the network from the address instead of hardcoding
tcp: a socket path (/tmp/vm.sock, @abstract, or any '/' path) → unix-domain
socket (same-host IPC, no TCP/UDP stack, no ephemeral-port exhaustion); a
host:port → tcp (genuinely remote). Strict backward-compat: existing
127.0.0.1:port addrs still dial tcp. Enables the rpcchainvm same-host fast
path — a co-located plugin VM connects back over a unix socket with zero
plugin-side code change once rebuilt against this api.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-07-11 23:29:19 -07:00
zeekayandHanzo Dev 9e8aa484c5 zap: carry the Quasar EXPORT capability across the rpcchainvm boundary (wire)
Two-tier consensus v1.36 splits finality into Nova (local, reorgable accept tip)
and Quasar (⅔-by-stake EXPORT-final). A VM's `finalized`/`safe` tags and its
cross-chain (warp) export gate must resolve to the Quasar height. But the
C-Chain EVM runs as a SEPARATE rpcchainvm plugin process, and nothing carried
the export height across the ZAP boundary — so the whole export tier was dormant
in the real deploy (finalized/safe stuck at genesis).

Wire additions (OPTIONAL, capability-gated — generic VMs are unaffected):
- MsgSetQuasarFinalized (60) / MsgQuasarHeight (61): the two export RPCs. Kept
  < 0x40 so the response/error flags OR in cleanly, grouped after Warp (50-59).
- InitializeResponse.Capabilities (uint64) + CapQuasarExport bit: the plugin
  advertises the export capability in the handshake so the node wires the
  observer only for an export-capable VM. Appended to the struct codec (all four
  encode/decode sites go through the struct methods, so it stays consistent).
- SetQuasarFinalizedRequest / QuasarHeightResponse message structs.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
v1.0.16
2026-07-10 10:14:31 -07:00
zeekayandHanzo Dev e2aefa733a fix(deps): repair vanished pins / go.sum drift ( gosum-refresh) + build green
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
v1.1.0
2026-06-30 13:56:13 -07:00
Antje WorringandHanzo Dev 88848efcda docs: tidy LLM.md indexes; CLAUDE.md -> LLM.md symlink convention
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-06-17 09:56:44 -07:00
Hanzo AI bd2137eebc go: 1.26.3 → 1.26.4 (security: crypto/x509, mime, net/textproto) 2026-06-06 22:03:54 -07:00
Antje WorringandHanzo Dev 1a10818060 deps: accel v1.1.0 -> v1.2.2 (bundled c_api.h; fixes CGO build)
accel v1.1.0 lacked the bundled lux/accel/c_api.h, breaking api's CGO
build. v1.2.2 bundles the header and made native HQC opt-in.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-06-06 21:11:19 -07:00
Antje WorringandHanzo Dev 92f8b6db9d refactor(zap): rename InitializeRequest.LuxAssetID -> UTXOAssetID (canonical)
Decomplect step: the primary-network fee asset is canonically UTXOAssetID (named for the function, not the chain), matching runtime.Runtime.UTXOAssetID (runtime v1.1.0). Wire layout is unchanged (positional encoding), so this is source-only and wire-compatible; vm/node consumers switch from req.LuxAssetID to req.UTXOAssetID when they bump to the released api carrying this rename. Kept separate from the ReadCount safety commit.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-06-06 20:46:47 -07:00
Antje WorringandHanzo Dev d9dcdaa2e3 fix(zap): bound element counts before make() to stop unbounded-alloc DoS
A decoded uint32 element count fed make([]T,count) before the per-element loop consumed any bytes, so a ~9-byte message with count=0xFFFFFFFF could drive a ~100GB allocation (OOM; the 16MB message cap and handler recover() do not bound it). Add Reader.ReadCount(), which rejects any count exceeding Remaining(), and use it in the 9 collection decoders across vm.go, sender.go, warp.go.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-06-06 20:46:47 -07:00
Hanzo AI 6b33321f2e deps: bump luxfi/vm v1.2.0, sampler v1.1.0, staking v1.5.0 (relicense)
Picks up the 2026-06-06 relicensing:
- luxfi/vm v1.2.0 → Lux Ecosystem License v1.2 (was Lux Research v1.0).
  License-only retag of the extracted runtime; patent reservation
  preserved for runtime optimization surfaces, royalty-free for
  Descending Chains.
- luxfi/sampler v1.1.0 → BSD-3-Clause (was Lux Research v1.0).
  License restored to match the luxfi/node provenance (originally
  extracted from node/utils/sampler).
- luxfi/staking v1.5.0 → BSD-3-Clause (was Lux Research v1.0).
  License restored to match the luxfi/node provenance.

No code changes in this commit — go.mod/go.sum only.
2026-06-06 19:02:00 -07:00
Hanzo AI ec0bf85c74 deps: bump p2p v1.21.1 (Wave 2G-Cascade) 2026-06-06 06:14:38 -07:00
Hanzo AI eda7067e50 WIP: session checkpoint 2026-06-05 (codec rip in flight) 2026-06-05 15:33:51 -07:00
Hanzo AI 49fcf34ef4 api: drop codec indirect — bump ids v1.2.15 + warp v1.19.2
ids v1.2.15 + warp v1.19.2 both shed their direct codec/wrappers
imports (encoding/binary inlined in ids.ID.Prefix/Append; firstErr
helper inlined in warp packages). With both consumers gone from api's
build closure, codec drops out of go.mod and go.sum entirely.

Also drops luxfi/node, ProjectZKM/Ziren, golang/mock, luxfi/atomic,
google/renameio — transitive cleanups that fall out of the same module
graph pruning.
2026-06-04 21:32:20 -07:00
Hanzo AI b44f16553f fix: gofmt -s across repo (CI format check) 2026-06-02 11:39:38 -07:00
Hanzo AI fafd0cb70d chore(deps): go get -u ./...
Updated dependencies to latest minor versions via go get -u + go mod tidy.
2026-06-02 11:18:43 -07:00
Hanzo AI 4845518e88 decomplect: rip NetworkUpgrades interface + wire struct (16 fork-time fields) from zap/runtime 2026-05-18 23:16:14 -07:00
Hanzo DevandGitHub 126eb6917b docs: add LICENSING.md pointer to canonical IP/licensing strategy (#1) 2026-05-15 17:30:13 -07:00
Hanzo AI e7cfcaf316 deps: luxfi/crypto v1.19.0 2026-05-13 12:00:07 -07:00
Hanzo AI 6cbe67dec6 go.mod: bump go directive to 1.26.3 (security advisory) 2026-05-12 21:28:12 -07:00
Hanzo AI 413693ac19 zap: add NewListener so any net.Listener can serve ZAP
zap.Listen("tcp", ...) is the common path. NewListener is the
escape hatch that lets a Z-Wing listener (or any other net.Listener
that yields post-handshake net.Conns) feed zap.Server unchanged.

This is the seam zwing.ListenZAP uses to compose a one-call
PQ-on-the-wire ZAP server.
2026-05-06 12:50:29 -07:00
Hanzo AI a10b55bb7a docs(zap): canonical TCP port 9999 documented 2026-05-06 10:37:28 -07:00
Hanzo AI 10502e232f docs(zap): call out X-Wing — IETF-standardized X25519+ML-KEM hybrid
X25519 + ML-KEM-768 is the IETF X-Wing construction
(draft-connolly-cfrg-xwing-kem). Document where Lux uses X-Wing
(zap-protocol Rust core, AI-agent ZAP) vs the RNS hybrid (Lux node
sessions with identity-bound handshake). Comparison table added so
new code picks the right one.
2026-05-06 10:23:33 -07:00
Hanzo AI 5e06dffa64 docs(zap): comprehensive LLM.md — wire format, PQ scope, two-implementation reality 2026-05-06 10:21:13 -07:00
Hanzo AI c1bfd622de fix(zap): correctness — distinct MsgErrorFlag, response flag on success, drop debug stderr
Three real bugs in luxfi/api/zap:

1. Debug fmt.Fprintf(os.Stderr, ...) prints on every wire read/write/
   handler invocation. Visible in production logs as [ZAP-WIRE-READ],
   [ZAP-CLIENT-READ], [ZAP-SERVER-WRITE], [ZAP-HANDLER]. Stripped.

2. Server's success path sent the handler's returned msgType directly
   without OR'ing MsgResponseFlag. Echo-style handlers (return same
   msgType) produced responses that looked like fresh inbound requests
   to the client demultiplexer, which dropped them. Tests caught this
   as 'Expected response type 137, got 9'.

3. Client treated every response as an error because the protocol used
   a single MsgResponseFlag for both success and error paths. Added
   MsgErrorFlag (0x40) — error responses now carry MsgResponseFlag
   AND MsgErrorFlag; success responses carry only MsgResponseFlag.
   All msg types must stay < 0x40 (the existing range 1-52 is fine).
2026-05-06 10:19:43 -07:00
Hanzo AI 2768d2e884 feat: GetNodeVersionReply.Consensus + ConsensusInfo (info api); drop dead agentic_network.go
agentic_capnp sub-package was never generated; build-tag dead code referencing it
broke 'go mod tidy' (could not resolve unused phantom import). No-fake policy.

deps: tls v1.0.3 (hkdf.New); go mod tidy
2026-05-05 16:57:04 -07:00
Hanzo AI e8c029cb99 deps: update go.mod/go.sum 2026-04-19 17:04:02 -07:00
Hanzo AI a1e68c0106 chore: symlink AGENTS.md and CLAUDE.md to LLM.md
Canonical project context lives in LLM.md. Symlinks ensure
agentic coding tools (agent, Cursor, etc.) find context
automatically regardless of which filename they look for.
2026-04-01 14:08:02 -07:00
Hanzo Dev a54af91e80 chore: bump Go 1.26.0 → 1.26.1
Fixes 5 stdlib CVEs (html/template, os, net/url, crypto/x509 x2).
2026-03-12 01:07:37 -07:00
Hanzo Dev 42727fa3ff feat: add typed State enum to ZAP VM protocol v1.0.4 2026-03-11 12:09:33 -07:00
Hanzo Dev 423d56000b docs: add LLM.md project guide 2026-03-11 10:34:33 -07:00
Hanzo Dev 886607f650 chore: update Go module dependencies 2026-03-03 14:41:48 -08:00
Zach Kelling 31121e2c63 chore: add BSD-3-Clause LICENSE 2026-02-14 05:26:18 -08:00
Zach Kelling 4cb010fcbd debug(zap): add wire-level debug output for Initialize diagnosis
Add temporary stderr debug prints to ReadMessage, readLoop, handleConn,
and ServerConn.Write to capture exact msgType bytes on the wire. This
will reveal why the client sees MsgResponseFlag set on Initialize
responses that the server sends as MsgInitialize (0x01).
v1.0.3
2026-02-10 22:07:02 -08:00
Zach Kelling a392d12d55 feat(zap): add error response protocol and concurrent request handling
Add MsgResponseFlag for error responses over the wire, enable concurrent
request dispatch with per-goroutine panic recovery, and simplify State
type to use canonical vm.State. Update consensus dependency to v1.22.67.
v1.0.2
2026-02-10 18:54:45 -08:00
Zach Kelling 56688a2660 feat: add ZAP-format agentic network schema
Convert agentic.capnp to proper whitespace-based ZAP syntax:
- Remove file IDs, ordinals (@N), braces, semicolons
- Use indentation-based structure
- Add AgenticNetwork service interface
- Supports ZMQ, Cap'n Proto, gRPC wire protocols
- Includes post-quantum cryptography primitives
2026-02-04 17:56:47 -08:00
Zach Kelling e1e01474c4 chore: sync dependencies and format code 2026-02-04 15:46:05 -08:00
Hanzo Dev a74c014da2 Add ZAP wire protocol transport for VM communication
- Add zap/ package with zero-copy binary wire protocol
- Support for VM client/server communication over ZAP
- Wire format: [4-byte length][1-byte message type][payload]
- Includes sender, transport, and VM implementations
v1.0.1
2026-01-24 11:39:40 -08:00
Zach Kelling 49e9dc92e8 api: initial v1.0.0 v1.0.0 2026-01-16 11:52:14 -08:00