<feed xmlns='http://www.w3.org/2005/Atom'>
<title>axon.git/axon.go, branch main</title>
<subtitle>[no description]</subtitle>
<id>https://code.northwest.io/axon.git/atom?h=main</id>
<link rel='self' href='https://code.northwest.io/axon.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.northwest.io/axon.git/'/>
<updated>2026-03-09T15:01:02+00:00</updated>
<entry>
<title>feat: phase 2 relay implementation</title>
<updated>2026-03-09T15:01:02+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-09T15:01:02+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/axon.git/commit/?id=61a85baf87d89fcc09f9469a113a2ddc982b0a24'/>
<id>urn:sha1:61a85baf87d89fcc09f9469a113a2ddc982b0a24</id>
<content type='text'>
Implement the Axon relay as relay/ (module axon/relay). Includes:
- WebSocket framing (RFC 6455, no external deps) in relay/websocket/
- Per-connection auth: challenge/response with ed25519 + allowlist check
- Ingest pipeline: sig verify, dedup, ephemeral fanout, SQLite persistence
- Subscription manager with prefix-matching filter fanout in relay/subscription/
- SQLite storage with WAL/cache config and UNION query builder in relay/storage/
- Graceful shutdown on SIGINT/SIGTERM
- Filter/TagFilter types added to axon core package (required by relay)
</content>
</entry>
<entry>
<title>feat: implement Phase 1 Axon protocol core package</title>
<updated>2026-03-09T05:07:14+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-09T05:07:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/axon.git/commit/?id=3ff2bc0530bb98da139a5f68202c8e119f9d4775'/>
<id>urn:sha1:3ff2bc0530bb98da139a5f68202c8e119f9d4775</id>
<content type='text'>
Adds the foundational Go package implementing the full Axon protocol
signing and crypto spec per PROTOCOL.md:

- Event/Tag structs and all kind constants (KindProfile through KindJobFeedback)
- Byte-exact canonical_payload construction per the PROTOCOL.md layout table
- Tag sorting and canonical_tags SHA256 hash (duplicate detection included)
- Ed25519 sign/verify, challenge sign/verify
- X25519 key conversion from Ed25519 keypair (RFC 8032 §5.1.5 clamping +
  birational Edwards→Montgomery map for pubkeys)
- ChaCha20-Poly1305 encrypt/decrypt for DMs (nonce prepended)
- MessagePack encode/decode for events and wire messages

Test vectors written first in testdata/vectors.json covering canonical_tags,
canonical_payload, event_id, and signature verification — all deterministic
known-input → known-output pairs for cross-language validation in Phase 4.

13 tests, all passing.
</content>
</entry>
</feed>
