Mabadiliko ya Tabianchi

Kuona nini sisi ni kujenga katika muda halisi. Kila kipengele, kurekebisha, na kuboresha kusafirishwa kwenye jukwaa.

17,888
Mabadiliko ya Jumla
4,594
Features ya
4,520
Wa
32
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,888AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService364InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,557kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter ya aina
Aina zoteBuild24CI522Chore670Docs226Feature4,594Fix4,520Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
September 2, 2026
FixESigService

Redact when the document is served, not only when it is signed

The redaction was applied at flatten time, which is after signing. Everything before that — the whole signing session — was served the raw source: fetchDocument...

Kamo·1w ago
FixSecurityService

Open a workspace on its OWN domain, not the host the sign-in was served from

A member who signed in on login.kamocrm.com, picked a workspace from the chooser, and landed inside it — on internal.kamocrm.com, wearing the platform's hostnam...

Kamo·1w ago
StyleESigService

An em-dash in a comment, not its escape

— is processed by javac before the file is even tokenised, so it compiled to the same character it renders as here — but the source read as the escape.

Kamo·1w ago
FeatureDocsService

Fill a rectangle, honour a highlight's opacity, and redact

Three things about the way a prepared document renders the designer's marks. A rectangle was drawn as an outline, so the fill a member now picks to cover somet...

Kamo·1w ago
FeatureESigService

Put the designer's annotations into the signed document

flatten() applied blank pages, rotations, modifiers, field values, page order and certificates. It never drew the annotations. A rectangle, a highlight or an ar...

Kamo·1w ago
FixESigService

OrgBranding gained a sixth component and this stub kept passing five

Broken on main since e9faf11. The image build runs mvn package -DskipTests, so nothing has been compiling the test tree and no red build ever said so — but it m...

Kamo·1w ago
Featurekamo-signer-monorepo

Draw a rectangle's fill in the signer's view

The designer can now give a rectangle a fill and an opacity, which is how a member covers something up. This renderer drew fill="none", so the signer saw an emp...

Kamo·1w ago
Featurekamo-internal

Make the rectangle tool something you can hide things with

The rectangle tool has been in the annotation toolbar all along, but it drew an outline: fill="none" in every renderer. There was nothing to hide anything with,...

Kamo·1w ago
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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w 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·1w ago

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei