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
August 7, 2026
Fixkamo-internal

Float the label off the placeholder on name prefix/suffix selects

MUI derives InputLabel shrink from `filled || focused || adornedStart`, and `isFilled({value: ''})` is false. Any select that still paints something while empty...

kamo·2mo ago
Fixkamo-internal

Send the timeline provider filter as repeated params, not a CSV

socialTimelineApi.timeline set providers to a joined CSV. A comma in a query VALUE travels as %2C, and any hop that re-encodes turns that into %252C — APIServic...

kamo·2mo ago
FixMediaService

Accept the timeline provider filter as repeated params

The web client sent ?providers=facebook,x as one CSV value. A comma in a query VALUE has to travel as %2C, and a hop that re-encodes turns that into %252C; we d...

Kamo·2mo ago
FixAPIService

Forward the caller's query bytes instead of encoding them twice

Every URL this gateway builds is assembled from getRequestURI() and getQueryString() — both already percent-encoded — and was then handed to RestTemplate as a S...

Kamo·2mo ago
Fixkamo-internal

Ask before any bulk action, not just the folder ones

Emptying and deleting a folder already confirmed. Everything else that moves mail or rewrites its read state did not — it ran the moment the icon was hit. The s...

kamo·2mo ago
Fixkamo-internal

Stop money fields loading a value that fails their own validation

The API stores money as NUMERIC(19,4) and serialises it with toPlainString(), so the shipped $50.00 minimum withdrawal arrived as "50.0000". Both money inputs a...

kamo·2mo ago
Fixkamo-internal

Commission links under My Account, tab reordered, duplicate headers removed

Nav and landing entries move under My Account rather than a separate section. The tabs live on that page, so that is where they belong; the reason I split them ...

kamo·2mo ago
FixSecurityService

Scope the opportunities read, and give the relay client timeouts

/me/opportunities called reservationRepository.findAll() and filtered org and member in Java. That pulls every reservation on the platform — every tenant's — in...

Kamo·2mo ago
Fixkamo-shared-library

Make the atomic claims actually atomic, and stop starving the oldest payout

An adversarial review of the money path found the concurrency design was not running at all. @Modifying without @Transactional. Spring Data opens no transactio...

Kamo·2mo ago
Fixkamo-internal

Send the status bucket as repeated params, not a CSV

Opening **************** errored with "Unknown status: **************** for every member. listMyAssignments sent the whole bucket as one CSV value. A comma in ...

kamo·2mo ago
Fixkamo-internal

Restore row positioning and make folders actually draggable

Two regressions from 8ab88d59. The message list grew a gap that widened with every row. This project builds Tailwind with `important: true`, so every utility o...

kamo·2mo ago
FixDocsService

Accept repeated status params so the gateway cannot corrupt the filter

Opening **************** answered "Unknown status: **************** for every member. The member grid sent the bucket as one CSV value. A comma in a query valu...

Kamo·2mo ago
FixMediaService

Send missed-message emails to the user account, not the org mailbox

The notice existed to say "you have a message waiting, sign in and read it", and it was being delivered to the mailbox this organization assigned the member — w...

Kamo·2mo ago
FixDocsService

Kamwe usimfuate mwanachama ambaye tayari amesaini, na kuweka suala wazi

Two behavioural defects in the phase-8 notification path. 1. The reminder sweep ran over OPEN_STATES, which includes AWAITING_OTHERS — "this member finished...

Kamo·2mo ago
Fixkamo-shared-library

Stop HTML-escaping the package title in the four HR subjects

EmailTemplateService renders a template's SUBJECT and BODY from ONE variable map, and all four canonical HR subjects carry {{packageTitle}} — which LegalNotific...

Kamo·2mo ago
August 6, 2026
Fixkamo-internal

React to ASSIGNED and stop trusting a channel that cannot replay

Three ways the support badge went stale, all of them silent. ASSIGNED was published on /topic/support/agent/{memberId} and this handler only branched on PENDIN...

kamo·2mo ago
FixMediaService

Kutoa kila wakala kuishi badge badala ya mmiliki mmoja kuhesabu

The nav badge and /support?tab=tickets answered different questions. The page lists every ticket in the org; the badge counted unread chat messages belonging to...

Kamo·2mo ago
Fixkamo-internal

Stop the badge costing portal members a request a minute

Three things, all of them about who the count is for. THE PROVIDER GATES ON THE SAME CONDITION AS THE BUTTON. It mounts in the root layout for every authentica...

kamo·2mo ago
FixMediaService

Drop client SENDs to guarded topics, and repair the build at HEAD

TWO THINGS, both of which stop MediaService main from shipping. 1. main does not compile. MediaController:1361 calls **************** which does not exist: ...

Kamo·2mo ago
FixDocsService

Let a failed pending-count read out instead of downgrading it

publishFor caught Exception around countByTeamMemberIdAndStatusIn and turned it into a WARN. That catch was not only around the badge: the query runs inside the...

Kamo·2mo ago
Fixkamo-internal

Show a sent attachment without waiting for a reload

MediaService announced a new chat message twice — once when the row was saved, before any attachment existed, and once after the attachment rows committed. The ...

kamo·2mo ago
FixMediaService

Announce a message once, when it is whole

Both callers that finish building a message after the row is saved now tell createMessage not to announce it: MediaController attaches the images and publishes ...

Kamo·2mo ago
Fixkamo-shared-library

Let a caller own the realtime announcement of the message it is still building

undaMessage ilitangaza kila ujumbe mpya juu ya somo la wakati halisi wa kikao Mstari uliokolewa - ndani ya shughuli ya mwombaji, kabla ya mwombaji kuandika choc...

Kamo·2mo ago
Fixkamo-internal

Lay the profile header's wallpaper chrome out in a row

The Source / Console / Tone pod was the Stage's stacked one, and stacked it is taller than the 100px avatar it sits beside — so it, not the identity block, set ...

kamo·2mo ago
FixDocsService

Kulinda njia za picha za uharibifu na kufanya ukarabati ufikiwe

DELETE /imaging/delete/{imgId} is the one destructive imaging path and was not wired to the issued-document guard. ImageService.deleteDocument authorizes on org...

Kamo·2mo ago
Fixkamo-internal

Restore the profile header wallpaper and wire its controls to the editor

The band behind the avatar on **************** had gone flat gradient. Not the wallpaper feature — ae85a8ae routed the header's photos through next/image + safe...

kamo·2mo ago
Fixkamo-internal

Sit the head tabs on the header's bottom edge and flatten the identity row

The tab strip was vertically centred in a row whose height was set by the action cluster beside it — a default-size More icon button (40px) plus the cluster's o...

kamo·2mo ago
FixDocsService

Stop colleagues reading a member's HR-issued documents

isPerPartyRestrictedAssoc covers only ACCOUNT_MEMBER_VAULT and LOAN, so assoc 1 — SERVICE_APPLICATION, what /settings/member/{id}?tab=docs renders — has no per-...

Kamo·2mo ago
FixEmailService

Restore the files 2b23346 dropped, and answer an oversized send with 413

2b23346 was committed through a private index that was never seeded from HEAD, so its tree held only the three files staged into it and the commit deleted the o...

Kamo·2mo ago
FixMediaService

Store attachments through the dedup pipeline instead of one object per upload

Attachments wrote their own "<imgId>/<fileName>" object on every upload, bypassing the content-addressed store entirely — the same logo-draft.png attached three...

Kamo·2mo ago
FixEmailService

Stop capping every send at 1MB, so a pasted image can actually go out

Composing with a pasted image failed with a bare "Failed to send email". The composer inlines the paste into the body HTML as a base64 data URI, which rides in ...

Kamo·2mo ago
FixDocsService

Resolve the document bucket from ImageAssocType.BUCKET

DocumentService hardcoded "imaging-mydocs" while every other read path went through ImageAssocType.getBucket(). Now that storage is one bucket, point it at the ...

Kamo·2mo ago
Fixkamo-shared-library

Store every image in one bucket so dedup means one copy

Association is metadata, not a storage boundary. Each ImageAssocType used to name its own MinIO bucket, which contradicted the hashing pipeline: dedup is scoped...

Kamo·2mo ago
FixDocsService

Wire DocsService to ESigService so Deliver stops 503ing

LegalEsignClient.isConfigured() was false in the cluster: neither internal.auth.secret nor legal.esig.service-url was supplied, so Deliver refused every package...

Kamo·2mo ago
FixESigService

Weka mwanachama kwenye RecipientSummary, na kuacha kuangalia IP DNS-kutatua

A caller that acts on a recipient's status has to be able to establish WHOSE status it is. DocsService's legal-package Finish writes a WORM attestation on the s...

Kamo·2mo ago
FixDocsService

Prove WHOSE signature Finish counts, and report the live one

verify() compared the caller to assignment.teamMemberId but never to the ENVELOPE RECIPIENT's member — it trusted the recipientUid the delivery fan-out wrote. A...

Kamo·2mo ago
Fixkamo-internal

Let a member actually finish a package, and reach the page at all

canFinish required every document row to already be SIGNED/ACKNOWLEDGED, but **************** is the ONLY writer of those statuses — the delivery worker writes ...

kamo·2mo ago
Fixkamo-internal

Drop the outer padding around the member Docs tab

DocManager brings its own toolbar and grid chrome, so the p:4 inset just shrank the grid and left a visible gap the /hr/resources page does not have. Matches th...

kamo·2mo ago
Fixkamo-shared-library

Copy a deduplicated document's objects into its own association bucket

Object storage is bucket-per-association (every reader resolves img.getAssocId().getBucket()), but deduplication is scoped ORG-wide or GLOBALly and so crosses a...

Kamo·2mo ago
Fixkamo-internal

Cap the legal audience roster, and refresh after Deliver

The Assigned Packages grid filled its team-member filter column by asking audience-preview for allTeamMembers:true on mount -- a name and an email address for e...

kamo·2mo ago
FixDocsService

Commit before the fan-out, and stop redeliver reissuing nothing

Redeliver published the new version row, flipped every OPEN assignment to SUPERSEDED, and submitted the reissue from inside that same uncommitted transaction. T...

Kamo·2mo ago
FixDocsService

Widen the read gate to match hrTabs.ts, make a cleared due date actually clear

LegalPackageAccess.requireRead demanded VIEW_EMPLOYEES alone while hrTabs.ts admits the Legal & Compliance tab on VIEW_EMPLOYEES || EDIT_EMPLOYEES || MANAGE_HRS...

Kamo·2mo ago
Fixkamo-internal

Wire publish and audience preview, and stop rendering a broken label

publishPackage, previewAudience and getPackage shipped with no caller. The templates grid now has a Publish row action — disabled when the package has no binder...

kamo·2mo ago
FixDocsService

Enforce HR rights and make the fingerprint see the e-sign design

All seven /api/docs/legal mappings authorized on org membership alone, so any authenticated member could list, edit, delete and publish legal packages — and aud...

Kamo·2mo ago
Fixkamo-internal

Restore external images in email bodies

External images stopped rendering when the page-level image policy shipped. The middleware sets `img-src 'self' data: blob: https://theme.<apex> https://*.<apex...

kamo·2mo ago
Fixkamo-internal

Cap the send dialog's recipients at the template's declared slots

Tuma kwa mbegu za mazungumzo ya saini mstari mmoja wa mpokeaji na hutoa unbounded "Mpokeaji wa ziada", lakini kamwe hakuchukua mipaka ya template ya saini. Hudu...

kamo·2mo ago
FixESigService

Hebu kutuma chini-fill mipaka template ya saini, kuendelea kukataa juu-fill

Uchunguzi wa usajili ulioongeza raundi ya mwisho ulidai mechi ya ziada dhidi ya mipaka ya template iliyotangazwa, ambayo ingekuwa kimya kimya kimya kimya kimya ...

Kamo·2mo ago
FixESigService

Complete delegated envelopes, and reject a bad signer count before sending

envelopeComplete required a literal SIGNED from every recipient, but delegate() leaves the delegator DELEGATED forever and ADDS the replacement instead of subst...

Kamo·2mo ago
FixESigService

Tumia decoder kwa mpokeaji ambaye decoderd

Any single recipient declining set the whole envelope DEcoderD, so a counter-signer could destroy signatures the other parties had already given, with no recove...

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