Accept a report, so blocking is not the only thing a person can do #87

Merged
paulhitt merged 2 commits from feat/content-reports into main 2026-09-03 00:01:44 +00:00
paulhitt commented 2026-09-02 14:44:56 +00:00 (Migrated from gitlab.com)

For flamenet-messenger-ios#56 and the App Review 1.2 gap in flamenet-messenger-ios#12. Spec: flamenet-e2e!19 (§6.25).

There was no report mechanism anywhere — Moderation.swift held blocks and notifications only.

A report is the one place a user deliberately breaks their own confidentiality. The relay cannot read a reported story, so a report carrying only an accusation gives an operator nothing but the assertion. The reporter's own decrypted copy travels with it, and §6.25 requires the client to say so before sending.

No route reads reports back — that would be a way to ask the relay what somebody reported. Asserted against the router, so adding one breaks it deliberately.

An empty copy is accepted: refusing would mean the only way to report is to hand over a copy.

Three tests initially passed for the wrong reason (signing path mismatch made authenticate throw a WireError, satisfying #expect(throws:)). They assert the error code now.

8 new tests; full relay suite 478 green.

For flamenet-messenger-ios#56 and the App Review 1.2 gap in flamenet-messenger-ios#12. Spec: flamenet-e2e!19 (§6.25). There was **no report mechanism anywhere** — `Moderation.swift` held blocks and notifications only. **A report is the one place a user deliberately breaks their own confidentiality.** The relay cannot read a reported story, so a report carrying only an accusation gives an operator nothing but the assertion. The reporter's own decrypted copy travels with it, and §6.25 requires the client to say so before sending. **No route reads reports back** — that would be a way to ask the relay what somebody reported. Asserted against the router, so adding one breaks it deliberately. An empty copy is accepted: refusing would mean the only way to report is to hand over a copy. Three tests initially passed for the wrong reason (signing path mismatch made `authenticate` throw a `WireError`, satisfying `#expect(throws:)`). They assert the error code now. 8 new tests; full relay suite 478 green.
paulhitt commented 2026-09-02 14:48:30 +00:00 (Migrated from gitlab.com)

mentioned in merge request flamenet-messenger-ios!65

mentioned in merge request flamenet-messenger-ios!65
paulhitt commented 2026-09-02 14:50:45 +00:00 (Migrated from gitlab.com)

mentioned in commit flamenet-messenger-android@c5f7343384fab169d693f14dd347f39cc44d8c32

mentioned in commit flamenet-messenger-android@c5f7343384fab169d693f14dd347f39cc44d8c32
paulhitt commented 2026-09-02 14:50:50 +00:00 (Migrated from gitlab.com)

mentioned in merge request flamenet-messenger-android!28

mentioned in merge request flamenet-messenger-android!28
paulhitt commented 2026-09-02 19:19:52 +00:00 (Migrated from gitlab.com)

Client side of this, for the record. It does have both halves — the titles just do not show it:

  • iOS: ios!65 "Report or block from a story" — posts to /e2e/moderation/report
  • Android: android!28 "Report or block from a story" — same endpoint, via RelayClient

So this is not a relay-only change looking for a client. It is a three-MR set, and the two clients should land after this one, since they call an endpoint that has to exist first.

One gap worth naming while it is in view. This endpoint takes a subject and a reason and does not care what kind of thing it is, but both clients can only reach it from the story viewer. There is no way to report a message or a contact — see ios#61 and android#12, filed just now. No change needed here; the endpoint is already general enough.

**Client side of this, for the record.** It does have both halves — the titles just do not show it: - iOS: ios!65 "Report or block from a story" — posts to `/e2e/moderation/report` - Android: android!28 "Report or block from a story" — same endpoint, via `RelayClient` So this is not a relay-only change looking for a client. It is a three-MR set, and the two clients should land after this one, since they call an endpoint that has to exist first. **One gap worth naming while it is in view.** This endpoint takes a subject and a reason and does not care what kind of thing it is, but both clients can only reach it from the story viewer. There is no way to report a message or a contact — see ios#61 and android#12, filed just now. No change needed here; the endpoint is already general enough.
paulhitt commented 2026-09-02 19:38:00 +00:00 (Migrated from gitlab.com)

added 6 commits

  • 834cba50...1a0a93fa - 4 commits from branch main
  • 202ee211 - Accept a report, so blocking is not the only thing a person can do
  • 4b2b73ed - Give reports a switch, and say in discovery which way it is set

Compare with previous version

added 6 commits <ul><li>834cba50...1a0a93fa - 4 commits from branch <code>main</code></li><li>202ee211 - Accept a report, so blocking is not the only thing a person can do</li><li>4b2b73ed - Give reports a switch, and say in discovery which way it is set</li></ul> [Compare with previous version](/paulhitt/flamenet-relay/-/merge_requests/24/diffs?diff_id=2000714939&start_sha=834cba50b1f323ee08145a4d898a4cad9a305db6)
paulhitt commented 2026-09-02 21:55:31 +00:00 (Migrated from gitlab.com)

mentioned in commit flamenet-messenger-android@6fe463d57873aff3c3e018e90093f0f55e2d2d8e

mentioned in commit flamenet-messenger-android@6fe463d57873aff3c3e018e90093f0f55e2d2d8e
paulhitt commented 2026-09-03 00:00:37 +00:00 (Migrated from gitlab.com)

added 17 commits

  • 4b2b73ed...58e2d980 - 15 commits from branch main
  • 9bab0874 - Accept a report, so blocking is not the only thing a person can do
  • 2cc0a80a - Give reports a switch, and say in discovery which way it is set

Compare with previous version

added 17 commits <ul><li>4b2b73ed...58e2d980 - 15 commits from branch <code>main</code></li><li>9bab0874 - Accept a report, so blocking is not the only thing a person can do</li><li>2cc0a80a - Give reports a switch, and say in discovery which way it is set</li></ul> [Compare with previous version](/paulhitt/flamenet-relay/-/merge_requests/24/diffs?diff_id=2001139351&start_sha=4b2b73ed3c3307ccd24096038e5a85c8f4d8bc16)
paulhitt commented 2026-09-03 00:01:45 +00:00 (Migrated from gitlab.com)

mentioned in commit deb55da5cf

mentioned in commit deb55da5cf7ac90948e62c8ea35c6fcd7ec40b19
paulhitt (Migrated from gitlab.com) merged commit deb55da5cf into main 2026-09-03 00:01:45 +00:00
paulhitt commented 2026-09-09 18:59:18 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
Sign in to join this conversation.