Discourse will remove unpinned topics from the lists on the categories page if the user has seen them (code here).
I would propose that is too strong. If a pinned post has been read, but is still one of the three most recent topics in its Category, it should remain on the list in the Categories view.
In my community, sometimes a pinned post is not an announcement, but a conversation starter. The current code is useful for announcements that only need to be read once, but there are other reasons to pin posts.
I would recommend removing this code or having it be configurable.
The challenge is - I do want announcements (usually closed topics) to get unpinned and fall to the bottom for members. Due to their time stamp (older posts relative to when a new member joins) they arenât going to appear in the Categories list after they are read. But, if I am pinning a post that is an important, live conversation, I donât want that post to fall off a cliff.
âautomatically unpin topicsâ is site setting to toggle the whole feature. If itâs disabled âdefault topics automatic unpinâ setting be effective anywhere.
âdefault topics automatic unpinâ setting is default user preference value for new signups. Yes, users can override this setting in their user preference (only if enabled)