Mabadiliko ya Tabianchi

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

17,866
Mabadiliko ya Jumla
4,581
Features ya
4,513
Wa
32
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,866AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService348InitializerService299KBService74KlusterServices539MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,554kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter ya aina
Aina zoteBuild24CI522Chore670Docs226Feature4,581Fix4,513Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
August 15, 2026
FixMediaService

Materials and the social timeline take rights, not just ownership

MANAGE_MATERIALS and MANAGE_SOCIAL_MEDIA counted as enforced in the audit and every site was a .tsx file. Behind them 29 endpoints checked ownership and no righ...

Kamo·3w ago
FixMediaService

The meeting reminder is a notification, not a popup of its own

The sweep published a bespoke event on /topic/meet/reminder/{memberId} that a dedicated Snackbar drew in the corner of the screen. That popup was the entire rem...

Kamo·3w ago
August 14, 2026
FixMediaService

The ticket list survives a broken indicator

The unread read threw and took the whole ticket list with it — the page came back empty, which is a far worse outcome than a page with no markers on it. It is g...

Kamo·4w ago
FixMediaService

The ticket list marks the same items the badge counts

countForMember sized a set it built privately, so the list had no way to ask which tickets were in it and approximated instead — it flagged unread chat messages...

Kamo·4w ago
August 13, 2026
FixMediaService

A ticket can never be answered by the member who raised it

A support conversation has two sides — someone asking and someone answering — and nothing enforced that they were different people. A member holding ACCEPT_SUPP...

Kamo·4w ago
FixMediaService

Send an outbound attachment to the endpoint its type belongs to

Every social attachment went out through the adapter's sendImage, which on Telegram is /sendPhoto. A PDF or a zip posted there is rejected by the provider, and ...

Kamo·4w ago
August 11, 2026
FixMediaService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
FixMediaService

Stop shipping a shared credential as a config default

The platform's shared password was baked in as the fallback for DB_PASSWORD and MINIO_ROOT_PASSWORD, so it lived in this repo and in the built image as well as ...

Kamo·4w ago
FixMediaService

Assigning by hand must not consume the PRE_TICKET status

assignToAgent and reassignAgent set ASSIGNED unconditionally, which quietly made a chat request impossible to convert afterwards — convertPreTicket accepts noth...

Kamo·4w ago
August 10, 2026
FixMediaService

Validate who a ticket may be handed to by hand

assignToAgent and reassignAgent checked only that the id resolved to a member. Assignment adds that member to the ticket's chat session, so an id from another o...

Kamo·4w ago
FixMediaService

Auto Assignment offers the ticket, it does not allocate it

Auto Assignment pages every available support agent and goes to the first one who accepts. It was implemented as "silently pick the least-busy agent who is onli...

Kamo·4w ago
FixMediaService

Run the topic's strategy for widget chats too

A chat opened in the web widget is the same unit of work as one filed inside the app, but this path skipped the topic's assignment strategy entirely — the only ...

Kamo·4w ago
FixMediaService

Put the session type on the activity frame too

The unread/ACTIVITY broadcast is published for every session type and carried no indication of which. The chats list, having nothing to go on, typed an unseen s...

Kamo·4w ago
FixMediaService

Tell the client which kind of conversation a message arrived in

Every member of a media session receives the incoming-message notification, and assigning a support ticket makes the agent a member of that ticket's session. Th...

Kamo·4w ago
FixMediaService

A live chat is claimed through the popup, never allocated

Routing chat requests through round-robin was the wrong model and it broke the thing it was meant to fix. An assigned ticket leaves the claimable queue (Support...

Kamo·4w ago
FixMediaService

Stop assignment failures destroying the ticket that triggered them

Routing a new ticket ran inside the creation transaction, so anything it hit rolled the ticket back with it and the member asking for help got "Failed to create...

Kamo·4w ago
FixMediaService

Route a chat request through the topic's assignment strategy

A support chat request is filed as a PRE_TICKET, and createTicket skipped assignment for those outright. The guard was written for the web-chat widget, where a ...

Kamo·4w ago
August 9, 2026
FixMediaService

Stop renewing the shared *** TTL for idle users

This service keeps its own copy of KSessionService, and it slid the TTL on every read. Gating SecurityService alone therefore fixed nothing: kamo-internal point...

Kamo·4w ago
August 8, 2026
FixMediaService

Fail a dead upload in minutes instead of holding it for an hour

connectionUploadTimeout is the tolerated SILENCE between reads, not a budget for the whole transfer. Setting it to an hour to 'match Traefik' confused the two: ...

Kamo·4w ago
FixMediaService

Stop Tomcat's 60s connection timeout killing a long upload

A 2 GiB chat attachment failed after nearly four minutes of successful transfer with MultipartException wrapping a bare SocketTimeoutException, and the member w...

Kamo·4w ago
August 7, 2026
FixMediaService

Catch OptimisticLockException, the type 40001 actually wraps as

Round 3 review fix: hibernate-core's **************** tests LockAcquisitionException (what SQLState 40001 converts to) against four specific types in order, non...

Kamo·1mo ago
FixMediaService

Catch the exception type the claim conflict actually throws

Round 2 review fix: the statement-level 40001 (the common case, detected inside executeUpdate() rather than at commit) surfaces as **************** via Hibernat...

Kamo·1mo ago
FixMediaService

Return 409 on every lost claim race, add manager claim path

Round 1 review fixes for the accept-popup claim endpoint: - an ordinary lost race (loser's isClaimableBy already false post-commit) now raises TicketAlreadyCl...

Kamo·1mo ago
FixMediaService

Scan the email repositories DepartmentService now needs

MediaService CrashLooped on every pod since shared-lib 1.5.0: DepartmentService is a @Service, so the wildcard @ComponentScan("com.kamo") builds it here whether...

Kamo·1mo 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·1mo 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·1mo ago
August 6, 2026
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·1mo 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·1mo 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·1mo 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·1mo ago
August 3, 2026
FixMediaService

Scan the shared MFA repositories

MfaEnrollmentService is a @Service in kamo-shared-library, so the wildcard @ComponentScan("com.kamo") in this application constructs it whether or not this serv...

Kamo·1mo ago
FixMediaService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·1mo ago
July 22, 2026
FixMediaService

Mount the live per-host cert instead of the expired wildcard secret

Chombo cha ndani cha cert-converter kilijenga ghala lake la msingi la PKCS12 kutoka kwenye ghala lake. wildcard-kamocrm-com, urithi wa siri ya multi-SAN ambayo ...

Kamo·1mo ago
July 19, 2026
FixMediaService

Kukataa mawakala wa mauzo ya msalaba-org; Widen bootstrap cache busting

salesAgentId was persisted from the request body unchecked, so a cross-org or dangling agent id could be stored on a WebChatIntegration. It failed safe only bec...

Kamo·1mo ago
July 17, 2026
FixMediaService

Exclude non-ACTIVE members from chat participation & routing

A non-ACTIVE **************** member must not appear as, or be targeted as, a live chat participant. Gate every chat path on the shared-lib **************** pre...

Kamo·1mo ago
July 16, 2026
July 15, 2026
FixMediaService

Resolve public-chat system member per-org (drop hardcoded snadjafinia alias)

createSupportSession, createPublicTicket, and the owner notification helpers all resolved the org's "system member" via a hardcoded usernameAlias="snadjafinia" ...

Kamo·1mo ago
July 14, 2026
FixMediaService

Stop putting message content into missed-message emails

Remove messagePreview computation, the ledger PREVIEW write, and the messagePreview template variable; drop the includePreview preference. Emails now carry send...

Kamo·1mo ago
July 8, 2026
FixMediaService

Endelea bendera zilizopangwa za kidole kupitia update iliyopangwa

Same detached-entity orphanRemoval issue as the conversion pipeline: the headless sweep held a detached ImgDat and save()/merge() cascaded into the images colle...

Kamo·2mo ago
FixMediaService

Wrap recording upload so MediaService compiles

MinIOStorageService.upload throws a checked Exception that ingest() neither caught nor declared — build break on top of the isGuest fix. Wrap it and rethrow as ...

Kamo·2mo ago
FixMediaService

MeetingParticipant.isGuest() (was getGuest, won't compile); repoint transcribe to generic endpoint

MeetingParticipant exposes isGuest() (primitive boolean getter), not getGuest(). Also point the summary transcribe call at the shared /api/conversion/transcribe...

Kamo·2mo ago
July 7, 2026
FixMediaService

Persist invited participants, enforce MANAGE_MEET_SETTINGS, drop double-invite path

- createMeeting: invited members are numeric snowflake IDs, not UUID strings — route them through longToUUID like the creator. Previously UUID.fromString th...

Kamo·2mo ago
July 1, 2026
May 1, 2026
FixMediaService

Publish NATS CREATE event after transaction commit to fix image attachment race

The NATS message was published inside the @Transactional body, which meant recipients could receive the CREATE event and request the image via /imaging/proxy/{o...

Kamo·4mo ago
FixMediaService

Serialize attachments in WS relay and message history; allow attachment-only sends

Three bugs fixed: 1. ChatSessionSubscriptionManager was building the STOMP messageMap manually and omitting attachments, sourceLanguageId, readMemberId, msg...

Kamo·4mo ago
FixMediaService

Fix NPE in getChatSessions from Map.of() rejecting null nextcoder

java.util.Map.of() throws NullPointerException when nextcoder is null (no more pages). Replace with HashMap that accepts null values. Also wrap entire handler i...

Kamo·4mo ago
FixMediaService

Fix upload 500 (missing EmbRecordState) and empty chats tab (Timestamp cast)

Defect A: ChatAttachmentService.upload omitted **************** causing a NOT NULL violation on imgs.is_active. Added the default recordState. Also hardened Cha...

Kamo·4mo ago
FixMediaService

Prefer usernameAlias over User.name in memberDisplayName

Switches display name priority to: Member.usernameAlias → User.name → User.alias → User.username. Also includes the paged query dispatch fix from the previous c...

Kamo·4mo ago
FixMediaService

Use split First/After queries for chat sessions paged endpoint

Addresses empty Chats tab by dispatching to ****************

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