Updates
Platform Updates
Public-facing release notes for meaningful changes across Furries PH operational systems.
First created Last updated
EPS file delivery repaired and grouped ZIP export released
Repositories: Partners, Partners API. Status: Deployed through successful Git-linked Cloudflare builds.
What’s Changed
EPS file delivery now uses redirect handling supported by the API Worker, fixing a runtime exception that prevented downloads. Files and evidence also offers Download all files (ZIP) with progress and retry controls. Evidence is sorted into requirement and linked work item folders; unrelated files go into General files. File versions have distinct names.
Impact
Event teams can collect the selected plan’s downloadable files in one archive. Existing access and safety restrictions still apply. Evidence shared by multiple work items appears in each linked folder. A failed file stops the export without offering a partial archive.
Upgrade Notes
Refresh EPS, then retry failed downloads or use the ZIP button. Keep the page open until preparation finishes. No migration or new configuration is required. Local typechecks, Partners build, Worker redirect compatibility, byte-preserving file/ZIP checks and desktop/mobile browser checks provide local validation. The frontend build verified 91 reviewed Rego source-lock modules; the stale local sibling checkout was not used for donor comparison. The live API advertises the archive route and returns 401 without authentication; the deployed frontend bundle contains the ZIP control and endpoint. Downloading the original production files with a signed-in account remains unverified.
Release commits: partners-api 4547853d; partners.furries.ph 2cf5d65e.
partners-api4547853d- fix(eps): restore artifact delivery and expose grouped archive filespartners.furries.ph2cf5d65e- feat(eps): download plan files as a grouped ZIP
Security verification and group invitations update in place
Repository: Rego.
What’s Changed: Profile security setup confirms accepted authenticator verification and passkey registration immediately while current account policy is checked in the background. Group invitations use the returned member immediately and refresh the full roster without replacing local form choices.
Impact: Attendees keep their security controls and registration choices visible after accepted writes. Failed follow-up reads offer retry without sending the completed write again. Current security policy, roster, capacity and pricing checks still gate consequential continuation. The design canvas is unchanged.
Upgrade Notes: Type checking, production build and mobile/desktop browser fixtures passed, including held/failed policy and roster reads, authoritative status replacement, partial invite responses and account isolation during held reads. These synthetic checks do not certify hosted verification/invitation timing, account switching during a verification transition, device passkey completion, capacity reservations or payments.
Profile saves keep their summary mounted
Repository: Rego.
What’s Changed: Saving profile preferences from the edit dialog updates the existing summary from the accepted API response, avoiding a full summary remount and another profile request. Transaction receipt reads start independently of rendering code on deliberate history-link intent. Cached Activity introductions expose retry when their current eligibility check fails.
Impact: Attendees see saved profile changes immediately in place. Transaction reads overlap code downloads, and Activity users can recover while their last introduction stays visible. Current account, ownership and eligibility checks still apply. The design canvas is unchanged.
Upgrade Notes: Type checking, production build and mobile/desktop fixtures passed. Checks prove summary DOM continuity, one profile PUT without a post-save GET, receipt reads while rendering code is held, Activity retry/held-save behavior and account isolation. A separate Dealer readiness probe preserves application/fee gates without creating reservations. These local checks do not certify hosted signed-in latency or provider completion.
Rego current reads overlap stylesheet delivery
Repository: Rego.
What’s Changed: Home and event reads start while the stylesheet downloads. Interactive rendering still waits for loaded styles. Public entry skips optional account code, and event descriptions can render before the item dialog finishes loading. Friends accept, remove and block refresh relationship lists together without refetching unchanged privacy settings.
Impact: Visitors spend less time waiting through sequential startup work. Friends updates retain their mounted page and event grouping during a temporary read failure. Further mutations pause if the current relationship refresh fails; access denial clears private data. The design canvas is unchanged.
Upgrade Notes: Type checking and the production build passed. Mobile/desktop held-resource checks prove early read overlap, styled first paint, one overview read, independent sanitized description rendering, account isolation and one-document saves. These controlled checks do not establish hosted signed-in latency or an instant first visit across every route.
My Work keeps its navigation while the page opens
Repository: Partners. Status: f7c9e9e linked Pages build passed; signed-in entry checked.
What’s Changed
My Work retains its admitted workspace shell and navigation while its page code downloads. A completed managed-plans read is reused across that handoff instead of starting again. Planning mutations still trigger fresh reads, and protected work remains gated by current access.
Impact
Operators keep their navigation during a slower page download and avoid a duplicate initial managed-plans request. No action is required.
Upgrade Notes
Partners typecheck, production build and the actual-route browser fixture passed. With the page download delayed by 1.4 seconds, the fixture retained the same navigation element and made one initial managed-plans read and one My Work read. Mutation checks retained fresh reads, and denied admission made no protected reads. A signed-in hosted entry also made one managed-plans read and one My Work read, with the refresh action, filter and board visible. Those reads reported 111 ms and 435 ms of application work; this verifies removal of the duplicate on that visit, not a controlled total page-load speed gain.
Rego browsing and saved changes respond sooner
Repositories: Rego and Partners API. Status: Focused checks passed; source pushed for linked builds.
What’s Changed
Shop browsing leaves the delivery-address editor download until delivery checkout, where it overlaps purchaser entry. Dealer registration loads a selected application alongside the event and reuses its current response. Public furniture summaries download their inclusion dialog only when opened. The issue reporter loads without holding document readiness. Friends decline and unblock refresh only relationship details; renewed requests remain visible using the existing relationship generation. Affiliate payout validation errors appear immediately without waiting for another rewards read.
Impact
Attendees can browse with less checkout code, reach their selected Dealer package sooner, and see confirmed relationship changes or payout corrections without a page refresh. Current ownership, approval, address and quote checks still apply. No action is required.
Upgrade Notes
Type checking, production builds and focused mobile/desktop browser checks passed. Checks cover mounted drafts, current-data gates, account isolation, one-document saves and modal focus/sanitization. The API summary-handler fixture passed. These checks use controlled local responses and do not certify hosted signed-in timing or provider completion. Cold hosted downloads remain an optimization target. The design canvas was not changed.
The final production event document excludes the rich inclusion and Markdown modules from its initial preloads. With those downloads held, published content remained visible on mobile and desktop. Rich content still warms after hydration; this check does not claim zero later downloads.
Documentation builds keep license data outside the page compiler
Repository: Docs. Status: abe11491 linked Pages build passed; hosted reference verified.
What’s Changed
The license reference imports its existing notice records and table from a data file. This reduces the page source parsed by the Astro compiler from about 2.6 MB to 5 KB after a hosted documentation build exhausted compiler memory. All 1,070 notices, table rows and license modal contents are preserved.
Impact
Documentation releases can build without parsing the entire notice inventory as page code. Readers retain the same license reference and modal behavior. No action is required.
Upgrade Notes
Exact data, table and built modal comparisons, Docs check and the 399-page production build passed. The failed release stopped before deployment, so the previous hosted documentation remained available. The successful linked release serves all 1,070 modal records and table rows matching the source after Cloudflare’s email protection is decoded.
Asset capability checks read membership and role together
Repository: Partners API. Status: 45189fe pushed to main; linked Workers build passed.
What’s Changed
For partner operators outside the platform administration scope, Asset Management now reads the operator’s membership and role capability together. This removes a serial database round trip before an authorized asset request can continue. Missing membership and lookup errors still deny access.
Impact
Asset operators may reach their authorized workspace sooner. Existing role permissions still apply, and no configuration change is required.
Upgrade Notes
Focused role, grant, error, scope and asset receipt fixtures, Asset Management and cross-system linkage certification, API typecheck, and Worker dry build passed. Five read-only database comparison rounds returned matching capability results. The joined lookup took 129–228 ms, compared with 268–531 ms for the previous pair of reads. These database measurements do not prove hosted operator page timing or an instant first visit.
Planning My Work reuses scoped requirements reads
Repository: Partners API. Status: 9c46e99 pushed to main; linked Workers build passed.
What’s Changed
Planning My Work reuses its complete scoped requirements result instead of reading the same requirements again for direct assignments and personal submissions. Independent personal submission, delivery and approval reads now start together. Existing access checks, filters, paging and processing limits still apply.
Impact
Partner operators may reach their assigned work sooner because the API performs fewer serial reads. No plan changes or operator action are required.
Upgrade Notes
The focused comparison fixture matched the prior output for 1,006 requirements across multiple pages and retained rejection above 5,000 requirements. API typecheck and Worker dry build passed. One signed-in My Work read reported 347 ms of application work; two initial managed-plans requests remained at that point. This sample does not establish total page-load timing or a controlled speed gain.
Asset and Planning saves keep checking automatically
Repository: Partners. Status: b78926e pushed to main; linked Pages build passed.
What’s Changed
Asset Inventory, Planning Departments and Planning Files continue automatic read-only checks when a save or read response remains uncertain, including beyond the previous retry cutoff. The mounted workspace retains drafts and existing content while checking. These checks do not repeat writes or reload the page. Access denial, scope changes and late responses cannot restore protected content from the prior scope.
Impact
Operators no longer need to trigger a saved-state recheck after the earlier cutoff. Existing edits remain available while current API state is checked. No configuration change is required.
Upgrade Notes
Three focused browser fixture runners, Partners typecheck and production build passed. On a signed-in Test Event, an Inventory save and restoration each sent one write, automatically read the saved state back, retained the active filter and caused no document requests. Restored values survived a deliberate reload. A lost upload response still lacks an API receipt that can establish which upload was saved: matching file metadata does not confirm it. Hosted interrupted-save and upload attribution remain unverified.