Personas have walls their followers write on

Owner decision of 2026-10-06 (G-0009, FEP-400e). A persona's actor names its wall (…/graffiti, sm:wall) and, in
Smithereen's privacySettings, that its followers may write on it. A public post that is not a reply, sent with the wall
as its target by an account following the persona, is hosted: the persona is notified, it reaches the persona's and its
followers' homes, and the followers' servers and the author's are told with Add{Note}. The persona deletes it with
DELETE /api/v1/statuses/:id, which sends Remove{Note}; Smithereen deletes the post then. The wall lists the persona's
public posts that start a thread and what was written on it.

Elsewhere: an account's Add{Note} on its own wall shows the post to its followers here as on that wall (privapub.wall on
the status), and its Remove takes it away. An Add or Remove naming a collection of the account's own server PrivaPub
does not know has its document read again first, at most hourly: accounts kept before walls were read had none.

Checked live: Smithereen 40 checks (G-0009 closed); GoToSocial and Mastodon unchanged (121).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-06 08:17:10 +02:00
1 parent e0682fa868
commit c47b6e5533
26 files changed
+582 -36

No files matched your search

+13 -8
View File
@@ -850,10 +850,13 @@ without a port, before it gives out its OAuth client.
### Smithereen 1.0.3
- **Walls:** a post is a `Note`; one written on someone else's wall carries the wall (`sm:wall`, FEP-400e) as its
`target`, and the wall's owner tells its followers with `Add{Note}`. Smithereen sends both only to servers whose
actors have a wall (`Server.Feature.WALL_POSTS`, learnt from an actor's `sm:wall`), so PrivaPub never sees a post on
someone else's wall (G-0009: a persona's wall waits for the owner). Comments are replies addressed to the post's
author, never to followers.
`target` (an object with the owner as `attributedTo`), and the wall's owner tells its followers with `Add{Note}`.
Smithereen sends both only to servers whose actors have a wall (`Server.Feature.WALL_POSTS`, set for a whole domain
the first time it reads an actor there with `sm:wall`, never unset). It reads properties through JSON-LD compaction, so
`wall`, `privacySettings` and its keys need their `sm:` terms in the context, and an `allowedTo` must stay a plain
string. Its posting rule takes one base rule (followers, or following, or friends), so a persona says followers. An
owner deleting someone else's post on its wall sends nothing; a `Remove` from the owner (its target a plain id)
deletes the post there. Comments are replies addressed to the post's author, never to followers.
- **Friends are mutual follows.** A request is an `Offer{Follow}` sent only to actors with
`sm:supportsFriendRequests`; anyone else gets a plain `Follow`, so a persona is followed, and following back makes
them friends there.
@@ -865,12 +868,14 @@ without a port, before it gives out its OAuth client.
`requireNonNullElse` was meant); its HTTP client refuses private addresses; its schema updater makes stored
functions, which MySQL takes only with `log_bin_trust_function_creators`. A database whose first update failed is
left without its triggers, and the server then answers 404 to activities about anything it knows.
- **Pasture evidence (2026-10-05, Smithereen 1.0.3, `tools/pasture/scenarios/smithereen.sh`):** 30 checks pass and one
gap is expected (G-0009): smuser follows alice and she follows back, which makes them friends there; wall posts both
ways; comments both ways; likes both ways; smuser's repost is a quote alice's policy lets in, and alice's boost is a
- **Pasture evidence (2026-10-06, Smithereen 1.0.3, `tools/pasture/scenarios/smithereen.sh`):** 40 checks pass:
smuser follows alice and she follows back, which makes them friends there; Smithereen learns that PrivaPub's actors
have walls; wall posts both ways; smfriend's post on smuser's wall reaches alice as on that wall (G-0009 closed);
smuser writes on alice's wall, which she sees and her wall lists, her followers' servers are told, and taking it off
deletes it on Smithereen; comments both ways; likes both ways; smuser's repost is a quote alice's policy lets in, and alice's boost is a
repost there; smuser's poll and alice's vote; edits and deletions both ways; private messages both ways; the
unfollow; statistics. PrivaPub changed for it: a server description that failed is asked again on the server's next
arrival instead of a week later.
arrival instead of a week later; walls (owner decision 2026-10-06).
### Loops (1.0.0-beta.14) and Pixelfed (0.14.4)