Skip to content

Prune shipped items from the roadmap and renumber what is left - #91

Merged
chrisuthe merged 2 commits into
mainfrom
chrisuthe/task/prune-shipped-items-from-the-roadmap-and-renumber
Oct 16, 2026
Merged

chrisuthe merged 2 commits into
mainfrom
chrisuthe/task/prune-shipped-items-from-the-roadmap-and-renumber

Conversation

@chrisuthe

Copy link
Copy Markdown
Member

docs/ROADMAP.md goes from 28 items (2694 lines) to 15 open ones. Git history keeps the record of how each item shipped.

What changed

  • Remove the What the scaffold already does section and every item that is fully shipped.
  • Cut partly-shipped items down to what is still owed. The gaps that were buried inside items marked shipped are kept as items of their own:
    • state-file debounce
    • signing/notarization and a minimum-macOS gate
    • the four unit-hardening directives
    • sink-contract, mdns_dnssd and TSan coverage
    • Intel-Mac build and glibc floor
    • conf.example and wiki version drift guards
    • PortAudio/ALSA recovery hardware passes
    • PipeWire ring resize and the -Wrestrict exemptions
    • refusing userinfo in -s
    • multi-group switch
  • Group the library-side gaps into one item: no log sink hook, a taken --port the CLI cannot see, and no connection origin.
  • Renumber the items 1–15 and update the references to them:
    • docs/wiki/Getting-Started-on-a-Raspberry-Pi.md → item 5
    • docs/wiki/Home.md → item 10
    • docs/wiki/Installation.md → item 7
    • docs/wiki/Running-as-a-Service.md → item 8
    • the .pkg welcome pane in scripts/build_macos_pkg.sh → item 7
  • Change the roadmap link text in the release.yml notes and Home.md to "what is still owed".

Re-checked against sendspin-cpp v0.9.5 (the current pin)

  • Old item 17 (activities-based admission) is removed as done. v0.9.5 implements activities, server/activate and PSK pairing (src/admission.h, connection_manager.cpp), and the CLI already exposes --pairing-code and --allow-unpaired.
  • --interface (now item 15) is still blocked upstream. src/host/ws_server.cpp:61 still binds "0.0.0.0", and SendspinClientConfig has no bind-address field. Its "no inbound authentication" premise no longer holds: pairing and admission gate the inbound path now. The item is rewritten to say so; what is left is narrowing exposure on multi-homed hosts and interface-scoped advertisement.
  • The required_lead_time_ms/min_buffer_ms gap is removed as closed upstream. v0.9.5 fills both in player_role.cpp.
  • No log sink hook yet. SS_LOG* is still bare fprintf, and the dialled URL is still logged unmasked at info/error.

Compatibility

Nothing breaks for CLI users. This changes docs, one string in the macOS installer's welcome pane, and one line of release-notes text. Flags, config keys, the control-socket protocol, the state format, exit codes and runtime behaviour are all unchanged.

Left as-is: src/main.cpp:583 / docs/wiki/Troubleshooting.md:196 ("See docs/ROADMAP.md" for a no-mDNS build) and src/cli.cpp:1126 still point at the roadmap generally. Rewording them would change log and help strings, which is outside this PR.

Keep only work still owed, re-check the upstream-gated items against sendspin-cpp v0.9.5, and point the wiki, the .pkg welcome pane and the release notes at the new numbers.
@chrisuthe
chrisuthe marked this pull request as ready for review October 16, 2026 03:34
@chrisuthe
chrisuthe merged commit c4f916b into main Oct 16, 2026
18 checks passed
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