Updates
Platform Updates
Public-facing release notes for meaningful changes across Furries PH operational systems.
First created Last updated
Social staff-owned restricted moderation launch
Repositories: partners.furries.ph, partners-api, moderation.furries.ph, social.furries.ph
Status: Locally validated; Git-connected release pending
What’s Changed
- Furries PH Staff is now recorded as the collective operational owner for the initial Social alpha.
- Because no independent reviewer is appointed, the existing
partners-apiservice now fails closed for appeal-reviewer grants, final appeal outcomes, and retention-purge request/approval actions. - Routine reversible moderation, policy/media review, legal-preservation holds, and actor-audited staff work continue through the existing scoped service capabilities.
- The static moderation dashboard shows the restricted profile and does not offer the unavailable appeal-reviewer grant. It adds no Pages Function, browser database client, new Worker, or background request path.
Impact
- Members may still submit an appeal, but staff cannot issue an appeal outcome until an independent reviewer is formally appointed.
- Retention review remains read-only; destructive retention purges are not available under this launch profile.
Upgrade Notes
- No member action is required. To enable the restricted functions later, record the independent reviewer, policy version, and review date, then make the deliberate deployment-owned change documented in the moderation launch register.
Validation
- API launch-profile and retention source contracts, API TypeScript checks, dashboard typecheck, 17 dashboard tests, production build, and local rendered restricted-launch evidence passed.
Social custom-emoji moderation activity
Repositories: partners.furries.ph, partners-api, moderation.furries.ph
Status: Released and hosted-certified
What’s Changed
- Staff-curated Social custom emoji now have a deliberately narrow moderation activity contract: publish and archive lifecycle changes create one normal-priority catalogue update, with reactivation recorded as publish.
- Authorized staff can review only the catalogue shortcode, display name, lifecycle, revision, and update time. The review does not open a member report or case and does not expose an uploaded asset, Sanity location, uploader identity, member content, report, or enforcement controls.
- The design continues to use the existing
partners-apiWorker and static Pages dashboard. It adds no Pages Function, second Worker, queue, scheduler, direct browser database access, or AI moderation process. - The deployed API certificate confirms a
media.managestaff role can publish and archive a catalogue emoji without gaining broader case access. It also verifies the revisioned cursor, safe review, direct-table denial, and removal of disposable test identities, operational records, and the test image.
What To Do
- Record the named moderation owner and independent reviewer before enabling this staff workflow for the community.
Private Social Event RSVP is released
Repositories: social.furries.ph, partners-api, partners.furries.ph
Status: Published through Git-connected deployments
What’s Changed
- Social members can deliberately review and set a private Going or Interested RSVP for a currently public Event without registering, buying a ticket, checking in, or joining an attendee list.
- RSVP reuses the existing member account and Event identities. It does not create a Social-only profile, copied Event, registration, payment, or attendance record.
- A future Going card can appear on a public Social profile only when the member separately enables Event activity and the Event organizer allows the disclosure. Interested RSVPs and past-event history stay private.
- A small follow-up migration repaired the public Event URL validator so valid
furries.phEvent links can enter the service-owned discovery projection.
Impact
- Members gain a lightweight way to track public Events while registration and admission continue to be owned by the normal Event and Rego workflows.
- The Social Pages app still sends dynamic requests only to the existing
partners-apiWorker. The RSVP data has no direct browser database access, no Pages Function, and no additional Worker.
Upgrade Notes
- No member or Event-operator action is needed. Members can use Social RSVP only as a private planning signal; the normal Event and Rego workflows remain the source of truth for registration and admission.
Validation
- The focused API/schema contract passed 21 assertions and the Worker TypeScript check passed locally.
- The Social SPA passed type checking, 186 tests, its local route-browser certificate, and the production build.
- The applied migrations are present in the remote migration ledger. The opt-in hosted two-account lifecycle certificate passed owner-only access, direct Data API denial, privacy-gated Going disclosure, and fixture cleanup.
Safer live friendship-withdrawal certification
Repositories: partners-api, social.furries.ph, rego.furries.ph
Status: Git release ready; no member-facing workflow changed
What’s Changed
- The opt-in three-account friendship-withdrawal check now creates, withdraws, verifies, and cleans up its disposable identities through the existing guarded API test-run facility.
- The checker no longer needs a database service credential on the computer that runs it. Its verification response is limited to the test run’s own relationship states, deactivation markers, receipt counts, and Friends / discovery settings.
Impact
- The database service credential remains Worker-only while operators retain a repeatable live check for account withdrawal, cross-surface friend removal, public-profile withdrawal, and an unaffected counterparty-owned block.
Upgrade Notes
- Run the opt-in check only with the separately managed test-control credential. It can operate only on fixtures created by that exact test run and performs its normal cleanup before reporting success.
Validation
- The focused contract now passes 18 assertions, and the Worker type check and certificate syntax check pass locally.
Canonical friendship withdrawal certificate hardening
Repositories: partners-api, partners.furries.ph, social.furries.ph, rego.furries.ph
Status: Production API validation update; no member-facing workflow changed
What’s Changed
- The canonical friendship withdrawal certificate now verifies the surviving member’s everywhere-block rule by its SQL meaning rather than a specific indentation layout.
- The validated withdrawal path still removes active relationships for an Auth identity that is removed, preserves a block owned by the other member, and suppresses the withdrawn Social identity from both Social and Regosite.
Impact
- Operators receive a reliable source-level release check when the migration is reformatted. No existing friend, block, account, event, or public profile data changed as part of this validation update.
Upgrade Notes
- No action is required. The later Worker-owned fixture update removes the caller-held database service-credential requirement.
Partners campaign saving
Repositories: partners.furries.ph
What’s Changed
- Creating or editing a standalone campaign in Affiliates & Tracking now writes the campaign immediately and reloads the server-confirmed value.
- A failed write remains in the editor with a clear error instead of appearing saved only until the page reloads.
What To Do
- Event operators can use Create campaign or Save changes in the campaign dialog; the dashboard confirms the saved campaign before closing it.
Social rich media has a review-first delivery path
Repositories: partners-api, partners.furries.ph, social.furries.ph
Status: Git release ready; migration publication and authenticated delivery certification remain pending
What’s Changed
- Audio and video uploads remain held for review. After staff release, a member can select up to 20 of their ready items and attach up to four total media items to a post.
- Rich media is delivered through the existing
partners-apiroute only after it is attached to a visible post. The API never returns a direct Sanity asset URL, filename, or storage locator to the Social Pages app. - Friends-only posts apply the existing canonical friendship check before rich media is streamed. Local-visible posts remain available to viewers of the public post.
- A database trigger is staged to reject any post-media attachment unless its asset is an image, audio, or video with a verified review state.
Impact
- Members can use reviewed audio and video without creating another Worker, a Pages Function, Queue, or direct browser connection to Supabase or Sanity.
- Moderators retain a review gate before rich media can be published, while the member-facing composer can safely show only its own ready-to-attach metadata.
Upgrade Notes
- Merge the paired API and database changes through Git, then publish the reviewed migration in the normal controlled migration window.
- Do not treat the database guard as live until migration publication and authenticated end-to-end delivery certification have both completed.
Validation
- The API rich-media validator passed 5 assertions, its route-contract test passed 17 assertions, and the Worker TypeScript check passed locally.
- The staged migration contract passed 20 assertions; the partner static app completed Astro diagnostics with 0 errors and 0 warnings.
Social account creation is open with four required fields
Repositories: social.furries.ph, partners-api, partners.furries.ph
Status: Published
What’s Changed
- New Social members now enter only their email address, profile name, username, and password when creating an account.
- Cloudflare Turnstile remains server-verified abuse protection; it is not a member profile field and does not create an additional setup step.
- Staff invitation-management records remain available for staff workflows but no longer prevent an ordinary member from creating a Social account.
- The Social Pages SPA continues to use only the existing
partners-apiWorker for dynamic requests. The associated service-only database function was safely reissued at a non-colliding migration version before release.
Impact
- Members can join Social without needing a community invitation while Furries PH retains bot and abuse protection at the API boundary.
- Mobile users can reach account creation directly from the sign-in dialog.
- No Supabase or Sanity credentials, direct browser database access, Pages Functions, or additional Workers were added.
Upgrade Notes
- No action is required from existing members or staff.
- The project’s consolidated accessibility testing and remediation pass remains deliberately scheduled as the penultimate phase; Fediverse work remains the final phase.
Validation
- The local signup browser certificate passed 8 assertions, including the exact four-field payload and a single API request.
- Social type checking, 88 unit tests, and production build passed; the migration contract passed 7 assertions.
- The migration was dry-run before publish, then both the
partners-apiWorker and Social Cloudflare Pages production builds completed successfully.
Registration campaign links now keep their discount and quote
Repositories: rego.furries.ph, partners-api
Status: Published
What’s Changed
- Campaign landing links now retain recognised UTM and affiliate parameters while a visitor moves through the registration site.
- Campaign attribution is handled separately from affiliate codes, so a campaign link no longer shows an invalid-affiliate message.
- Registration quotes now show the original subtotal, the campaign discount, and the resulting subtotal after discounts correctly. Payment surcharges remain included in the final total.
Impact
- Visitors using a campaign QR or shared link receive the configured campaign discount throughout their registration flow.
- Support and event operators can reconcile the displayed subtotal, discount, surcharge, and total without a misleading duplicate subtotal.
Validation
- The API TypeScript check passed before deployment.
- The registration site passed Astro diagnostics and a production static build.
- The Worker and Cloudflare Pages deployments completed successfully.
Verified Social Event Pages Link Safely to Official Events
Repositories: partners-api, social.furries.ph
Status: Git release complete
What’s Changed
- A partner-verified Social Event Page now reuses the same signed-proof check as event discovery before it presents its verification state.
- When a current public event-discovery projection is available, the Page shows
a named
Official eventlink to the canonical Furries PH event route. - If that public projection is unavailable or stale, the Page stays online and clearly says that the official link is temporarily unavailable. It does not guess a route or expose an event identifier, signing proof, Page staff data, or private operational data.
Impact
- Members can move from a verified community Event Page to the corresponding official event page with a clear trust boundary.
- Event organisers keep their Page available during a public-event projection refresh, without an unsafe or misleading fallback link.
Upgrade Notes
- No member action is required.
- Event Pages still need an explicitly selected canonical CMS event mapping and the configured Git-connected main-site rebuild hook before a new verification can be issued.
Validation
- The API signed-attestation certificate passed 19 local assertions and the Worker TypeScript check.
- The SPA passed 65 local tests, type-checking, a static build, and a local browser fixture with a named official-event link and no console errors.
- Git-connected Cloudflare Worker and Pages builds passed before release. No GitHub WCAG audit workflow was used.