KamoCRM

Live Change Log

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

17,395
Total Changes
5,910
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,395AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,830TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,328kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,910Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
August 12, 2026
Featurekamo-shared-library

Bounded count/sum/recent queries for one org+assoc live set

HrResourceSummaryService was materialising an org's entire non-hidden Img collection into memory to compute a count, a byte sum and a 5-row recent slice. Adds c...

Kamo·2mo ago
FeatureDocsService

Legal, training and resource summary for the HR Overview

One read per tab domain, each block gated on its own right and omitted rather than refused when out of reach.

Kamo·2mo ago
FeatureSecurityService

Attendance summary for the HR Overview

One MANAGE_TIMECARDS-gated call composing the roster and manager-queue relays with the local exception, employment and pay-period rows.

Kamo·2mo ago
Featurekamo-marketing

Localize the hub cards and stop bundling the English datasets

The four hub pages rendered client components that imported the collection modules directly and took no props, so every card — industry names, integration tagli...

Kamo·2mo ago
Featurekamo-shared-library

Summary queries for the HR Overview

Status histograms, overdue slices and per-member rollups for legal and training, plus template/course status counts. No entity change.

Kamo·2mo 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·2mo 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·2mo ago
FeatureSecurityService

Relay enrollment

MANAGE_TIMECARDS to read or change who is on timecards — enrollment decides who gets paid from this system, so it is held to the HR administrator right rather t...

Kamo·2mo ago
Featurekamo-marketing

Translate the collection pages instead of hiding them

The 2,400 noindexed detail pages were noindexed because their body copy has no translation: competitors, industries, integrations and glossary keep their prose ...

Kamo·2mo 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·2mo ago
FeatureSecurityService

Relay the exception queue

MANAGE_TIMECARDS to read the queue and to waive, because the queue names every member with a problem and waiving changes what the finalize gate reads. The per-m...

Kamo·2mo ago
FeatureInitializerService

The partial indexes that stop a double payment and a code collision

**************** is the teeth behind the export service's refusal to re-issue. A second committed file for one pay period double-pays an entire company, and the...

Kamo·2mo 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·2mo ago
FeatureSecurityService

Relay bulk operations and attendance

The bulk approval role is DERIVED here from the caller's rights and appended to the path — never read from the body. A body-supplied role is a body-supplied pro...

Kamo·2mo 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·2mo ago
FeatureSecurityService

Relay the compliance reports, evidence pack on identity

The org-wide reports need MANAGE_TIMECARDS. The evidence pack does not, when a member pulls their own — and that is the point. The pack is what an employee need...

Kamo·2mo 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·2mo ago
FeatureSecurityService

Relay the timecard configuration surface

MANAGE_TIMECARDS to read the org's rules — the workweek and rounding settings describe how everyone in the org is paid — and FINALIZE_PAY_PERIODS to change them...

Kamo·2mo ago
FeatureDaemonService

Schedule the nightly timecard sweeps

Cron lives here rather than in TimecardService because that deployment is RollingUpdate with maxSurge: 1 — two pods overlap on every rollout and every @Schedule...

Kamo·2mo ago
Featurekamo-shared-library

Org configuration, holiday calendars and schedules

TimecardOrgConfig holds the workweek, workday boundary, rounding, rule-set pointers and the review switches. Nothing in it is read at calculation time — every v...

Kamo·2mo 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·2mo ago
FeatureSecurityService

Relay the editor, authorized by identity before rights

An EMPLOYEE may correct their own record — that is the point of the editor, and refusing it leaves the employee with no way to say the clock was wrong about a d...

Kamo·2mo ago
Featurekamo-shared-library

Carry the adjustment reason on the punch itself

A corrected or inserted time now records WHY on the wage record rather than only in the audit log. Under Anderson v. Mt. Clemens Pottery an employer with inadeq...

Kamo·2mo ago
FeatureSecurityService

Sign former employees in to a restricted tier instead of refusing them

A team member whose employment is not ACTIVE was refused at the door with "Your account exists but is not active at this time." That was the wrong shape. A term...

Kamo·2mo ago
Featurekamo-shared-library

Add the meal start deadline to the break rule

California requires the first meal to BEGIN before the end of the fifth hour. A 30-minute meal taken at hour seven is a full violation even though it was the ri...

Kamo·2mo ago
Featurekamo-shared-library

Pay periods, breaks, premiums, labor accounts, accruals, export

Batches the remaining wage-and-hour schema into one shared-lib change so the whole domain lands in a single KamoInitializer run rather than a migration per phas...

Kamo·2mo ago
Featurekamo-shared-library

Exception model and detector

Makes the blockingExceptions gate real. Until now the transition table read a count that nothing wrote, so every timecard looked clean and 'a missing punch is n...

Kamo·2mo 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·2mo ago
FeatureBillingService

Carry the renewal date on the coverage and group payloads

Both surfaces now report currentPeriodEnd and cancelAtPeriodEnd. The date is what a cancel confirmation actually needs to say — "you keep your seat until the en...

Kamo·2mo 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·2mo ago
FeatureBillingService

One plan per organization, a 25-seat Enterprise ceiling, and a way to stop paying

The plan is now an organization-level decision and nothing else can override it. Letting a self-payer or a group manager pick their own reads like a kindness an...

Kamo·2mo ago
FeatureSecurityService

Approval-tier relay with role resolved from rights

THE ROLE IS DECIDED HERE, from the caller's rights and their relationship to the subject -- never from the request body. A body that could name its own role wou...

Kamo·2mo ago
Featurekamo-shared-library

APPROVE_TIMECARD_ADJUSTMENTS (197) and FINALIZE_PAY_PERIODS (198)

Split so separation of duties is expressible: whoever approves a timecard is not automatically whoever may close a pay period over it. MANAGE_TIMECARDS (183) st...

Kamo·2mo ago
Featurekamo-shared-library

The approval tier state machine

Employee submits -> manager approves -> payroll closes, per the owner's decision. Four rules, enforced in a pure transition table and pinned by 25 tests: 1. A...

Kamo·2mo 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·2mo ago
Featurekamo-internal

/hr/attendance roster and the NavTop clock control

Replaces the HrTabPlaceholder body. The route, HR_TABS entry, MANAGE_TIMECARDS gate and tab i18n keys all already existed; nothing here registers anything. Ros...

kamo·2mo ago
Featurekamo-shared-library

Database-clock accessor on the punch repository

Every punch instant comes from the DB, never the JVM: pods restart and node clocks skew, and a wage record whose ordering depends on which pod answered is not a...

Kamo·2mo ago
Featurekamo-internal

BFF route for /api/security/timecards

TimecardService is ClusterIP with no ingress, so without this route the whole feature 404s in the browser while every service is healthy and every build is gree...

kamo·2mo ago
FeatureSecurityService

SecurityService relay to TimecardService

The authorization boundary. TimecardService holds the data and the engine but no session; this holds the session and decides who may do what, then relays. The e...

Kamo·2mo ago
Featurekamo-shared-library

Workday bucketing, stage 2 of the pipeline

Resolved intervals become per-business-date seconds, ready for the allocator. An interval is SPLIT at every workday boundary it crosses: a 22:00-06:00 shift un...

Kamo·2mo ago
August 11, 2026
FeatureInitializerService

KI registration and schema migration

Tables come from ddl-auto; this runner supplies only what Hibernate cannot -- the partial unique indexes on one open primary assignment and one open pay-rate wi...

Kamo·2mo ago
Featurekamo-shared-library

Workweek and workday boundaries

The workweek is the FLSA overtime unit -- a fixed, regularly recurring 168-hour period -- and it is NOT the pay period. A biweekly period holds exactly two work...

Kamo·2mo ago
Featurekamo-shared-library

Interval resolution, stage 1 of the calculation pipeline

Punches become resolved spans. Pure, total, and over value types rather than entities so every stage is fixture-testable with no persistence context. Durations...

Kamo·2mo ago
Featurekamo-shared-library

Non-pyramiding overtime allocator with jurisdiction presets

Rules are DATA on the RequirementRule shape already used in this library, not code branches, so California is a configuration row instead of a rewrite. Allocat...

Kamo·2mo ago
Featurekamo-internal

Deliver the org timezone to the browser

The client Organization model had no timezone field, useFormatters and next-intl are both configured with no timeZone, and timezoneService's backend call 404'd ...

kamo·2mo ago
FeatureSecurityService

GET ****************

timezoneService.ts has called this endpoint since it was written and it existed in no Java service; the client swallowed the 404 and resolved to UTC. Meanwhile ...

Kamo·2mo ago
Featurekamo-shared-library

WorkSite, the jurisdiction anchor

Named WorkSite, not WorkLocation: TeamMember.workLocation is an existing office/remote enum and a second symbol by that name would collide in every grep. zoneI...

Kamo·2mo ago
Featurekamo-shared-library

Employment and effective-dated assignment revisions

Punches will reference an ASSIGNMENT, not a member. That is what makes concurrent positions, the 29 CFR 778.115 weighted-average regular rate, multi-site jurisd...

Kamo·2mo ago
Featurekamo-shared-library

Effective-dated, append-only pay rate

No employee compensation existed anywhere on this platform before this entity. It is required: overtime is computed against the FLSA regular rate, CA requires t...

Kamo·2mo ago
Featurekamo-shared-library

Append-only punch log and audit event

Both served by NARROW Repository interfaces, not JpaRepository: deleteAllInBatch and bulk JPQL bypass entity callbacks, so the interface shape is what makes app...

Kamo·2mo 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