Preserve int64 org id on create-org redirect to DNS setup
POST /api/security/org: pass through upstream JSON instead of re-parsing, so response bytes keep full id digits. createOrganization reads raw body and extracts ...
Stop duplicating query string in access-logs API proxy
forwardToApi already appends the incoming request search string. Embedding ?params in the path produced malformed URLs and Spring failed to parse page/size (Num...
Align required subdomain list without mail
Match SecurityService KnownAliases for DNS setup UI and manual guide.
Gate behavior labeling on applied-model ready; avoid permissive defaults on fetch error.
Honor security model for ages and ATF on behavior labeling
Parse boolean compliance literals from the API. Build age dropdowns from normalized whitelist tokens and numeric AgeReq ids; avoid showing the full age list whe...
Cache-bust theme CSS and assets via themeRevision
Fetch config with no-store; append v=themeRevision to globals.css and favicon URLs so browsers drop stale cached theme after each provision.
Use getMemberIdString() in NavTop to prevent int64 precision loss
getMemberId() converts the CockroachDB unique_rowid to a JS number, truncating IDs > MAX_SAFE_INTEGER (e.g. 1168485658174423046 → ...000). Switch all NavTop mem...
Send avatar UUID strings to member PUT, not parseInt
Avatar IDs are UUIDs; parseInt produced NaN or truncated values so member avatar updates were skipped or wrong after refresh. Use string IDs for upload, Avatar ...
Show message when photo crop source image is missing
Helps when storage files were removed but the avatar row still exists.
Handle provision-theme HTTP errors and reset provisioning UI
Await POST /provision-theme after branding and background saves; on non-202 show the API error and clear the panel. Increment themeProvisionSession for backgrou...
Connect STOMP before POST to avoid lost progress
WebSocket was only started when provisioning became true, while provision-theme fired in the same turn; async backend could publish before STOMP subscribed. Con...
Forward query string to APIService so org-scoped routes like domains list resolve correctly
Use string org IDs for security org API and theme WS
getOrgId() coerced orgID with Number(), corrupting int64 Cockroach IDs in /api/security/org/{id}/* URLs (404/failed saves). Add getOrgIdString(), use it in Labe...
Clear wizard sessionStorage on fresh create via ?fresh=1
Navigate from Network to create with ?fresh=1, strip the query, and use a short-lived lock so React Strict Mode does not restore an old draft before persist run...
Normalize JSON Content-Type and surface Spring error fields
Force a single application/json header for JSON proxy bodies; org route always sets it. Map Problem Details title/detail in createOrganization errors.
Skip compliance step when policies are fixed; resync branch type from API
Compliance wizard from security model policies
- Branch types API maps alcohol/tobacco/firearms policies into wizard state - Dynamic Compliance step: omit from nav when model fixes all ATF and ages - Age and...
Ensure JSON Content-Type when proxying to SecurityService
Organization creation returned 415 Unsupported Media Type because upstream Spring expects application/json for @RequestBody. Node fetch could omit or default Co...
Compare member IDs as strings for self-check and redirect
User-info API returns memberID as string to preserve int64 precision. isSelf used Number() and strict equality with mixed types, so viewing your own /settings/m...
Repair TicketChat real-time updates after load race
Defer STOMP subscription until initial message fetch finishes so setMessages from the API cannot wipe messages delivered during load. Clear messages when sessio...
Hide deprecated play (and app/media) with case-insensitive matching
- Lowercase statusMap keys and lookups so verification aligns with API casing - Treat hidden infra labels case-insensitively - Strip deprecated labels from effe...
Security role save for locked roles and clearer API errors
- When isAllowEditSecurity is false, omit rights and securityModelIds from the PUT body so SecurityService accepts metadata-only updates (session timeout, d...
Proxy PATCH membership-type to SecurityService
The member profile UI called **************** but no App Router handler existed, so Next returned HTML 404 and the client showed Unknown error after failed JSON...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
