feat(feedback): report, suggest, and an inbox in the Profile tab

The app's side of stage 4 (ADR 0005, rule 11). The card's Report sheet
offers "Send to the author too" on a card from a release; a copy's menu
reports the studyset as a whole and lists what is reported and
suggested on it, as Explore's summary does; the editors of cards, notes
and steps suggest them to the author as the learner has them, never
under "no derivatives". The Profile tab holds the inbox: the threads on
the person's published studysets and those they wrote, the newest
activity first, with a count on the tab. A thread shows a suggestion
beside the author's own item and its replies; its writer and the author
reply, and the author accepts (the content becomes their own edit, its
files fetched from the writer's), declines, closes, hides or blocks.
Writing needs an identity; reading what is public doesn't.

ADR 0005 gets an addendum for stage 4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-10 01:29:09 +02:00
commit 1c1a1aada8
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1697,5 +1697,56 @@
"publishLicenseMustStay": "Its original asks adaptations to stay under {license}: choose it under Edit, for every studyset in it.",
"@publishLicenseMustStay": {"placeholders": {"license": {"type": "String"}}},
"exploreBasedOn": "based on {location}",
"@exploreBasedOn": {"placeholders": {"location": {"type": "String"}}}
"@exploreBasedOn": {"placeholders": {"location": {"type": "String"}}},
"feedbackReport": "Report",
"feedbackSuggestion": "Suggestion",
"feedbackOnStudyset": "On the studyset",
"feedbackOnCard": "On a flashcard",
"feedbackOnNote": "On a note",
"feedbackOnStep": "On a step",
"feedbackByOn": "{name} · {date}",
"@feedbackByOn": {"placeholders": {"name": {"type": "String"}, "date": {"type": "String"}}},
"feedbackStatusClosed": "Closed",
"feedbackStatusAccepted": "Accepted",
"feedbackStatusDeclined": "Declined",
"feedbackStatusHidden": "Hidden",
"feedbackReplyHint": "Write a reply…",
"feedbackSend": "Send",
"feedbackAccept": "Accept",
"feedbackDecline": "Decline",
"feedbackClose": "Close",
"feedbackReopen": "Reopen",
"feedbackHide": "Hide",
"feedbackShow": "Show",
"feedbackBlock": "Block {name}",
"@feedbackBlock": {"placeholders": {"name": {"type": "String"}}},
"feedbackBlockTitle": "Block {name}?",
"@feedbackBlockTitle": {"placeholders": {"name": {"type": "String"}}},
"feedbackBlockMessage": "What they wrote on your studysets, and write, shows to nobody but them.",
"feedbackProposed": "Proposed",
"feedbackYours": "Yours now",
"feedbackAuthor": "Author",
"feedbackAccepted": "Taken into your studyset. The next release credits its writer.",
"feedbackDecided": "Done.",
"feedbackReplied": "Reply sent.",
"feedbackBlocked": "Blocked.",
"feedbackNotTaken": "This can't be taken: what it is about isn't in your studyset any more.",
"feedbackFailed": "Couldn't reach your instance. Try again.",
"feedbackUnreachable": "Reports and suggestions can't be reached right now.",
"feedbackRetry": "Retry",
"inboxTitle": "Inbox",
"inboxIntro": "Reports and suggestions on your published studysets, and those you wrote.",
"inboxEmpty": "Nothing yet.",
"studysetFeedback": "Reports and suggestions",
"studysetFeedbackEmpty": "Nobody has reported or suggested anything yet.",
"reportToAuthor": "Report to the author",
"cardReportToAuthor": "Send to the author too",
"cardReportToAuthorHint": "Public: everyone learning it reads it, with your public profile.",
"feedbackReportSent": "Sent to the author.",
"suggestToAuthor": "Suggest to the author",
"suggestHint": "What it changes, and why",
"suggestIntro": "The author sees it as you have it now, beside theirs. Public: everyone learning it reads it, with your public profile.",
"suggestSent": "Suggestion sent.",
"suggestNoDerivatives": "Its licence forbids adaptations: no suggestions.",
"feedbackNeedsIdentity": "Sign in with GitHub to report to the author and suggest."
}