Remove phone + security-questions pages
These were added to kamo-internal by mistake — collection of the phone number and security questions belongs in the registration flow in kamo-register, and has ...
Add Member / Add Team Member pages
- /account: replace single ambiguous button with tab-scoped buttons Add <Member> on the Members tab, Add <Team Member> on the Team Members tab. Each button ...
Rebuild member Plans & Billing around Billing Groups
- Member page Plans & Billing tab is now right-aligned with a pulsing glow and a StarRate icon on the tab bar. Visible when the viewed member is the signed-...
Stop duplicating query string in KB media/articles API proxy
forwardToApi already appends the browser request search params; embedding ?query in the path produced a second ? and broke upstream URL parsing, causing GET /ap...
Align Interaction Center with team members only
NavTop greeting falls back to username when the user is not in the team-only list. Interaction Center copy uses team member wording.
Allow org admins to open other members account pages
Expand client redirect guard beyond **************** to include CONFIGURE_SYSTEM, EDIT_MEMBER_ACCESS_LEVEL, ALLOW_PROMOTING_MEMBERS, organization owner, and pla...
Document Interaction Center title line prop
Clarify that the role field from by-department is the job title line.
Official job title field for team members on my-profile Position card
Show subscription context on Allowed Apps in branch types
Load billing subscription and plan metadata like the Apps tab; gray out rows and show an info alert when a default-on policy would not activate without an eligi...
Treat any COMP subscription as full access on Apps tab
Gate on paymentMethod COMP for all orgs, not only top-level platform owner, so child orgs with complimentary grants see unlockable toggles.
Run GrantDialog plan useMemo before conditional return (React hooks order)
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
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.