Skip to content

Heads-up: posts feeds will be able to contain removed/deleted comments after pkc-js#73 #97

Description

@Rinse12

Summary

Heads-up rather than a bug. pkc-js currently guarantees that removed and deleted posts never appear in a community's posts feed. pkcprotocol/pkc-js#73 turns that guarantee into a per-sort operator option, so a community will be able to publish a feed that includes them. Any hook or consumer that treats "it came from the posts feed" as "it is not removed" will be wrong.

What is true today

The exclusions are hardcoded per generator in pkc-js (src/runtime/node/community/page-generator.ts):

Page Removed Deleted Pending approval Approved false
Community posts excluded excluded excluded excluded
Post replies included included excluded included
Reply replies included included excluded included

So reply pages already carry removed and deleted comments by design, for tombstone rendering. Only the posts feed is currently clean, and only implicitly, since it was never written down until now.

What changes

Under pkc-js#73 those become options on each configured sort (excludeRemovedComments, excludeDeletedComments, excludeCommentPendingApproval, excludeCommentWithApprovedFalse), defaulting to the table above. Legitimate uses include archive feeds and mod-review sorts. A board that turns one off publishes posts pages containing removed content, correctly and intentionally.

Ask

  1. Confirm nothing in the hooks filters or renders on the assumption that posts-feed comments are unmoderated. Consumers should check commentUpdate.removed / deleted regardless of which page a comment arrived on.
  2. Add a line to the hooks docs (README.md / llms.txt) saying the same, since app authors are the ones most likely to be carrying this assumption without knowing it.

pkc-js side is documented in docs/protocol/pages.md under "Moderation Visibility". No action needed until pkc-js#73 lands; filing now so it is not a surprise.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions