Updates
Platform Updates
Public-facing release notes for meaningful changes across Furries PH operational systems.
First created Last updated
Publishing cleanup reserves time for receipts
Repositories: Partners API, Partners database. Status: Database change applied and API released through a successful Git-linked build.
Cleanup now bounds database, permission, connection refresh and provider calls, reserving time to save each result. A late response after admission times out cannot start deletion. Uncertain claim or receipt responses retain their leases; uncertain provider responses require deliberate outcome inspection. Previously removed children remain recorded when a later operation fails.
New Facebook Page feed receipts can use the existing deletion workflow after the current Page token and exact post author match the immutable receipt. Only the provider’s explicit success acknowledgement records deletion. Older receipts and bare video/photo IDs remain outside automatic Page-post removal. This follows Meta’s documented Page post deletion endpoint; missing posts, permission failures and unavailable links do not prove removal.
The scoped database release verified exactly one migration, service-only command access and no remaining files in its final dry run. All 30 local publishing suites, API typecheck and Worker dry build pass, including actual PostgreSQL admission/recovery and stalled-call tests. The signed-in hosted API correctly rejects the older Facebook receipt because its acknowledged deletion manifest is absent. This is hosted admission evidence, not live automatic Facebook deletion proof. All five earlier test posts have verified cleanup; future tests require immediate removal after confirmation. Other-network consent, live media and remaining provider acceptance stay open.
Publishing acceptance posts removed after verification
Repositories: Partners API, Partners. Status: All five known acceptance posts removed from their external destinations.
Four Discord test messages were removed and their exact receipts verified absent. The Facebook text test was permanently deleted from the Page’s Trash, then checked again in Trash and at its original post link. Normal community posts were untouched. One uncertain bot deletion was completed manually and reconciled through the audited recovery workflow; the retired webhook destination could not delete through its disconnected transport and was cleaned up in Discord.
Future publishing tests must remove the exact external posts immediately after confirming delivery and content, then verify their absence. A test destination must have a working cleanup path before another test goes live. Private receipts and recovery evidence remain in the operational record. This cleanup does not certify live media delivery or the remaining network integrations.
Publishing checks measured media before saving
Repositories: Partners API, Partners. Status: API and editor released through successful Git-linked builds.
Publishing now reads file size, format and dimensions from the approved source asset. Selected videos are inspected for their actual duration and container details rather than relying on an author-entered duration. Images converted for Discord, Instagram and TikTok have their outgoing JPEG size checked separately. Current documented destination limits and the connector’s own upload limits are checked before a draft is saved and again before delivery.
The media picker shows readable file details and whether inspection is needed. Choose Check media and destinations to inspect a selected video; saving also performs the check. Editing the post’s text does not repeatedly download video metadata. A failed check preserves the draft, and an older response cannot replace measurements for a changed selection. Only approved media references are accepted; credentials and upstream asset addresses remain private.
All 29 local publishing suites, API/Partners typechecks, the Worker dry build and Partners/Docs production builds pass. Browser checks cover measured-media authoring and the complete publishing lifecycle; desktop/mobile accessibility scans found no violations. Local checks use synthetic container structures and solid-color fixtures. They do not prove live image/video delivery, frame decoding, every provider’s codec requirement or large-file upload support. Remaining network consent, provider approval, recovery/deletion and live media acceptance remain separate release work. No CMS test packs or AI artwork were posted.
Discord cards have reusable styles
Repositories: Partners API, Partners. Status: Editor, API and bounded database command released; named-style saving/reuse and live bot card delivery verified.
Discord announcement cards use ordinary controls for accent colors, author/footer icons, dates, images, fields and a structured preview. The style library lets teams reuse presentation on later posts without replacing each post’s content. Styles reference approved images rather than attachment positions; unavailable images require review. Publishing managers maintain the style library, and concurrent saves use the existing brand version check. Updating a style retains its identity; deleting it does not change previously authored posts. Existing titles, descriptions, links, timestamps and field values remain specific to each post.
The signed-in publishing administrator saved a Community announcement style and applied it to a different draft. The Furries PH bot delivered the approved rich card once in the authorized test channel; author/footer text, accent, inline field and timestamp were visible in Discord. Images/icons have solid-color fixture coverage; this live canary did not contain media. No CMS test packs or AI artwork were posted.
The database command now admits bounded presentation styles, preserves styles omitted by older clients, and retains management permissions, version checks and private execution. Invalid dates show a friendly error without losing the authored timestamp. Repeated card links are rejected before Discord can hide later cards, and acknowledged style changes appear in other open destination editors. All 25 API publishing suites, actual SQL style command checks, Partners typecheck/build, focused browser regressions and three accessibility scans pass.
Destination schedules follow post rescheduling
Repositories: Partners API, Partners database. Status: Fix deployed and hosted timing re-test passed.
A live Discord bot test exposed that moving a post’s publication time left inherited destination times unchanged. Newly saved destinations now follow the current post schedule unless the operator explicitly sets a separate destination time. Explicit overrides remain fixed. Older non-null schedules require review before changing their source time; queued older posts can be cancelled and recreated as reviewed drafts. No historical schedule is silently rewritten.
All 24 publishing suites pass, including 39 PostgreSQL workflow groups covering inherited and explicit times, expiry rollback, concurrent edits and delivery that has already started. API typecheck and Worker dry build pass. The exact migration is registered remotely, its command remains service-only, and the scoped dry run has no pending files. The hosted test stayed queued with zero attempts after its original time, then published once through Furries PH Bot after the updated time. A separate cancelled test remained cancelled with zero attempts after its deadline. These are text-only provider proofs; real media and other networks remain separate acceptance work.
Social publishing follows operational roles
Repositories: Partners API, Partners, Admin. Status: Operational role access and approval changes deployed. First live Facebook and Discord text-only posts delivered.
FPH super-admins can use the normal publishing workspace across clients. Partner Admin, ConOps and Marketing can manage publishing accounts, settings and members, approve content and publish within their own partner. Teams no longer need to assign each operational member a separate publishing owner role for those actions. Explicit client permission denials and time limits remain in force. Other platform staff retain their existing boundaries.
Explicit support sessions remain read-only even for super-admins. Social Publishing uses the current signed-in session and permissions without an extra recent-authentication ceremony. Authorized reviewers can approve their own posts and templates; a different person is no longer required. Explicit approval settings, client suspension and approved-media requirements still apply. The platform sign-in policy and provider consent continue to govern account access.
All 23 local publishing suites pass after the approval change, including client isolation, explicit denial, permission windows, malformed permission graphs, global super-admin access, support restrictions and delivery authorization rechecks. API typecheck and Worker dry build pass. Only the reviewed access and author-approval migrations were applied; their changed functions remain service-only and final scoped dry runs have no pending files. Partners and Admin typechecks, production builds and focused browser checks pass, including author review of posts and templates. The Git-linked runtime deployments succeeded. Provider and media transport inspect redirects without following them; regressions reject redirected credentials, receipts and media. Definitive connection failures retain input for an explicit retry; uncertain saves remain readback-only.
The authorized Facebook Page and Discord test channel connected through the signed-in workspace. A neutral text-only draft was saved, approved by its author and queued without repeated authentication. The scheduled publisher delivered both destinations, with one acknowledged attempt per destination; the Facebook post is visible on the selected Page. This proves the first Facebook and Discord text-only publishing journey. Real image/video, other networks, future scheduling and provider-specific recovery remain separate acceptance work.
Social publishing workflows released
Repositories: Partners, Partners API, Admin, CMS. Status: Source released; ten publishing migrations applied. Real provider delivery remains unverified.
What’s Changed
Social publishing now has delivery handlers for Discord, Telegram, Facebook Pages, Instagram professional accounts, TikTok, X and Bluesky. Partner operators can tailor approved media and copy for each destination, review and schedule posts, inspect delivery receipts, and reconcile uncertain outcomes before retrying. Destination schedules and expiry are enforced by the delivery queue. Client owners can assign publishing roles; reusable templates require approval before they create a fresh draft.
CMS media restrictions now follow every draft and delivery. Assets marked do not distribute or missing required policy cannot be exported or sent. Each network must be permitted by the pack, and mature media requires an adult audience. Scheduled delivery rereads current CMS approval after account refresh; withdrawn or changed approval stops sending, with accepted uncertain work held for review. Existing media downloads also recheck policy. The updated 21-suite local gate passes. The CMS readiness check found no social asset packs. The new Studio release includes measured video duration; the dataset schema has been deployed. CLI configuration now targets the existing external CMS Studio so registered schema/manifest updates follow the canonical application. Authorized editors must supply approved test media before real delivery acceptance.
The CMS editor checklist now explains these network, audience, duration and fresh-approval requirements. Task tracking separates completed local policy checks from production release and real delivery acceptance. Operators still need to identify the client, approved source media and intended test destinations; app credentials remain the final configuration input.
The Facebook publishing app is now created and published in Meta. Its exact callback, Partners website and public privacy/deletion instructions are configured, and its generated credential is installed in the shared API with a protected recovery copy. Required Facebook permissions are ready for testing. This does not prove account consent, permission review for other businesses, or real post delivery. Instagram, TikTok and X still require their remaining provider setup. The existing provider bundle now uses the final text-binding slot; extend it rather than adding individual secrets.
Impact
Discord rich embeds now keep titles, descriptions, fields and approved image attachments through authoring, templates, client copies and delivery. Invalid links, oversized content or missing target images block saving instead of silently losing content. Mention notifications stay disabled. Bluesky recovery checks the exact record and content and retains the CID receipt needed for safe deletion; a conflicting record requires review.
Admin now offers explicit first-owner setup for eligible active client members, including contributors, approvers, publishers and viewers who already have a publishing role. Confirmation records the reviewed role; if it changes, reload members and confirm again before promotion. Publishing role changes require recent passkey or authenticator verification; stale, conflicting or uncertain assignments require a member reload before retry. Local API, owner setup and rich-authoring checks pass; no production role or real provider post was created by these checks. The setup guide now uses DNS verification for TikTok’s media domain and confirms that the installed encryption key must be preserved. The CMS schema is deployed; a fresh readiness check still found zero approved publishing packs. Editors must prepare rights-approved content before controlled delivery tests.
Posts and credentials stay within the active client. Successful destinations are excluded from retries. Withdrawn or expired media cannot be fetched for a new delivery, and expired work cannot initiate another send. TikTok public posting remains subject to provider approval; upload-to-draft requires the creator to finish in TikTok. CMS video renditions require a measured duration.
X threads retain each accepted part before sending the next reply. Bluesky supports structured links, mentions, hashtags and external cards. Discord and Telegram connections verify destination access without sending a test message; linking and immediate platform-account publication require recent strong authentication. Live tests must still confirm provider permissions and Telegram forum-topic delivery.
Manual-only authoring can export copy without connected accounts. Client brand defaults and event starters help prepare new drafts; cross-client copies require explicit target destinations and target-approved media, then start again as unapproved, unscheduled drafts. Existing posts keep their original approvals and delivery history.
Support access now has an explicit reason, short expiry and a read-only boundary. Canonical Admin provides explicit client selection and closes active support access before switching clients. Disabling a publishing client stops new drafts and queued delivery; provider work already accepted requires review. Partners has a scoped operator inbox with read receipts. Local keyboard checks confirm dialogs return focus to the opening control, and 22 tested desktop/mobile states have no automated WCAG A/AA violations.
Delivery receipts preserve acknowledged thread and album items for recovery. Expired or consumed one-use authorization secrets are cleared in bounded batches while account sessions are retained. Confirmed post deletion is integrated locally for Discord, Telegram, X and Bluesky, with recent authentication, an explicit reason, per-item receipts and a hold on uncertain outcomes. Operators can inspect the exact remaining item and record evidence before confirming removal or authorizing another attempt. Stale or concurrent reviews conflict, and open evidence forms survive quiet refresh. Shared CMS media and delivery history are retained. Owners can now choose local draft/history/inbox retention and place holds on individual posts. Defaults keep indefinitely; cleanup preserves delivery receipts and shared CMS assets, and redacted posts remain read-only. Entered settings and hold notes survive conflicts and quiet refresh. Local checks cover 21 behavioral suites and 92 database concurrency cases, including competing cleanup/hold and policy changes. Hosted delivery remains unverified; no real post was deleted by these checks.
Upgrade Notes
The publishing migrations and API, dashboard, Admin and CMS releases are now deployed. Configure provider applications and callbacks, connect the intended accounts, and complete controlled live publishing tests before relying on scheduled delivery. Provider app credentials use one server-only secret to fit the current hosting binding limit. Local API behavior, PostgreSQL workflows, encrypted media transfers and desktop/mobile authoring checks pass; these results do not prove a hosted release, provider approval, or delivery to a real account. Exactly ten publishing migrations were applied after a scoped dry run, with no unrelated migrations selected. Read-only production checks confirm 17 publishing tables and 41 service-only functions; the final scoped dry run has no pending migrations. Complete local API routing checks pass, and hosted Bluesky OAuth discovery now returns its public client metadata and callback. The saved encryption key is provisioned with its protected recovery copy retained. No provider posts were made. Cross-site Admin support transport now has the required header allowance in source, with real Chrome and complete local API checks confirming that approved origins reach authentication while unapproved origins remain blocked. The optional complete-API gate passes 22 suites. Hosted public metadata, support-header CORS and scheduler configuration pass; authenticated workflows and real provider acceptance remain pending. The migration preflight also identified a recorded foundation with missing OAuth state storage. The applied workflow restores that table additively and removes inherited browser grants; 36 local SQL groups verify this recovery preserves existing records and restores service-only access.
Dealer configuration shows the complete package price
Repository: Partners.
The Dealers Den package list and price preview now show the total package cost, including base registration for every included attendee slot. Base-price overrides are respected, while standalone and zero-slot packages keep their fixed price. A breakdown separates the booth fee from included registration costs; optional upgrades, add-ons and checkout fees remain extra. Partners continue editing the booth fee separately.
Validation: Type checking, shared Rego form parity and production build; browser fixtures verify package totals, override prices, zero-slot and standalone packages, live editing and desktop/mobile layouts. Final checkout charges remain API-owned.
Dealer package cards show the included total
Repositories: Rego and Partners shared preview source.
Dealer package cards on the event page and their details modal now display the package total: booth cost plus base registration for every included attendee slot. Tier-based packages respect the organiser’s base-price override. Standalone and zero-slot packages retain their fixed package price. The cards explain that base registrations are included, with optional upgrades, add-ons and applicable checkout fees charged separately. Free events and hidden-price settings remain respected.
Validation: Local event-page browser fixtures cover regular and overridden tier prices, zero-cost overrides, standalone and table-only packages, free and hidden pricing, missing base-tier data, modal agreement and desktop/mobile layouts; type checking, source parity and production builds. The API remains authoritative for final checkout charges.
Home and Event Shop reads overlap startup
Repository: Rego.
What’s Changed: Home’s route and title code now download alongside startup code. Event Shop and older merchandise links start the public catalog read after the current event is confirmed, while rendering code downloads. Exact account and catalog matches are required for reuse; cart and checkout actions keep their current checks.
Impact: Visitors spend less time waiting on sequential downloads before current event/shop content appears. Saved carts, security policy, pricing and checkout behavior retain their existing gates. The design canvas is unchanged. No attendee action is needed.
Upgrade Notes: Type checking, production build, mobile/desktop held-startup checks, 24 Shop entry cases and 12 merchandise destination cases passed. Passive hosted samples verified real HTTP-cache reuse on repeated public visits. A further 120 browser-only samples covered ten selected routes with corrected introduction/role markers. Synthetic checks do not prove real account admission, provider completion or database latency; the hosted catalog currently offers only ended events, so representative upcoming-event timing remains unverified.