akiomik / akiomik/nostui

The NIP-38 status line reports what nostui attempted, not what a relay accepted

Open
#521 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
71
Forks
5
Avg merge
4h 2m
Merged PRs (30d)
31

Description

Split out of #520, which confirms publishes against the relay's answer for everything the user does — notes, reactions, reposts — and deliberately leaves the NIP-38 music status alone.

## Why it was left out

Routing it through the same path made it report relay rejections, and many relays refuse kind 30315. A user with `nip38.enabled` would then get `[ERR: Music] no relay accepted the event: …` painted over the status bar **on every track change**, for something they never asked for and cannot act on. Those rejections were invisible before, because the `Ok(output)` was discarded.

Confirmation exists so the user is not told their *own action* succeeded when it did not. A track change is not their action, so #520's scope stops at user-initiated publishes and the music line keeps its old meaning: what nostui attempted.

## What is still not true

`[Music] Song - Artist` appears whether or not any relay took the event. That is the same shape of claim #511 was about, weaker only because nobody is relying on it.

## What a fix would need to decide

- **Where it belongs.** An error over the user's status bar is the wrong home for it; the noise is the reason it is out of scope now. Somewhere it can fail quietly — the log, or an indicator that does not compete for the status line — is the question.
- **Whether it should report at all.** Failing to publish a now-playing status is arguably not worth telling anyone. If so, the honest fix is for the line to stop implying success: "Music: X" as a statement about what is playing, not about what was published.
- This overlaps #516: whatever arbitration lands there decides whether a background publish may take the status line at all, at any point in its lifecycle.

## Acceptance

- The line does not assert a publish that did not happen.
- A relay refusing kind 30315 does not put an error in front of the user on every track change.

Contributor guide

Open the contributing guide

Research direction

Read the NIP-38 music-status publish path, then review the related decisions in #520 and #516. Use the acceptance criteria as the completion check: a refused kind 30315 event must not produce a misleading success line or repeated status-bar error.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.