give the soulseek workspace a url
The section is /soulseek/:section — nav entries are NavLinks, the view panel reads the same
URL instead of being told, and the dashboard's tiles and recent searches are real links (a
recent search now opens that search, not the search screen's front page).
The peer went in `?user=<name>` rather than the /soulseek/users/:name the audit sketched: a
second path segment would need a nested route just to keep the nav highlight, and `?search=`
had already set the convention there. That deletes the `soulseek:user` channel and with it a
`{username, nonce}` request the Users panel consumed-once and cleared — the nonce existed so
asking for the same peer twice counted twice. A link is idempotent, so there is nothing to
consume and nothing to disambiguate.
`soulseek:refresh` stays: it is a signal, which is what channels are for.
This commit is contained in:
@@ -646,8 +646,16 @@ All the same bug: an app guessing "am I being closed?" from an unmount, or payin
|
||||
key now, so there is nothing left to disagree with.
|
||||
**SystemMonitor is done too** (audit M10) — `/system-monitor/:scope`, scope list as `NavLink`s,
|
||||
`monitor:scope` deleted. Smallest of the seven and the same shape as `/photos`.
|
||||
Remaining here: Music, Soulseek, Email, Browser. **Chat detail (`chat:selected-session`) is
|
||||
chat-owned — leave it; it is written up in `COMMS/`.**
|
||||
**Soulseek is done** — `/soulseek/:section`, and the peer moved to `?user=<name>` rather than the
|
||||
`/soulseek/users/:name` the audit sketched: a second path segment would have needed a nested route
|
||||
just to keep the nav's `NavLink` highlight, and `?search=` was already establishing the convention
|
||||
for that workspace. Deleting `soulseek:user` also deleted the nonce it carried — a request stamped
|
||||
`{username, nonce}`, consumed-once by the Users panel so that returning to the section did not
|
||||
re-run the lookup, and nonce-stamped so that asking for the *same* peer twice still counted twice.
|
||||
A link needs none of that: it is idempotent, so there is nothing to consume and nothing to
|
||||
disambiguate. That is the shape of most of this section's remaining work.
|
||||
Remaining here: Music, Email, Browser. **Chat detail (`chat:selected-session`) is chat-owned —
|
||||
leave it; it is written up in `COMMS/`.**
|
||||
|
||||
### 5.9 The context has grown an app-config section — _(found 2026-08-07)_
|
||||
|
||||
|
||||
Reference in New Issue
Block a user