Updates
Platform Updates
Public-facing release notes for meaningful changes across Furries PH operational systems.
First created Last updated
Social Adds a Bounded Follow Burst Guard
Repositories: partners-api, partners.furries.ph
Status: Local implementation only; the additive migration and Git-connected Cloudflare Pages release remain required
What’s Changed
- A member can create up to 20 new follows across people and Pages in one rolling minute. Reaching the documented threshold gives a brief cooldown instead of a score, report, content action, or account penalty.
- Existing follows remain idempotent and do not consume the allowance. The service checks and writes under one transaction lock, preventing concurrent requests from bypassing the boundary.
Validation
- The 14-assertion follow-velocity source contract and API type check pass locally. The local Supabase container is unavailable, so migration execution and database advisors remain release gates. No direct upload or deployment occurred.
Social Adds a Bounded Reaction Burst Guard
Repositories: partners-api, partners.furries.ph
Status: Local implementation only; the additive migration and Git-connected Cloudflare Pages release remain required
What’s Changed
- A member can add up to 20 new fixed-vocabulary reactions in one rolling minute. Reaching that documented threshold returns a short cooldown instead of creating a score, report, content action, or account penalty.
- Retrying an already-active reaction remains idempotent and does not consume the burst allowance. The service makes this decision atomically, so concurrent requests cannot bypass it.
Validation
- The 11-assertion reaction-velocity source contract and API type check pass locally. The local Supabase container is unavailable, so migration execution and database advisors remain release gates. No direct upload or deployment occurred.
Social Adds Audited Text-Safety Revision Rules
Repositories: moderation.furries.ph, partners-api, partners.furries.ph
Status: Local implementation only; the additive migration, staff-role checks, and Git-connected Cloudflare Pages release remain required
What’s Changed
- Authorized moderators can create, review, and retire short-lived literal phrase or whole-word rules. Every rule names its policy version, reason, review date, expiry, and editor audit receipt.
- A match asks the author to revise that one post or image description before it is published or attached. It does not create a hidden score, automatically hide content, punish an account, or expose the rule phrase to members.
- The check reuses the existing single post-submission gate call, so it does not add a new browser request or Worker fan-out.
- The staff dashboard keeps this work on demand: eligible policy viewers may load the inventory, while policy managers may create and retire rules. Those requests never join the automatic moderation poll.
- Policy viewers can also test a bounded staff-provided fixture through that same matcher before changing a rule. The preview is not stored, audited, attached to a member, or used to create a signal, case, or enforcement action.
Validation
- The 32-assertion text-policy contract, API type check, and moderation dashboard type check/tests/production build pass locally. The local Supabase container is unavailable, so migration execution and database advisors remain release gates. No direct upload or deployment occurred.
Social Moderation Separates Staff Duties
Repositories: moderation.furries.ph, partners-api, partners.furries.ph
Status: Local implementation only; the additive migration, authenticated role exercises, and Git-connected Cloudflare Pages release remain required
What’s Changed
- Social moderation now uses explicit, expiring staff grants instead of inheriting full moderation access from general Furries PH content-editing access.
- Triage, enforcement/notices, appeal review, policy/media management, and administration are separate duties. Furries PH administrators retain emergency break-glass access.
- The dashboard hides unavailable controls while the API independently rejects every capability the staff member does not hold.
- Authorized staff administrators can now manually grant, edit, review, and revoke those roles from an on-demand dashboard panel. Every change is version-checked and audit-recorded; staff cannot change their own role, and administrator-role changes remain limited to Furries PH administrators.
- Policy managers can manually review and maintain deterministic link and text rules, while administrators can view a privacy-minimized audit index. Existing automated signals are shown only as review context and never act on a member or post by themselves.
- A triage-capable moderator may acknowledge an open signal after review. That creates a minimized audit/activity receipt but does not change the content, account, case decision, or queue priority.
- The same role can record whether a displayed lead was helpful or a false positive, or note a missing expected signal on a post case. These are one-time, structured quality measurements for policy review and never automatically change a signal, rule, priority, case, content, or account.
- Triage-capable staff may now load eligible explicit grants and assign or hand off an open case. The server checks the case version and recipient’s active role, records the routing, and never changes the decision, content, account, or priority.
- Triagers can also add up to eight short queue tags and an optional future due time. These are version-checked, audited work-organization markers and never automatically act on content or an account.
- Triagers may explicitly mark two cases as related or possible duplicates. This is a locked, audited workflow link only: it does not merge reports/evidence or change either case’s outcome.
- Case detail now presents one chronological operational view for authorized staff from its existing audit actions, safety-signal states, notice delivery receipts, and related-case records. It does not repeat reporter identity, private evidence, or notice bodies, and it adds no poll or backend request.
- Notice-capable staff can keep personal response drafts and apply one only to prefill the reviewed notice composer. A draft is never a send action, does not enter polling, and cannot be accessed by other staff.
- Note-capable staff can also explicitly mention up to five eligible moderation colleagues on an internal case note. The note and mentions save together, stay out of member-facing notifications and the automatic poll, and expose only role plus a short opaque staff ID.
- Every case action now carries a single-use command ID. If a network retry repeats the same action, the service returns its original receipt rather than applying the moderation transition twice.
Validation
- API type checking and the 70-assertion moderation contract, plus moderation dashboard tests/type checking/production build and synthetic constrained-role UI checks, pass locally. The local Supabase container is unavailable, so migration execution and database advisors remain release gates. No migration, direct upload, or deployment occurred.
Social Adds Expiring Private Keyword Filters
Repositories: social.furries.ph, partners-api
Status: Local implementation only; the pending additive migrations and Git-connected Cloudflare Pages release remain required
What’s Changed
- Members can now make a private keyword filter expire after one, seven, or thirty days, and can see its expiry date in their own filter manager.
- Each filter can also match whole words only, so a member can avoid broad substring matches. It treats the saved phrase as plain text.
- Expired filters are excluded by the existing API Worker. The setting stays private: it does not report, label, rank, or otherwise affect another member’s post or profile.
- The Social composer now gives a non-blocking reminder when selected images have no optional alt text, helping authors make a conscious accessibility choice before posting.
Validation
- The 13-assertion keyword-filter API contract, Worker type check, and 44 Social tests/type check pass locally. No migration publication, direct upload, or deployment occurred.
Social Adds Curated Starter Pack Foundations
Repositories: social.furries.ph, partners-api, partners.furries.ph
Status: Local implementation only; additive migration publication, curator setup, and Git-connected Cloudflare Pages release remain required
What’s Changed
- Social can now load locally curated Starter Packs and show each included public profile for individual review and following. Packs are not a ranking system and never bulk-follow people on a member’s behalf.
- Only Furries PH editors may curate a pack. Membership replacement is atomic and accepts only active, publicly visible Social profiles.
Validation
- The 11-assertion Starter Pack API contract, Worker type check, and 39 Social tests/type check pass locally. No migration publication, direct upload, or deployment occurred.
Social Moderation Can Restrict Social Participation Without Disabling Rego
Repositories: moderation.furries.ph, social.furries.ph, partners-api, partners.furries.ph
Status: Local implementation only; the additive migration, authenticated role checks, and Git-connected Cloudflare Pages release remain required
What’s Changed
- An authorized moderator can now restrict, suspend, or restore a member’s outward-facing Social participation from a reported profile or individual-authored post case.
- The action blocks new Social publishing and interaction, including uploads, Page administration, follows, friend requests, polls, reposts, and reactions. It does not disable sign-in, Rego access, registrations, or the shared Friends record.
- Members can still read private moderation notices, report content, manage their safety controls, and request independent review. Pages continue to use their separate archive control.
Validation
- API and moderation-dashboard type checks and the 37-assertion moderation contract pass locally. No migration, direct upload, or deployment occurred.
Social Makes People Discovery Individually Actionable
Repositories: social.furries.ph
Status: Local implementation only; Git-connected Cloudflare Pages release remains required
What’s Changed
- A signed-in member can follow an individual public profile directly from people-search results. This helps new members build their own local timeline without a bulk-follow prompt or opaque recommendation system.
Validation
- Social unit tests and type checking pass. A local browser fixture confirms the reviewed search result and its individual Follow control; no deployment occurred.
Social Moderation Adds Independent Review Requests
Repositories: moderation.furries.ph, social.furries.ph, partners-api, partners.furries.ph
Status: Local implementation only; the additive migration, authenticated role checks, and Git-connected Cloudflare Pages release remain required
What’s Changed
- A member can request independent review from a private Social moderation notice, without seeing or sending an internal case reference.
- Appeals are loaded only when an authorized reviewer opens the moderation appeal panel. A moderator who made an enforcement or closure decision cannot decide that appeal.
- Accepting an appeal reopens the case for human review; it does not automatically restore content or a public profile. The outcome is delivered through the same private Social inbox.
Validation
- API type checking and the 32-assertion moderation contract, Social’s 38 unit tests/type check/production build, and moderation dashboard tests/type check/production build pass locally. No migration, direct upload, or deployment occurred.
Social Adds a Private Contact-Information Check Before Public Posts
Repositories: social.furries.ph, partners-api
Status: Local implementation only; Git-connected Cloudflare Pages release and authenticated production verification remain required
What’s Changed
- Before publishing a public local post, Social now warns when its text appears to contain an e-mail address or Philippine mobile number. The member can remove the detail or explicitly confirm that they have permission to share it publicly.
- The check is a limited, deterministic safety nudge rather than AI moderation. It does not return or log the detected value, create a moderator case or hidden score, affect Friends-only posts, or apply an account/content penalty.
Validation
- The nine-assertion API detector/route contract, Worker type check, 38 Social unit tests, and production build pass. A local browser render verifies the warning and disabled-until-confirmed publish control; no deployment occurred.