KamoCRM

Mabadiliko ya Tabianchi

Kila kipengele, kurekebisha na kuboresha, posted kama meli. Hakuna kitu kilichofichwa kwa ajili ya uzinduzi.

17,584
Mabadiliko ya Jumla
6,043
Features ya
5,305
Wa
30
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,584AIService258APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService582InitializerService329KBService151KlusterServices744MCPGatewayService260MediaService602RAGService79SecurityService1,862TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,373kamo-login339kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,672kamo-signer-monorepo56kamolos114
Filter ya aina
Aina zoteBuild16CI523Chore775Docs3,257Feature6,043Fix5,305Other994Performance165Refactor278Revert23Style42Test162Upgrade1
August 27, 2026
Docskamo-internal

Stop telling implementers to run git commit --allow-empty

--allow-empty PERMITS an empty result, it does not force one. With no pathspec it still commits the index, and these checkouts always have another session's wor...

kamo·2mo ago
Fixkamo-internal

The Interaction Center bucket tabs never wrap to two lines

Six full-width tabs share the 550px conversations pane, leaving ~80px each, and "Team Members" did not fit — it wrapped and doubled the strip's height. Both mem...

kamo·2mo ago
Featurekamo-internal

**************** and lock the Enterprise card

Registers the right client-side - list, colour, icon - and adds it to the coverage test's non-tab set with a note on what it actually gates, since it guards an ...

kamo·2mo ago
Fixkamo-internal

An attachment that cannot be read says so, instead of nothing

A media element gives you one bit — it failed — and no status code, and it latches on that bit: it never retries, so whatever went wrong the control simply stay...

kamo·2mo ago
Featurekamo-internal

Show what the chart says before the prescription is written

The server now refuses a prescription that conflicts with a recorded allergy, a drug the patient is already on, or a patient nobody has ever asked about allergi...

kamo·2mo ago
Docskamo-internal

Correct four SW6a claims, one measured false

A plain @Autowired List of an interface with no implementations does NOT resolve to an empty list — it throws UnsatisfiedDependencyException. Measured, not reas...

kamo·2mo ago
Docskamo-internal

Correct three SW6a claims, one of them measured false

An earlier draft said a plain @Autowired List of an interface with no implementations resolves to an empty list. It throws UnsatisfiedDependencyException — meas...

kamo·2mo ago
Refactorkamo-internal

The tab's own session names its organization; `?org=` leaves the URL

Builds directly on 05ff51b3, which established the right source of truth — the tab asks its own session which workspace it is in, over a call the per-tab token ...

kamo·2mo ago
Docskamo-internal

Plan SW6a, and split SW6 into three

The spec calls SW6 'wire the finished UI', which assumed a backend existed to wire to. ServiceJob, ServiceVisit and ServiceLineItem's new columns have zero runt...

kamo·2mo ago
Testkamo-internal

Pin the two form rules that fail silently

Both decide what NOT to send, which is the half of a form with no visible symptom when it goes wrong. A blank remittance line must not become a zero. Every lin...

kamo·2mo ago
Docskamo-internal

Close out SW5

Six departures. The sharpest: the task-book proxy could not be copied from the quotes proxy, which exports PATCH and no PUT — a verbatim copy would have made ev...

kamo·2mo ago
Featurekamo-internal

Author a flat-rate task book, priced by the minute

Replaces the SW5 placeholder pane with the real authoring surface: three sub-views on one tab — books, categories, entries — following the SubView switcher Mark...

kamo·2mo ago
Docskamo-internal

BaseLosController's unauthorized()/forbidden() do exist

A task brief told an implementer those helpers were invented and did not exist. requireOrgId genuinely does not; those two do, declared protected static on Base...

kamo·2mo ago
Featurekamo-internal

Un-gate pricing, tax and tiers for service markets

A SERVICE market got exactly three tabs — Overview, Vendors, Agreements. Customers, Tax & Shipping and Discounts & Pricing were all gated on commerceType === 'R...

kamo·2mo ago
Featurekamo-internal

Apply a remittance to a claim

"Unapplied money" is money the payer has sent that nobody attached to a claim, and the queue could only be looked at. POST_INSURANCE_PAYMENTS gated an operation...

kamo·2mo ago
Fixkamo-internal

An inbound call reads properly and respects the status pill

Three things wrong with the softphone tool window's incoming-call overlay. The number was painted exactly as the INVITE carried it, so a caller arrived as "+15...

kamo·2mo ago
Featurekamo-internal

Four things that could be looked at and not done

Each of these had a working endpoint, a client function, and no way for a person to reach it. Closing an order loop. The open-loops queue exists because the or...

kamo·2mo ago
Docskamo-internal

Restore SW4's close-out, lost to a stale working-tree edit

The previous commit edited the on-disk copy of this plan, which predated the Shipped section — that section was appended to a scratchpad copy and landed from th...

kamo·2mo ago
Docskamo-internal

Applying DDL opens a 40001 window — watch it, do not restart

Bumping a catalog version leaves pooled JDBC connections holding the old one and the next query through each fails SQLState 40001, which Hibernate does not retr...

kamo·2mo ago
Fixkamo-internal

Price-list entry read and update spoke to the wrong endpoint

Two silent client/server mismatches made the retail price-list entry screen's write path dead: - the entries list was unwrapped with the key "entries", but C...

kamo·2mo ago
Featurekamo-internal

Show what extensions cost, where extensions are managed

ExtensionUsagePanel on the stats tab, beside the mailbox and storage panels: count by class, the catalog rate, the monthly total, and the rule in plain language...

kamo·2mo ago
Fixkamo-internal

A failed reaction or edit does not stick to the message

Takes @kamo/chat-core 0.1.9, which rolls an optimistic edit or reaction back when the connection drops rather than only when the server refuses. The bubble's sa...

kamo·2mo ago
Featurekamo-internal

An emoji on a single message, and a message you can correct

A member asked for both on the individual chat. They land on the same per-message menu the window already has, beside Copy and Unsend. Reactions render as a ch...

kamo·2mo ago
Fixkamo-internal

The workspace you chose is the one you land in

Choose "ABC Mortgage" at sign-in and you arrived in a workspace wearing KamoCRM's logo and colours, with a left-hand menu offering White Labeling, Plans & Billi...

kamo·2mo ago
Fixkamo-internal

Keep support tickets out of the per-member unread badge

perSender is what puts a number on a person — their member-directory row, their hex head — so it has to mean "unread messages from them". It was summing every s...

kamo·2mo ago
August 26, 2026
Fixkamo-internal

Saving a settings page no longer repaints the tab as the platform

Signed into Wienerschnitzel, opened Settings → Branding, saved Company Info, and the entire workspace reverted to Kamo's logo and colours. Closing the tab and o...

kamo·2mo ago
Fixkamo-internal

Never lock the provider an org is already using

Two production orgs run 26 and 41 live mailboxes while holding no mail add-on code, so the picker would have told them KamoMail requires the KamoMail Hosting ad...

kamo·2mo ago
Featurekamo-internal

Review emergency access, and gate the last two surfaces

The break-glass review endpoint had a client function that nothing called: every emergency chart access was recorded and there was no screen to read them on. A ...

kamo·2mo ago
Featurekamo-internal

Raise and send a claim from the queue that found the work

The revenue cycle read seven queues and could not raise a claim. Each write now hangs off the queue that surfaced the need for it rather than living on a screen...

kamo·2mo ago
Featurekamo-internal

Correct a patient's details

Details could be entered once and never fixed. The panel sits under the summary rather than in a settings screen, because the moment somebody notices a misspelt...

kamo·2mo ago
Featurekamo-internal

Set up visit types and working hours

The first screen a new practice needs, and the one that did not exist. Booking offers visit types from one table and searches availability against another, so a...

kamo·2mo ago
Featurekamo-internal

Write a prescription, an order and a vaccination

The chart could show all three and create none. One panel rather than three, because they are one moment: a clinician finishing a visit writes the prescription,...

kamo·2mo ago
Featurekamo-internal

Choose who pays for mailboxes, and show the count per invoice

The cost-mode control appears only once a billing group exists — with none the setting changes nothing, and offering it invites the belief it is broken. Invoice...

kamo·2mo ago
Docskamo-internal

Close out SW4

Nine departures. The two that matter most: this plan's own Self-Review asserted a type was consistent across three places, and it was consistent and wrong; and ...

kamo·2mo ago
Featurekamo-internal

A closed head spins away instead of blinking out

Right-clicking a head and choosing Close, or putting one in the goal — thrown in or carried in and dropped — now plays a 500ms exit: a counter-clockwise three-q...

kamo·2mo ago
Featurekamo-internal

Explain the mailbox charge where mailboxes are made

Console rows price mail per mailbox with the live count; the mailboxes tab, department picker and provider help all state what counts, that a shared mailbox is ...

kamo·2mo ago
Featurekamo-internal

Gate provider choice on the add-on, show mailbox charges

Locked cards say which add-on unlocks them rather than being hidden or silently dead, and the gate fails open so a billing outage cannot strand an org mid-migra...

kamo·2mo ago
Docskamo-internal

QuoteConversionResult.orderUid is a String, not a UUID

Order extends BaseEntity, whose id is a Long — only Quote, QuoteOption and QuoteLineItem extend BaseUuidEntity. The plan declared UUID and its own Self-Review a...

kamo·2mo ago
Docskamo-internal

SW4's dictionary keys land in the dictionary repo

Task 6a's file list named kamo-internal/messages/en.json, which is gitignored and cannot be committed. The step's prose was right; the list was not.

kamo·2mo ago
Featurekamo-internal

Each org chooses what an order takes from an accepted quote

A radio group, not a switch — both are legitimate ways to sell, and neither is 'off'. Shows which is the default and what each does to a real charge: for a thre...

kamo·2mo ago
Fixkamo-internal

Ask a host that exists for the organization ?org= names

A new organization was created with its logo, colours and three backgrounds. All of it provisioned correctly into public/wienerschnitzel/ — 15 objects, the righ...

kamo·2mo ago
Featurekamo-internal

Say who holds a contested mailbox, and that aliases are free

The snackbar replaced the server's 409 message with a generic failure, so a manager could not tell which member held the mailbox. Adds the note that sharing a m...

kamo·2mo ago
Fixkamo-internal

Every catalogued event fires where the event actually happens

Most of the sound catalogue was configurable and inaudible. Two causes, both silent by construction: a sound that never plays looks exactly like one the member ...

kamo·2mo ago
Docskamo-internal

Plan SW5, the flat-rate task book

The spec's premise that no line carries a labour duration went stale hours ago — SW3 landed labourMinutes and taskCode on ServiceLineItem, and the javadoc on ta...

kamo·2mo ago
Fixkamo-internal

Dropping in the goal scores, and aiming at it no longer gathers

Two complaints about the same gesture — taking a head to the goal. **Dropping in the goal did nothing.** Scoring lived entirely inside the throw RAF loop, whic...

kamo·2mo ago
Featurekamo-internal

Paint each tab from its organization's alias, not from the hostname

The theme base was built from a hostname: drop the leading label, join the rest with dashes, and that is the bucket folder. It answered correctly while every or...

kamo·2mo ago
Featurekamo-internal

A tap opens the tool, a right-click opens its menu

Clicking a hex head opened a context menu, which meant the common act — get my chat back — cost two clicks, and the menu itself was reachable no other way. The ...

kamo·2mo ago
Fixkamo-internal

A healthcare market could not be edited

The edit screen still built its picker by mapping over a hardcoded array of seven verticals. HEALTHCARE was not among them, so a healthcare market opened to a s...

kamo·2mo ago
Fixkamo-internal

Gate the population-level surfaces on their own rights

EXPORT_PATIENT_DATA, VIEW_QUALITY_MEASURES and MANAGE_PATIENT_PORTAL were added to Java in August and never mirrored into the client enum, so RoleRightType.THE_...

kamo·2mo ago
Docskamo-internal

Define SW4's behaviour for a market-less quote

Task 1 made create() read marketUid but did not backfill, so every quote that exists today still has a null market. The converter must fall back to PurchaseLine...

kamo·2mo ago

Je, unaona nini kuhusu usafiri?

Kila kitu kinaingia kwenye tovuti yako mwenyewe. Anza kwenye mpango wa bure na usome ukurasa huu tena katika mwezi mmoja.

Kuwa Huru MileleMtazamo wa bei