KamoCRM

Mabadiliko ya Tabianchi

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

17,500
Mabadiliko ya Jumla
5,986
Features ya
5,284
Wa
30
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter ya aina
Aina zoteBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
September 2, 2026
Featurekamo-shared-library

PdfRedactor, so a covered word is actually gone

A filled rectangle drawn over an account number hides it from the eye and from nothing else: the glyphs stay in the page's content stream, and a copy-paste or a...

Kamo·1mo ago
FixEmailService

Report a failed association at WARN, not at DEBUG

Lead association swallows its failures on purpose — a problem attaching a message must never break the sweep that was reading the mailbox — so the log line is t...

Kamo·1mo ago
Fixkamo-shared-library

Flush the link, so a refused write reaches the catch that reports it

link() is @Transactional(REQUIRES_NEW), so its transaction commits in the proxy after the method body returns. A plain save() of an entity whose id is generated...

Kamo·1mo ago
Fixkamo-internal

Print the whole quote, not just its first page

The print stylesheet reset the Dialog's container and its Paper to static flow but left the Dialog ROOT alone — the element this component labels quote-print-po...

Kamo·1mo ago
Fixkamo-signer-monorepo

Keep an option card and its lines off a page break

The per-option line table was added without the page-break rules its sibling table has, so a long option could be cut across pages mid-row.

Kamo·1mo ago
Featurekamo-internal

Link the articles a draft names

The authoring convention is to name a sibling article by putting its title in italics — "Read *Security Roles Explained* before building them". 181 spans across...

Kamo·1mo ago
ChoreSecurityService

Rebuild against kamo-shared-library HEAD

Ships the lead contact location fix, which lives in the shared library: LeadDTO now returns the lead's own country, subdivision and timezone, so the three Prima...

Kamo·1mo ago
Fixkamo-internal

Save the Primary Contact country, state and time zone

The Primary Contact card's country, state and time zone are top-level Lead fields — neither members of primaryContact nor of addressMailing — and the two wire b...

Kamo·1mo ago
Fixkamo-shared-library

Return the contact's country, state and time zone

LeadDTO carried neither Lead.country, Lead.subdivision nor Lead.timezone, so the three fields were write-only: UpdateLeadRequest accepted them and LeadService w...

Kamo·1mo ago
TestSecurityService

Hold withTermsUnchanged to carrying every field

The method rebuilds UpdateQuoteRequest positionally, so a field added to that record and forgotten here is dropped from every save by a member without EDIT_QUOT...

Kamo·1mo ago
FixSecurityService

Stop dropping setupFee on save, and unbreak the build

withTermsUnchanged rebuilds UpdateQuoteRequest positionally for a member who may not rewrite the terms. setupFee was added to that record and not added here, so...

Kamo·1mo ago
Fixkamo-signer-monorepo

Read either address shape so the block cannot go blank

Reading only the new addressLines makes the address disappear when the API has not been rebuilt yet and is still sending addressLine plus addressDetails. A blan...

Kamo·1mo ago
Fixkamo-internal

Read either address shape so the block cannot go blank

Reading only the new addressLines made the address disappear from the printed quote outright, because this shipped ahead of the API that sends it and a server s...

Kamo·1mo ago
ChoreSecurityService

Rebuild against kamo-shared-library HEAD

Ships the quote document work, all of which lives in the shared library: - a one-off setup fee on a single-price quote (commerce_quotes.setup_fee, which is a...

Kamo·1mo ago
Fixkamo-internal

Print the address as the lines it is written on

Splitting the suite into its own field left the street and the city still sharing a line, with the unit printed beneath them. The address now arrives already sp...

Kamo·1mo ago
Fixkamo-shared-library

An address is several lines, so send it as several lines

Splitting the suite out of addressLine was not enough — it left the street and the city sharing a line with the unit printed beneath them, which is worse than t...

Kamo·1mo ago
Fixkamo-signer-monorepo

Print the address as the lines it is written on

The address arrived as one string, so a real one came out as '4300 West Tropicana Ave Building A Main Floor Suites 110-132, Las Vegas, NV 89103' — not something...

Kamo·1mo ago
Featurekamo-internal

A setup fee on a single-price quote, and the suite on its own line

The setup fee existed only on multi-option quotes, so 'One price' had no box for one — on the form or on the printed page. It now sits beside Shipping, appears ...

Kamo·1mo ago
FeatureInitializerService

Commerce_quotes.setup_fee

A one-off setup fee on a quote that presents a single price. The fee already existed on QuoteOption, where each alternative carries its own; a flat sheet had no...

Kamo·1mo ago
Featurekamo-shared-library

A setup fee on a single-price quote, and the suite on its own line

Two things a quote could not state. A one-off setup fee lived only on QuoteOption, where each alternative carries its own. A flat sheet has no option to hang o...

Kamo·1mo ago
Featurekamo-signer-monorepo

The suite on its own line, and a setup fee on a single-price quote

Two things the printed page could not say. An address arrived as one comma-joined string, so 'Suite 400' ran into the street and the city — not how an address ...

Kamo·1mo ago
FeatureInitializerService

Reprice stored quote totals through the pricing engine

Quote money columns are written, not computed on read, so the two corrections that landed on 2026-09-02 — a unit price is a per-month rate the term multiplies, ...

Kamo·1mo ago
Refactorkamo-shared-library

Expose repricing as a static so a backfill can reuse it

Quote money columns are written, not computed on read, so an engine correction leaves existing rows carrying the old arithmetic until something saves them. A mi...

Kamo·1mo ago
Featurekamo-signer-monorepo

Print the full line on the customer's quote

Each line showed a name and an amount. That asks the customer to take the quantity, the unit, the rate and any reduction on trust, and leaves them nothing to ch...

Kamo·1mo ago
Featurekamo-internal

Print the full line on the quote, and stop losing work at the mode switch

Two things a quote could not do. The printed line items inside an option card showed a name and an amount, nothing else — no quantity, no unit label, no rate, ...

Kamo·1mo ago
Featurekamo-internal

Re-issue a share link from its row, and stop losing the one-time URL

The Share links list offered no way to view or copy a link, and nothing explained why. Nothing can reveal an existing one — only the token's SHA-256 is stored, ...

Kamo·1mo ago
FixSecurityService

A share link's email was dropped twice before it could be sent

"I created a link and got no email." Two independent silent drops, both of which return a swallowed false that the panel rendered as plain success. 1. kamo.ema...

Kamo·1mo ago
Testkamo-shared-library

Pin the quote letter's dotted templateKey, as the HR family already is

The constant is not the templateKey. CanonicalTemplateLoader.load derives only the FILENAME from the constant (QUOTE_SENT -> quote-sent.json) and reads template...

Kamo·1mo ago
Fixkamo-shared-library

Restore the timestamp that every lead association depends on

A method was inserted between @CreationTimestamp and the dateCreated field it annotates, so the annotation bound to subject() instead. These entities are read b...

Kamo·1mo ago
Fixkamo-internal

Re-derive the rail's hover-peek instead of trusting two events

The collapsed rail's peek state was written by exactly two things, pointerenter and pointerleave on the rail itself, and nothing ever re-derived it from where t...

Kamo·1mo ago
Fixkamo-internal

Send MUI's styles with the markup that needs them

internal.kamocrm.com was serving a 1.34 MB document containing 123 `css-xxxx` class names — `MuiBox-root css-e26q24` among them — and not one rule for any of th...

kamo·1mo ago
Fixkamo-internal

A reopened conversation is the one you were having

A member started a chat about KB articles, minimized it to its hexhead, went to their mail and brought the window back to a blank conversation — "having to star...

Kamo·1mo ago
Fixkamo-internal

Read a new lead's phone number against the country it is in

The New Lead form asks which country the lead is in, then ignored the answer when reading their phone number. Both PhoneField instances and the validator fell t...

Kamo·1mo ago
Fixkamo-internal

Do not follow a protocol-relative link in-app

"//example.com" starts with a slash but is another origin. The in-app branch matched it and would have handed router.push an off-site destination; it belongs in...

Kamo·1mo ago
RefactorRAGService

Drop a @Transactional that never applied

loadCatalogue is reached from catalogue() on the same bean, and self-invocation does not pass through the proxy, so the annotation was decoration. The query is ...

Kamo·1mo ago
ChoreSecurityService

Rebuild against kamo-shared-library HEAD

Ships the quote pricing fix: a unit price is a per-month rate, so a term multiplies it rather than the engine dividing down to it. An annual option quoted one m...

Kamo·1mo ago
Fixkamo-internal

Mirror the monthly-rate reading in the editor preview

previewOption divided the line-item sum down to a monthly figure the same way the server did, so the card and the print preview showed one month of any term. A ...

Kamo·1mo ago
Fixkamo-shared-library

A unit price is a MONTHLY rate, so the term multiplies it

The engine treated an option's line-item sum as the price for the whole billing period and divided down to reach a monthly figure. It is the other way round. P...

Kamo·1mo ago
Fixkamo-internal

Follow a link without losing the conversation

Reported alongside the KB links all pointing at one article: "when it is fixed and they will work, please let the AI chat still hover on top so you don't have t...

Kamo·1mo ago
FeatureRAGService

Resolve the articles a passage names into link targets

A hub article — "Setting Up Your Organization — A Checklist" is one — exists to send the reader to a dozen others, and names every one of them in plain text. Th...

Kamo·1mo ago
FixAIService

A KB link goes to the article its text names

A member asked how to set their org up and got the setup checklist back, each step naming the article that explains it. All three links pointed at the same arti...

Kamo·1mo ago
FixEmailService

Keep the words typed after an inserted photo

The same reported message had a sign-off underneath its photo. That did not arrive either — the reading pane showed an empty body above the attachment. There i...

Kamo·1mo ago
FixEmailService

Let a photo attached from a phone be opened

A member sent themselves a message from an outside account with a file attached. The message arrived; the file was nowhere in it — no preview, no download link,...

Kamo·1mo ago
Fixkamo-internal

Fix the Reports tab's folder heading nesting

The per-folder count Chip sat inside the heading Typography. MUI renders subtitle1 as an h6, which takes phrasing content, and a Chip is a div — so the count wa...

Kamo·1mo ago
FixEmailService

Give a folder with an ampersand in its name its message count

A mailbox called "Bugs & Enhancements" showed no count in the sidebar while every folder beside it showed the right one, and the mailbox totals were short by ex...

Kamo·1mo ago
Fixkamo-internal

Give the annotation tools their tooltips back

The five annotation tools in the PDF designer built their tooltip key by interpolating the tool type onto a "tool_" prefix, but the dictionary names those same ...

Kamo·1mo ago
Featurekamo-internal

Ask whether the guests should be told, and how

Adding a guest to an event did not tell them, and the dialog never said so. The only thing that ever wrote to a guest was a reminder — which reaches a colleague...

Kamo·1mo ago
FeatureInitializerService

The columns that let an event invite its guests

Three on calendar_events, because whether a meeting invites people belongs to the meeting rather than to the moment it was saved — an edit six weeks later that ...

Kamo·1mo ago
FeatureEmailService

Send the meeting invitation the guest list implied

Adding somebody to an event's guest list did not tell them. Only a reminder ever wrote to a guest, and a reminder reaches a member in-app and an outside address...

Kamo·1mo ago
Featurekamo-shared-library

Let an event invite its guests, and put it on their calendar

Saving an event told nobody. The guest list was materialized and the audience stored, and the people on it heard nothing until a reminder fired — which reaches ...

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