The change shipped end-to-end (58/58 tasks; live on trails.cool since 2026-06-07, soaked against Mastodon and flagship⇄staging). Delta specs synced into the mainline: - specs/social-federation/spec.md created (8 requirements: actor objects + WebFinger, signing keypairs, narrow inbox, outbox, push delivery, trails-only outbound, poll ingestion, audience filtering) - specs/social-follows/spec.md: social-activity-feed requirement updated for remote rows + audience gating; pending lifecycle for outbound remote follows added - specs/public-profiles/spec.md: Pending follow-button state added openspec validate --all: green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
601 B
601 B
ADDED Requirements
Requirement: Pending state on Follow button
When a signed-in viewer has an outgoing follow against a profile that is accepted_at IS NULL (awaiting Accept(Follow) from the remote), the Follow button SHALL render in a Pending state with a cancel option, distinct from both the unfollowed and followed states.
Scenario: Pending state visible
- WHEN a signed-in user has just initiated a follow against a remote trails actor's profile
- THEN the profile page renders a "Pending" indicator with a cancel-request control instead of the Follow or Unfollow button