Feature: C2S posts honor to/cc visibility (shaer-60b wire)
A note POSTed over C2S now federates the way it is addressed instead
of always going loud-public. Public in to = public; Public in cc =
quiet public (unlisted: followers in to, Public in cc on the built
note); followers-only = friends, riding the existing fan_only pipeline
(followers-only delivery + web gating); mention-only addressing =
direct, stored followers-gated and kept local until mention addressing
lands in the client. No addressing at all keeps the legacy public
behavior. Visibility is stored in the new additive posts.ap_visibility
column.
Changed files:
src/services/ActivityPubService.js
- c2sVisibility(object): addressing -> bucket
- c2sCreatePost stores ap_visibility + fan_only mapping, skips
federation for direct
- buildNote: quiet -> to followers, Public in cc
src/config/database.js
- additive column posts.ap_visibility
New file:
test/c2s-visibility.test.js
- bucket mapping, quiet addressing, friends never Public
-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>