• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

cameri / nostream / 28749904649
68%

Build:
DEFAULT BRANCH: main
Ran 05 Jul 2026 06:05PM UTC
Jobs 2
Files 168
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Jul 2026 06:02PM UTC coverage: 67.417% (+0.2%) from 67.253%
28749904649

push

github

web-flow
feat:  Add NIP-50 full-text search support (#587)

* feat: implement NIP-50 full-text search support

* fix: use timingSafeEqual and zod for nodeless HMAC check

* refactor: only register nodeless route when enabled

* chore: sync with upstream main

* feat(nip-50): add full-text search support

wire up NIP-50 search filter through subscription handler,
event repository, and filter schema. add ts_rank relevance
sorting, maxQueryLength truncation, and GIN index migration.

parameterize tsConfig as ?::regconfig to prevent SQL injection.
trim search input before truncation so whitespace doesn't waste
the query length budget. advertise search_supported in NIP-11.

* fix(nodeless): harden webhook verification

use logger.error for security rejection paths (missing secret,
invalid signature format, signature mismatch). guard all
callback routes with requireProcessor middleware.

* test: cover NIP-50 search, nodeless security, and NIP-11 fields

add search filter tests for event-repository (parameterized SQL,
truncation, relevance ranking), filter-schema (validation bounds),
subscribe-handler (search stripping when disabled), event utils
(in-memory matching), and root-request-handler (search_supported).
update nodeless controller specs for logger.error assertions.

* docs: fix GIN index name in nip50.language note

the migration creates events_content_fts_idx, not
idx_events_content_fts. operators following the old
instructions would create a duplicate index.

* test: update assertions for parameterized regconfig

the ?::regconfig bindings serialize as 'simple'::regconfig
in knex query strings, not 'simple' inside a template literal.

* chore: add new files from upstream main

includes changesets, husky install script, auth handler,
group event strategy, geohash utils, NIP-25/NIP-65 utils,
integration and performance test scaffolding.

* refactor: remove unrelated nodeless changes from NIP-50 PR

revert logger.error and route guard changes to match main.
the... (continued)

2050 of 3402 branches covered (60.26%)

Branch coverage included in aggregate %.

36 of 36 new or added lines in 5 files covered. (100.0%)

1 existing line in 1 file now uncovered.

4658 of 6548 relevant lines covered (71.14%)

19.44 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
75.95
-2.53% src/utils/settings.ts
Jobs
ID Job ID Ran Files Coverage
1 Integration - 28749904649.1 05 Jul 2026 06:05PM UTC 168
34.76
GitHub Action Run
2 Unit - 28749904649.2 05 Jul 2026 06:06PM UTC 168
64.42
GitHub Action Run
Source Files on build 28749904649
  • Tree
  • List 168
  • Changed 7
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28749904649
  • 30fa252a on github
  • Prev Build on main (#28749600246)
  • Next Build on main (#28751668806)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc