<feed xmlns='http://www.w3.org/2005/Atom'>
<title>muxstr.git/internal/subscription, branch main</title>
<subtitle>Nostr relay with gRPC, HTTP/JSON, and WebSocket interfaces</subtitle>
<id>https://code.northwest.io/muxstr.git/atom?h=main</id>
<link rel='self' href='https://code.northwest.io/muxstr.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.northwest.io/muxstr.git/'/>
<updated>2026-02-14T20:49:08+00:00</updated>
<entry>
<title>feat: track WebSocket subscriptions in metrics</title>
<updated>2026-02-14T20:49:08+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-14T20:49:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/muxstr.git/commit/?id=40df56985402a31695a9a3bb13319bd2a3276305'/>
<id>urn:sha1:40df56985402a31695a9a3bb13319bd2a3276305</id>
<content type='text'>
Add metrics tracking for WebSocket (NIP-01) subscriptions in addition
to existing gRPC subscription tracking.

Changes:
- Add Count() method to subscription.Manager
- Add MetricsRecorder interface to WebSocket handler
- Update subscription metrics when REQ/CLOSE messages processed
- Wire up metrics to WebSocket handler in main.go

Before: Only gRPC stream subscriptions were counted
After: Both gRPC and WebSocket subscriptions tracked accurately

This fixes the dashboard showing 0 subscriptions when clients connect
via WebSocket (e.g., nak req --stream).
</content>
</entry>
<entry>
<title>refactor: rename project from nostr-grpc to muxstr</title>
<updated>2026-02-14T16:21:01+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-14T16:21:01+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/muxstr.git/commit/?id=0406e24e1259e1a9adcd739da388dcca9ec8feba'/>
<id>urn:sha1:0406e24e1259e1a9adcd739da388dcca9ec8feba</id>
<content type='text'>
Update module path from northwest.io/nostr-grpc to northwest.io/muxstr.
This includes updating all Go imports, protobuf definitions, generated
files, and documentation.
</content>
</entry>
<entry>
<title>feat: implement Subscribe with real-time event streaming</title>
<updated>2026-02-14T01:58:29+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-14T01:58:29+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/muxstr.git/commit/?id=28d6d0ea2f86d69ad003557656466a50545fc0c9'/>
<id>urn:sha1:28d6d0ea2f86d69ad003557656466a50545fc0c9</id>
<content type='text'>
Subscription manager:
- Track active subscriptions across connections
- Filter matching with full NIP-01 support
- Event fan-out to matching subscribers

Subscribe RPC:
- Query stored events (past)
- Stream them to client
- Keep stream open for new events (real-time)
- Auto-generate subscription ID if not provided

PublishEvent now:
- Stores event
- Notifies all matching active subscriptions
- Streams to gRPC clients in real-time

4 new tests, all 41 tests passing
</content>
</entry>
</feed>
