Skip to content

feat(nip77): advertise NIP-77 in NIP-11 and expose its settings in the admin console - #830

Merged
cameri merged 4 commits into
cameri:mainfrom
Priyanshubhartistm:feat/nip77-nip11-advertisement
Oct 15, 2026
Merged

cameri merged 4 commits into
cameri:mainfrom
Priyanshubhartistm:feat/nip77-nip11-advertisement

Conversation

@Priyanshubhartistm

Copy link
Copy Markdown
Collaborator

Description

Lets clients discover NIP-77 and lets operators configure it without editing the settings file.

  • NIP-11 supported_nips now lists 77, but only while NIP-77 is active (nip77.enabled is true and eventStore.backend is postgres), the same way 43 is only listed when NIP-43 is enabled. A relay with it switched off, or serving another backend, does not claim support. The 43 and 77 gates are independent.
  • The nip77 settings (enabled, maxEventsPerSession, maxSessionsPerConnection, sessionIdleTimeoutMs) are added to the admin console's guided settings (and so to the CLI settings menu, which reads the same schema). The numeric fields use a new positive-integer validator, matching validateSettings, which rejects 0.
  • Unit tests for the NIP-11 output with NIP-77 on, off, and on another backend, and for the new guided fields and validator. The NIP-11 integration step is updated, since 77 is now in package.json but not advertised by default.
  • CONFIGURATION.md notes the NIP-11 advertisement and the admin console availability.

Related Issue

Closes #819

Motivation and Context

After #818 relays can answer NIP-77 sync requests, but nothing told clients: they had to open a NEG-OPEN and read the error to find out. Advertising it only while it is actually served keeps NIP-11 honest, and exposing the settings brings nip77 in line with nip45, nip50 and nip56.

Signed-off-by: Priyanshubhartistm <bhartipriyanshustm@gmail.com>
Signed-off-by: Priyanshubhartistm <bhartipriyanshustm@gmail.com>
@changeset-bot

changeset-bot Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 5b5ba01

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
nostream Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@greptile-apps

greptile-apps Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] This PR appears safe to merge.

Summary

Adds NIP-77 to supported_nips only when the relay serves it, and exposes its four settings in the admin console and CLI.

  • NIP-11 lists NIP-77 only when PostgreSQL-backed sync is active.
  • Operators can edit NIP-77 settings through the guided menus.

No actionable issues found.

Reviews (1) · Last reviewed commit: "feat(nip77): expose nip77 settings in th..." · Reviewed by Greptile

@coveralls

coveralls commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 38795845036

Coverage increased (+0.03%) to 74.515%

Details

  • Coverage increased (+0.03%) from the base build.
  • Patch coverage: 6 of 6 lines across 2 files are fully covered (100%).
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 10509
Covered Lines: 8210
Line Coverage: 78.12%
Relevant Branches: 5461
Covered Branches: 3690
Branch Coverage: 67.57%
Branches in Coverage %: Yes
Coverage Strength: 852.95 hits per line

💛 - Coveralls

@cameri
cameri merged commit f0bcdcc into cameri:main Oct 15, 2026
15 checks passed
cameri pushed a commit that referenced this pull request Oct 16, 2026
)

* ci(website): deploy on nostream-website release publish, not on main pushes

The site now deploys when the changesets workflow tags and publishes
nostream-website@X.Y.Z (the release event this workflow filters on).
Merging relay work to main no longer touches the site deploy; a site
deploy happens exactly when a release PR that bumps nostream-website
merges. Checkout on a release event is the tagged commit, so the
deployed assets are the released build. Relay image releases keep
their v* gate in release.yml — the tag namespaces do not overlap.

workflow_dispatch remains for manual deploys of main.

* fix(website): warn instead of failing while the hero film is stale

The film guard hard-failed every site build since #830 added NIP-77
(supportedNips 24 -> 25): re-rendering the film needs the GPU pipeline
and no GPU is available to the sandbox or the runners. Per operator
order the mismatch branch now warns (loudly, with the re-render
commands) and exits 0, unblocking releases; the comment in the script
names the day, the order, and where to restore exit 1.
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.

feat(nip77): advertise NIP-77 in NIP-11 and expose its settings in the admin console

3 participants