Commit Graph

106 Commits

Author SHA1 Message Date
46af9bd2a4 chore: Bump version to 0.6.0
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
Release / Release Gate (push) Failing after 0s
Release / Build and publish image (push) Has been skipped
2026-03-18 21:44:17 +01:00
fc3d121599 Benchmark capture and plot
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
2026-03-18 21:23:23 +01:00
970cee2c0e Document embedded API surface
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
2026-03-18 20:22:12 +01:00
7a43ebd395 Expand in-memory storage indexes 2026-03-18 19:43:11 +01:00
4c40edfd83 Optimize memory-backed benchmark path 2026-03-18 18:56:47 +01:00
f60b8ba02a Add memory-backed benchmark profile 2026-03-18 18:39:53 +01:00
2225dfdc9e Improve public API documentation 2026-03-18 18:08:47 +01:00
9014912e9d Unify HTTP metadata handling 2026-03-18 18:00:07 +01:00
c30449b318 Expand relay metrics and observability 2026-03-18 17:39:13 +01:00
c377ed4b62 Separate read pool and harden fanout state handling 2026-03-18 17:21:58 +01:00
dce473662f Lock signature verification and add per-IP ingest limits 2026-03-18 16:46:32 +01:00
a2bdf11139 Add DB constraints for binary identifier lengths 2026-03-18 16:00:07 +01:00
bc66dfcbbe Upgrade NIP-50 search to ranked Postgres FTS 2026-03-18 15:56:45 +01:00
f732d9cf24 Implement full NIP-43 relay access flow 2026-03-18 15:28:15 +01:00
f2856d000e Implement NIP-66 relay discovery publishing 2026-03-18 14:50:25 +01:00
dc5f0c1e5d Add first-class listener connection caps 2026-03-18 14:21:43 +01:00
b56925f413 Decouple publish fanout and use ETS ingest counters
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
2026-03-18 14:10:32 +01:00
05718d4b91 Prevent NIP-98 token replay 2026-03-18 14:05:38 +01:00
1fef184f50 Add relay-wide event ingest limiter 2026-03-18 14:05:27 +01:00
57fdb4ed85 Add configurable tag guardrails 2026-03-18 14:05:09 +01:00
8dbf05b7fe docs: Opus review 2026-03-18 13:23:06 +01:00
7b2d92b714 fix: Sandbox owner checks in DB connection before exiting
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
The shared sandbox owner process exited without releasing its Postgrex
connection, causing intermittent "client exited" error logs on CI. The
owner now calls Sandbox.checkin before exiting, and on_exit waits for
the owner to finish before switching to manual mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 20:11:31 +01:00
a19b7d97f0 fix: Subscription workers restart strategy, sandbox ownership race condition
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
Clear OTP SSL PEM cache between listener terminate/restart so reloaded
certs are read from disk instead of serving stale cached data. Make
reconcile_worker idempotent to prevent unnecessary worker churn when
put_server is followed by start_server. Add request timeouts to
RelayInfoClient to prevent hanging connections.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 19:42:18 +01:00
65b47ec191 fix: Subscription workers restart strategy, sandbox ownership race condition
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
2026-03-17 18:49:50 +01:00
e13c08fd5a Strengthening the TLS reload test 2026-03-17 12:42:08 +01:00
101ded43cb Stabilize TLS and sync worker tests
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
2026-03-17 12:17:29 +01:00
f4d94c9fcb Refactor test runtime ownership
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 0s
2026-03-17 12:06:32 +01:00
35c8d50db0 Stabilize TLS listener reload e2e
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
2026-03-17 04:12:42 +01:00
4d169c23ae Harden CI-sensitive integration tests
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
2026-03-17 03:55:49 +01:00
a1a8b30d12 Stabilize test harness and node sync e2e
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
2026-03-17 03:46:58 +01:00
e557eba437 Fix connection test harness startup assumptions
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
Release / Release Gate (push) Failing after 1s
Release / Build and publish image (push) Has been skipped
v0.5.0
2026-03-17 03:13:45 +01:00
a652bf3448 Add sync e2e aliases and release checks
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
Release / Release Gate (push) Failing after 1s
Release / Build and publish image (push) Has been skipped
2026-03-17 03:00:50 +01:00
f518a25cab Add node sync e2e harness and bump 0.5.0
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
2026-03-17 02:47:42 +01:00
02f2584757 Align websocket and admin APIs with shared surfaces 2026-03-17 01:08:41 +01:00
e8fd6c7328 Add listener TLS support and pinning tests 2026-03-17 00:48:48 +01:00
1f608ee2bd Refactor ingress to listener-based configuration 2026-03-16 23:47:17 +01:00
5f4f086d28 Add outbound sync worker runtime 2026-03-16 21:55:03 +01:00
9be3b6ca52 Add sync control plane API 2026-03-16 21:23:39 +01:00
769177a63e Add shared auth and identity APIs 2026-03-16 21:07:26 +01:00
987415d80c docs: README intro
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
2026-03-16 20:31:21 +01:00
d119d21d99 Extract API events and stream layers
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
2026-03-16 20:21:58 +01:00
5d4d181d00 Add trusted proxy IP enforcement tests 2026-03-16 19:09:27 +01:00
fd17026c32 Implement ACL runtime enforcement and management API 2026-03-16 17:49:16 +01:00
14fb0f7ffb docs: Study Khatru 2026-03-16 16:53:55 +01:00
186d0f98ee improve: NIF-77 single-filter fast path 2026-03-16 16:30:07 +01:00
39dbc069a7 feat: NIF-77 negentropy sync 2026-03-16 16:00:15 +01:00
4c2c93deb3 docs: Sketch NIF-77 sync and ACLs 2026-03-16 14:57:08 +01:00
b628770517 docs: Narrow NIP-DBSYNC protocol 2026-03-16 12:58:21 +01:00
705971cbc4 docs: Nostr DB sync proposal 2026-03-16 12:57:22 +01:00
b86b5db78c ci: GitHub release action
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 1s
CI / Test (OTP 28.4 / Elixir 1.19.4 + Marmot E2E) (push) Failing after 1s
Release / Release Gate (push) Failing after 1s
Release / Build and publish image (push) Has been skipped
v0.4.0
2026-03-14 20:02:05 +01:00