Skip to content

chore: release new version 🚀#658

Open
cameri wants to merge 1 commit into
mainfrom
changeset-release/main
Open

chore: release new version 🚀#658
cameri wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@cameri

@cameri cameri commented Jun 28, 2026

Copy link
Copy Markdown
Owner

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

nostream@3.1.0

Minor Changes

  • #641 837540b Thanks @Ferryx349! - feat: add disabled-by-default admin API with password auth, session, and health endpoints

  • #666 44f3bb4 Thanks @Ferryx349! - feat: add admin observability dashboard with Grafana embed and provisioned metrics panels

  • #653 8ab4825 Thanks @Ferryx349! - feat: add OpenTelemetry metrics bootstrap with OTLP export for Prometheus

  • #661 237b1a4 Thanks @Ferryx349! - feat: instrument event and websocket handlers with OpenTelemetry metrics

  • #662 36d95cc Thanks @Ferryx349! - feat: add Prometheus-backed admin metrics SSE endpoint

  • #587 30fa252 Thanks @Anshumancanrock! - Add NIP-50 full-text search support with PostgreSQL tsvector/GIN indexing.

    Clients can now include a search field in REQ filter objects to perform full-text
    queries against event content. Results are ranked by relevance (ts_rank) instead
    of the usual created_at ordering, per the NIP-50 specification.

    Features:

    • New search filter field accepted in REQ messages
    • PostgreSQL GIN index on to_tsvector('simple', event_content) for fast full-text lookups
    • Configurable text-search language (defaults to simple, supports english, spanish, etc.)
    • Configurable max search query length for abuse prevention
    • NIP-50 listed in NIP-11 relay information document
    • Search can be combined with all existing filter fields (kinds, authors, tags, etc.)
  • #702 e172cce Thanks @Anshumancanrock! - feat(nip42): enforce authentication on reads for restricted event kinds (encrypted DMs, gift wraps) across REQ, live broadcasts and COUNT

  • #650 3461dfe Thanks @Anshumancanrock! - Add NIP-43 invite code foundation: InviteCodeRepository with atomic claimCode, invite_codes migration, and event kind/tag constants.

  • #676 0bfa0b5 Thanks @Anshumancanrock! - Add NIP-43 join/leave request event strategies (kinds 28934/28936) with NIP-42 auth enforcement, created_at freshness validation, invite code claiming, and admission management. When nip43.enabled is set, publishing is restricted to admitted members even without payments enabled, and NIP-43 is advertised in the NIP-11 document (hidden when disabled). Join/leave update the admission cache so membership changes take effect immediately.

  • #644 2f6d773 Thanks @Anshumancanrock! - feat: reject NIP-70 protected events and reposts embedding them

  • #672 595c0a6 Thanks @Ferryx349! - refactor: extract shared settings-config module and guided schema for admin settings editor foundation

Patch Changes

  • #646 eb64d8a Thanks @dependabot! - chore(deps): bump js-yaml from 4.1.1 to 4.2.0

  • #694 7c4b728 Thanks @Priyanshubhartistm! - fix: de-duplicate events returned by generic tag-filter subscriptions

    EventRepository.findByFilters() left-joins event_tags for generic tag filters
    (#e, #p, etc.) without deduplicating the result. An event matching more than one
    tag row for the same filter (e.g. {"#p": ["a", "b"]} matching an event tagged with
    both) was returned once per matching event_tags row, so subscribers received the
    same EVENT message multiple times. The query now selects DISTINCT events.* for
    tag-filtered queries so each stored event is returned at most once. This also covers
    generic tag filters combined with a NIP-50 search term (e.g.
    {"search": "...", "#p": ["a", "b"]}), which take the search branch and are now
    de-duplicated as well.

  • #640 ca23be1 Thanks @Anshumancanrock! - test: optimize nip05.spec.ts & nip03.spec.ts resource management

    • Lift sinon stub to before/after in verifyNip05Identifier tests (create once, reset between tests)
    • Extract SSRF guard callback once in before instead of per-test beforeEach
    • Pre-build shared OTS buffers and attestations at module scope to eliminate redundant Buffer.concat calls
    • Add shared event factory for extractNip05FromEvent tests
  • #686 cb7daf6 Thanks @Priyanshubhartistm! - fix: stop checking additional rate limit windows once a client is already rate-limited

    isRateLimited() in EventMessageHandler and WebSocketAdapter looped through every
    configured rate limit window even after one had already tripped, calling rateLimiter.hit()
    (a Redis write) for each remaining window. Both now return as soon as the first exceeded
    window is found, avoiding redundant Redis writes for clients that are already being limited.

  • #684 3648954 Thanks @Priyanshubhartistm! - fix: await Redis EXISTS call in RedisAdapter.hasKey() so it reflects actual key presence instead of always returning true

  • #682 dc78df5 Thanks @Priyanshubhartistm! - fix: prevent crash in NIP-11 relay information document when payments settings are absent

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 5 times, most recently from 4ba75ee to 71ffce0 Compare July 4, 2026 10:50
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 4 times, most recently from 43f217f to 7df692f Compare July 9, 2026 23:12
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 6 times, most recently from cc635f3 to bae0bd1 Compare July 20, 2026 11:27
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 2 times, most recently from e8670ab to ebe02d0 Compare July 20, 2026 18:36
Releases:
  nostream@3.1.0

[skip ci]
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from ebe02d0 to 2dd35f9 Compare July 22, 2026 01:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant