<feed xmlns='http://www.w3.org/2005/Atom'>
<title>axon.git/go.work, 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-09T19:48:39+00:00</updated>
<entry>
<title>feat: add axon CLI for pub/sub; fix relay hijack context bug</title>
<updated>2026-03-09T19:48:39+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-09T19:48:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/axon.git/commit/?id=0bd392e076e36c80a152abe00cbcd0bc9efedd9c'/>
<id>urn:sha1:0bd392e076e36c80a152abe00cbcd0bc9efedd9c</id>
<content type='text'>
- cmd/axon: new CLI module with keygen, pub, and req subcommands
  - keygen: generate Ed25519 keypair, print hex seed and pubkey
  - pub: sign and publish an event; accepts --kind, --content, --tag
  - req: query/stream events as JSON lines; accepts --kind, --author,
    --tag, --since, --until, --limit, --stream
  - key loaded from --key flag or AXON_KEY env var

- relay/websocket: add Dial() for client-side WebSocket handshake
  (ws:// and wss://, RFC 6455 masking via client:true)

- relay/server: fix broken-pipe on auth by switching hijacked conn
  goroutine from r.Context() to context.Background(); r.Context() is
  cancelled by net/http immediately after Hijack is called
</content>
</entry>
<entry>
<title>add go.work for multi-module workspace</title>
<updated>2026-03-09T15:06:41+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-03-09T15:06:41+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/axon.git/commit/?id=c43156ec68dec9b55fbf0a5b1b5814882cf540d9'/>
<id>urn:sha1:c43156ec68dec9b55fbf0a5b1b5814882cf540d9</id>
<content type='text'>
</content>
</entry>
</feed>
