KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
August 13, 2026
Refactorkamo-internal

Drop the speed dial heading

The tab is reached by its own icon and the rows say what they are, so a title and a sentence of explanation above them only cost vertical space in a panel that ...

kamo·1mo ago
Featurekamo-internal

Give the support and social windows the member chat's composer

A support ticket and a social DM are the same thing as a member chat — a media session with messages on it — but they were answered through a bare text field. A...

kamo·1mo ago
Fixkamo-internal

Department speed dial hung on Loading forever

The loader effect listed departmentsState in its deps and set it to 'loading' on entry, so React tore that effect instance down immediately, the cleanup flipped...

kamo·1mo ago
Fixkamo-internal

Make Delete actually delete, and select exactly one pill

Delete did nothing. The handler was hung off the pill's focus, and the pill never had focus: preventDefault() in the pointerdown handler — which is there to sto...

kamo·1mo ago
Featurekamo-internal

Speed dial lists the org's department extensions

The tab shipped six invented entries — Sales Team on 1001, a Conference Room permanently ringing — so dialling one reached whatever happened to answer that exte...

kamo·1mo ago
Featurekamo-internal

Widen chat, social, ai-chat and compose windows to the support size

The support ticket window opens at 460px while member chat, social chat, AI chat and the email composer all sat at 360-420. Same dock, same kind of content — th...

kamo·1mo ago
Featurekamo-internal

Show unseen messages on every queue row, not just joined ones

The badge and the row tint were already here — they were simply never populated for most of the list. getUnreadFor read only the live per-session unread map, wh...

kamo·1mo ago
Featurekamo-internal

Delete, magnets, a right-click menu, and a clock that asks which

Six additions to the period graph and the nav clock. DELETE removes the focused pill. Backspace too, because on a Mac the key labelled "delete" IS Backspace an...

kamo·1mo ago
Refactorkamo-internal

One Plans & Billing screen instead of two that each answered half

The platform had two billing screens. /settings/account?tab=billing answered what the organization pays; Plans & Billing on the member profile answered what a p...

kamo·1mo ago
Featurekamo-internal

Show the market onboarding panel when no CRM markets exist

/leads rendered the lead grid with an empty, disabled market tab bar for an org that had never configured a CRM market. It now shows the same onboarding panel /...

kamo·1mo ago
August 12, 2026
Fixkamo-internal

Open at the newest message, and scroll up for the rest

Opening a long conversation showed the oldest loaded message first and then travelled down to the present while the member waited. Both chat surfaces scrolled t...

kamo·1mo ago
Featurekamo-internal

The period graph, and a timecard you edit as a draft

Replaces the one-day timeline on **************** with a whole pay period, and changes what editing one feels like. The pills carry no text. They used to carry...

kamo·1mo ago
Featurekamo-internal

Raise a support conversation when somebody replies in it

Closing a support window is not leaving the conversation, but it was treated as if it were. ChatNotificationListener returned early on every SUPPORT_TICKET noti...

kamo·1mo ago
Featurekamo-internal

Linkable tabs, a working Add Member, and a full history tab

Every tab on /account/view/{id} is a real route now — /members, /history and the rest are links somebody can send, bookmark, or land on. Old ?tab= links redirec...

kamo·1mo ago
Featurekamo-internal

Confirm a clock in/out before writing the punch

The nav clock punched straight off the click. Every other control in that bar is idempotent or trivially undoable; a punch is a wage record that afterwards only...

kamo·1mo ago
Refactorkamo-internal

One strip — filter and refresh beside the sub-tabs

The controls sat in a second full-width row under the tab strip holding three short words and an icon, spending a whole band of the pane on what fits in the spa...

kamo·1mo ago
Fixkamo-internal

Make the option strip yield the room instead of the clusters colliding

The left cluster carried minWidth: 0 while its contents (correctly) refuse to shrink or wrap, so a crowded bar shrank the box below its own content and the cont...

kamo·1mo ago
Featurekamo-internal

Segmented status filter in place of the select

Pending/Complete/All are three short peers that fit on one line, so a dropdown hid two of them behind a click and spent a label and a 170px well to say nothing....

kamo·1mo ago
Fixkamo-internal

Skeleton tracks the shared grid helpers; test jsonBody's 204 guard

The loading skeleton in app/hr/overview/page.tsx still hand-wrote the 1800px breakpoint that OverviewPillars and friends extracted into primitives.tsx (WIDE_BRE...

kamo·1mo ago
Fixkamo-internal

Follow the approval figure into currentPeriod, and stop null reading as zero

SecurityService 7c55054 moved awaitingApproval inside currentPeriod, where the window it describes actually is, and omits it entirely when there is no open peri...

kamo·1mo ago
Fixkamo-internal

Two-up figure rows so no card label wraps

The figure labels are Operator Labels — uppercase, 11px, 0.12em tracking — which puts "Execution incomplete" at 158px, "Blocking exceptions" at 150px and "Await...

kamo·1mo ago
Fixkamo-internal

Stop the fixed chrome labels breaking across two lines

A flex item's automatic minimum size is its min-content width, which for wrapping text is its widest word — so a crowded bar squeezed these controls narrow enou...

kamo·1mo ago
Fixkamo-internal

One glow on the clock icon, not two around the button

The rule carried BOTH a radial-gradient and a box-shadow. The gradient filled its own box while the box-shadow painted a separate ring outside it — two concentr...

kamo·1mo ago
Featurekamo-internal

Slide a crowded nav instead of crushing its options

Pinning more options than a nav can show squeezed the tiles out of shape: both strips were raw overflow boxes and the tiles are flex children with no flex-shrin...

kamo·1mo ago
Fixkamo-internal

Line the card figures up on a shared baseline

Every figure on the masthead and the four pillar cards was its own stacked box — Operator Label above, value below. Operator Labels are uppercase with 0.12em tr...

kamo·1mo ago
Fixkamo-internal

Withheld approval state renders as not-tracked, not clear

attendanceState() marked every member 'clear' whenever blockingExceptions was 0 and timecardState wasn't 'SUBMITTED' — true for every member under a caller lack...

kamo·1mo ago
Fixkamo-internal

AwaitingApproval is nullable, and null is not zero

SecurityService now withholds the approval half of the summary from a caller without FINALIZE_PAY_PERIODS — resolveRole never admitted MANAGE_TIMECARDS to appro...

kamo·1mo ago
Fixkamo-internal

Honest compliance figure, per-section failed states, right gating

The masthead percentage mixed units and could only flatter. `complete` summed org-wide ASSIGNMENT counts while `open` counted MEMBER-DOMAINS off memberRows, cap...

kamo·1mo ago
Fixkamo-internal

Derive overview pillar deep links from sub-tab id maps; kill dead textSecondary in activity rail

OverviewPillars.tsx hard-coded **************** instead of deriving them from **************** the way AttentionLedger.tsx already does — same name-indexed patt...

kamo·1mo ago
Featurekamo-internal

Build the Overview tab as a report over the other four

Full-width reporting console: masthead readout, four tab pillars, the needs-attention ledger, the workforce compliance matrix and an activity rail. Read-only — ...

kamo·1mo ago
Featurekamo-internal

Overview attention ledger, compliance matrix and activity rail

useMemberNames sources /api/security/members/names rather than the brief's guessed .../org-config shape: org-config never returns a member list (confirmed by re...

kamo·1mo ago
Testkamo-internal

Strengthen hrOverview id-precision and attendance-state coverage

The precision test used a 15-digit memberId, which round-trips through Number() losslessly and never proved the join key stays a string. Switch to an id past Nu...

kamo·1mo ago
Featurekamo-internal

Overview masthead and the four tab pillars

kamo·1mo ago
Featurekamo-internal

Overview data hook and shared visual primitives

useHrOverview fetches attendance + docs summaries with allSettled so one dead service degrades only its own sections; it skips fetches entirely for sections vis...

kamo·1mo ago
Featurekamo-internal

Glow red when off the clock, green when on, and drop the bullet

Being off the clock while at work is the state that costs someone money, and it was the one state nothing announced: the indicator was simply absent, and an abs...

kamo·1mo ago
Docskamo-internal

Implementation plan for the Overview tab

kamo·1mo ago
Featurekamo-internal

An Enrollment tab, and hide the member Timecard tab when not enrolled

There was no way to turn timecards on for anyone. Every read surface existed and every one of them correctly showed nothing, because no enrollment could be crea...

kamo·1mo ago
Featurekamo-internal

The Approvals and Exceptions tabs actually exist now

Both backends shipped earlier but neither panel was ever written, so /hr/attendance?sub=approvals and ?sub=exceptions rendered "this tab is being built" over wo...

kamo·1mo ago
Docskamo-internal

Build log through completion

Records the 24-table final schema, the four partial indexes that carry the double-pay and double-code guarantees, the two late schema decisions that each cost a...

kamo·1mo ago
Featurekamo-internal

The period-close screen for an org with 400 people

Re-detect exceptions, recompute everyone's earnings, approve everything the caller can — each reporting PER MEMBER with the reason it refused. "312 of 400 succ...

kamo·1mo ago
Featurekamo-internal

Compliance reports, break attestation, and your own records

A Reports sub-tab on /hr/attendance that runs all three org-wide reports over one window. The rounding report shows the verdict as a chip and the finding as an ...

kamo·1mo ago
Featurekamo-internal

The real timecard configuration tab

Replaces the placeholder with the working surface: workweek start, workday boundary, open-shift threshold, rounding, the review switches, break-rule seeding and...

kamo·1mo ago
Featurekamo-internal

The visual editor, the pay calendar, payroll export, restricted tier

DayTimeline draws a worked day as a 24-hour track with a draggable handle on every punch. A graph rather than a table because a wrong punch is almost never wron...

kamo·1mo ago
Featurekamo-internal

Confirm before stopping a recurring payment

Both cancel actions — a member's own seat and a group manager's plan — now ask first, naming the date cover runs to and, for a group, how many people keep their...

kamo·1mo ago
Fixkamo-internal

Cancelling a group's plan keeps its seats to the end of the paid period

Drops the immediate flag from the client entirely — there is no longer a way to ask for access to stop today, because there is no good reason to want one. The g...

kamo·1mo ago
Featurekamo-internal

Tell people when a bill needs them, and let them stop paying

A banner on the home page when a payment this person is responsible for has failed, linking straight to their billing page. Until now a failed payment showed up...

kamo·1mo ago
Featurekamo-internal

Member Timecard tab and the HRS Timecards settings tab

The member tab is SELF-SERVICE ONLY and gated on identity, exactly like legal-compliance: its endpoints take no member id at all, so it is structurally incapabl...

kamo·1mo ago

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.

Start Free ForeverView Pricing