Cancel translate jobs instantly by running tsx in background
When Forgejo cancels a workflow, bash waits for any foreground child to finish before processing the signal — so a running tsx locale job would block cancellati...
Show existing org domain instead of entry form when no custom domain
Fall back to the org's platform subdomain as the display domain so DnsProgressView renders rather than DomainEntryForm when no custom external domain exists. Al...
Correct account list member/teamMember fallback labels and trigger redeploy
Restore NavPri panel labels and LeadHistory column headers
NavPri: salvage-keys grabbed href URLs as label values and swapped label/description pairs for Accounts, KB, and Notes nav panels. LeadHistoryPanel: MUI bgcolo...
Add COMP payment method option to subscription order wizard
COMP is a valid backend PaymentMethod enum value for complimentary platform-admin grants, but was missing from the frontend type and wizard UI — only INVOICE an...
Show platform domain context when no custom domain is set
Surface the active *.kamocrm.com hostname in the domain entry form so users can see their current platform domain instead of a blank entry screen. Also fixes ve...
Revert "chore(messages): add wave3 translation merge fragments (JSON)"
This reverts commit ****************
Revert "feat(setup-dns): show platform kamocrm domain on custom domain entry"
This reverts commit ****************
Show platform kamocrm domain on custom domain entry
Surface the active *.kamocrm.com hostname on the add-domain flow and detect custom domains by excluding kamocrm URLs instead of default-flag alone.
Checkpoint translations per chunk and per locale on main
Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...
Checkpoint translations per chunk and per locale on main
Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...
Disable Docker BuildKit cache so every pipeline run does a full rebuild
Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.
Bust Docker BuildKit cache per commit so npm run build runs every push
Identical checkout trees (e.g. empty commits) reused cached layers and skipped a real Next build. Pass GIT_COMMIT from the workflow and label the image revision...
Serialize member-security and members PUT calls to avoid CockroachDB conflict
Two concurrent writes to the same `members` row caused a serializable isolation conflict — member-security read the row while the members endpoint wrote to it (...
Show Manage Domain button for top-level org owners and system members
Unwrap catalog and calculation from backend response envelope
getSubscriptionCatalog returned { catalog: {...} } but was cast directly as SubscriptionCatalog, leaving catalog.plans undefined and the plan selection step bla...
Use ss instead of fuser to kill stale port-forward (fuser not on k0m1)
fuser and lsof are not installed on the runner host. Use ss -tlnp with grep to extract the PID holding port 18080 and kill it directly. Also switch pkill to SIG...
Clean up stale port-forward so cancelled translate job doesn't block next run
Bash doesn't forward signals to backgrounded processes, so kubectl port-forward outlived cancelled workflow runs and held port 18080, blocking every subsequent ...
Restore all broken placeholder values across pages
Salvage-keys script had grabbed CSS classNames, inline styles, and JS template literals instead of the original English text for 114 message keys spanning notes...
Show Set Up Billing button for org owners with no account
When an org owner opens the plans-billing tab and no billing accounts exist, display a bootstrap prompt instead of the generic "contact your org owner" message....
Restore leads page hero title and subtitle from git history
heroTitle was 'Hero Title' (placeholder), heroSubtitle was 'flex gap-2' (salvage-keys accidentally grabbed the adjacent CSS class name). Correct values recovere...
Add statusWindow labels namespace and fix all setting placeholders
- Add **************** (50 keys) so the settings nav sidebar shows real text instead of key paths - Fix branchTypesLabel ICU format: \${branchLabel} → {branch...
Wave 3 conversions, fallback fix, and auto-translate CI
- Replace all hardcoded English strings with t() calls across wave 3 components (chat, clubhouse, support, notes, pipeline, leads, nav, etc.) - Merge wave 3 f...
Match other tool windows' size + color scheme
- defaultSize and minSize now 320x650, resizable: false (matches Softphone, Chat, Calculator, SMS, AI Chat) - Switched from dark slate gradient to the standard ...
Wire next-intl with member.language as locale source
Adds next-intl-based internationalization across kamo-internal without URL locale prefixes. Active locale is read from the kamo-locale cookie, which mirrors the...
Forward Range header so audio playback can scrub
Without this the VOIPService recording-streaming endpoint always returns the full file (Range header is dropped by buildForwardHeaders), which works for play-fr...
Drop dead masterAccountHolder/isMaster UI, refresh stale comments
Account schema no longer carries masterAccountHolder or per-member isMaster flags — those were removed alongside the Account-as-billing-principal refactor. Acco...
Split member APIs; show subs' target org; add billing-owner promote UI
billingApi splits members into accountMembers (canManageBilling, isAccountManager) and subscriptionMembers (isLicensee, canManageSubscription) under ***********...
AccountGroup -> AccountTier; customer-group routes -> customer-tier
Frontend types and API calls updated to match the shared-lib + service rename of AccountGroup to AccountTier. The "Group" naming was leaking into the customer-s...
Rename AccountBillingMember -> AccountMember; isGroupPlanManager -> isAccountManager
Type-level rename across the billing client and the PlansBillingTab: - AccountBillingMember type -> AccountMember - isGroupPlanManager flag -> isAccountManager ...
Add language + default currency to Regional Settings card
Member profile's Regional Settings card now exposes editable Language (22 supported locales mirroring the marketing site) and Default Currency (searchable Autoc...
Rewrite billingApi client onto Account-based endpoints
billingApi now talks to **************** instead of the old /groups/{groupId} routes. Top-level types renamed: - BillingGroup -> AccountBilling - Bill...
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.