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
October 21, 2026
FixInitializerService

Kuacha kulazimisha seva ya simu kwenye kila mazungumzo ya maandishi (SITP CARRIERSMS)

MultiInstancePhoneMigration huanza kila hatua ya KamoInitializer. Hatua ya mazungumzo ilifutwa Kila mmoja wao atasimama mbele ya kiti chake cha enzi, na kisha a...

KamoΒ·6d ago
October 19, 2026
FixInitializerService

KamoCameras katika orodha ya haki, kwenye mpango wa jukwaa mwenyewe tu (jumla ya mtihani wa kijani)

KamoCameras (HudumaType 39, iliyosafirishwa 2026-10-13, TESTING) kusafirishwa bila kuingia kwa AppEntitlementCatalogMigration, hivyo [TD="width: 456"] [FONT=&](...

KamoΒ·1w ago
September 28, 2026
FixInitializerService

Wapakiaji wa bei ya jukwaa hupata jukwaa org kama org ya ngazi ya juu, sio kwa jina lake fupi

KamoCRMMarketBackfillLoader na KamoCRMPricing the Angalia jinsi jukwaa linavyoendeshwa Picha zote na Wizara ya Mambo ya Ndani ya Nchi. ...........................

KamoΒ·4w ago
September 24, 2026
FixInitializerService

Pin kamo-shared-library 1.6.1, toleo maktaba anakaa katika

1bb9801 ilipiga 1.6.2 pamoja na matuta ya maktaba katika db737a54. Huu ni upuuzi Inarudi, kwa sababu karibu 30 huduma pin 1.6.1 na kila jengo inaweza tu Kutatua...

KamoΒ·4w ago
September 6, 2026
FixInitializerService

Ondoa aina ya baridi id CHECK ambayo ilizuia kila thread ya mdudu

"Vyombo vya habari" vinaundwa na ddl-auto ya Hibernate, sio kwa uhamiaji, kwa hivyo ni Kwa upande wake, Mbunge wa Jimbo la Ludewa Mhe. Katika majira ya joto ya ...

KamoΒ·1mo ago
FixInitializerService

Kuacha operator mbegu utoaji upya wa haki za jukwaa zilizofutwa

Haki zilizochukuliwa kutoka kwa msimamizi wa jukwaa kwenye Wasimamizi wa Jukwaa zilirudi katika siku zao za baadaye, ambao kusoma kutoka faraja kama kuokoa amba...

KamoΒ·1mo ago
August 28, 2026
FixInitializerService

Let a seeded org omit its year established

createOrg took the year as a primitive int, so every seed had to supply one even though YEAR_EST is nullable and the field is optional platform-wide. Integer, s...

KamoΒ·2mo ago
FixInitializerService

The invoice takes REVOKE DELETE, not REVOKE UPDATE

attachPdf writes PDF_BLOB_ID after the finalize transaction commits, on purpose: rendering inside it would hold the document-counter row lock across a MinIO rou...

KamoΒ·2mo ago
August 27, 2026
FixInitializerService

State the company phone column defaults where IF NOT EXISTS cannot swallow them

The 2026-08-27 run proved the ADD COLUMN ... DEFAULT FALSE never applied: ddl-auto builds the SessionFactory before any CommandLineRunner, so Hibernate had alre...

KamoΒ·2mo ago
FixInitializerService

Volume bands stop pricing seats the plan does not sell

Starter admits 5 seats and Business 25, but the bands ran to 25 and 100 β€” four of the six priced seat counts nobody could reach. Starter's 10%-off-at-11 tier wa...

KamoΒ·2mo ago
FixInitializerService

KI would not compile against the shared library on main

VendorDTO.uid became a String β€” a Long in the database, a string on the wire β€” and this call site still handed it to **************** which is a server-side req...

KamoΒ·2mo ago
FixInitializerService

Drop the CountryType frozen ordinal checks

CountryType has 196 constants, AFGHANISTAN(0) through ZIMBABWE(195), and every check written over it froze at 0..195. They are not one value away from failing -...

KamoΒ·2mo ago
FixInitializerService

Seed Starter at 5 seats and Business at 25

The USERS rows read 25 and 100 while max_seats, the card headline and the plan quiz all said 5 and 25. The volume-discount bands that run past those ceilings ar...

KamoΒ·2mo ago
FixInitializerService

Catalog rows that made the pricing page contradict itself

COMMERCE_POS is ServiceType.POS(21), whose real name is "Lines of Business" - the umbrella switch for what an org sells, rents, services or lends. It was labell...

KamoΒ·2mo ago
FixInitializerService

Three catalog rows that made the pricing page contradict itself

Seat counts. The plan card headline reads max_seats ("Up to 5 users") while the feature list beneath it and the comparison table read the USERS feature row, whi...

KamoΒ·2mo ago
August 25, 2026
FixInitializerService

Drop the frozen ordinal CHECK constraints Hibernate froze at create

Hibernate writes CHECK (col >= 0 AND col <= N) over an @Enumerated(ORDINAL) column at CREATE TABLE, where N is the highest ordinal that existed that day, and dd...

KamoΒ·2mo ago
August 23, 2026
FixInitializerService

Settle Additional Storage at $2.50 per 10 GB block

Confirms the block size and rate as $2.50 per 10 GB rather than the $4 per 25 GB the production row had drifted to. The seeder, the catalog row, the Stripe pric...

KamoΒ·2mo ago
FixInitializerService

Price Additional Storage as $4 per 25 GB unit, FLAT not metered

Additional Storage is bought by the unit, belongs to no plan on any tier, and is not seat-based. The seeder still described it as $2.50 per 10 GB block, which i...

KamoΒ·2mo ago
FixInitializerService

Bind add-ons to the app they sell, and stop Business granting mail free

**************** is the column **************** matches on. KamoCRMPricingLoader never wrote it, so every KamoCRM add-on row has it NULL and that comparison can...

KamoΒ·2mo ago
August 22, 2026
FixInitializerService

Drop the frozen ordinal CHECKs that were failing every new enum value

imgs_assoc_id_check allowed assoc_id 0..13. ImageAssocType.PICTURE_FRAME is ordinal 14, so EVERY Picture Frame upload violated it. Hibernate writes CHECK (col ...

KamoΒ·2mo ago
August 15, 2026
FixInitializerService

The meet seed recomputes applied rights instead of waiting for a boot

Granting the two rights on org_role_rights changes nothing anybody can observe. member_rights_applied is the flattened snapshot the session and the server-side ...

KamoΒ·2mo ago
August 14, 2026
FixInitializerService

Match the enum-whitelist CHECK sweep to the YugabyteDB rendering

dropStaleEnumWhitelistChecks() looked for '% IN (%', which is how CockroachDB stored a @Enumerated(EnumType.STRING) whitelist. PostgreSQL and YugabyteDB normali...

KamoΒ·2mo ago
August 13, 2026
FixInitializerService

Point at YugabyteDB, and stop `mvn test` migrating production

The datasource still named port 26257. That is the retired CockroachDB, which is still running and still answering, so a run against it succeeds completely and ...

KamoΒ·2mo ago
August 12, 2026
FixInitializerService

Start again, and stop the billing migration deleting its own index

KamoInitializer could not start at all. Hibernate detects CockroachDialect, whose supportsInsertReturning() and **************** are both false, so an @Id carry...

KamoΒ·2mo ago
August 11, 2026
FixInitializerService

Recognise an existing CHECK constraint through Spring's wrapper

TrainingSchemaMigration @Order(43) has been aborting EVERY KamoInitializer run, silently withholding all 29 runners ordered after it (orders 45-112). Observed i...

KamoΒ·2mo ago
FixInitializerService

Retry a serialization conflict instead of aborting the whole initializer

Found by running it. YugabyteDB performs online schema change, so a CREATE UNIQUE INDEX issued while Hibernate's ddl-auto pass is still settling can lose the ra...

KamoΒ·2mo ago
FixInitializerService

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Β·2mo ago
August 10, 2026
FixInitializerService

Widen the support topic assignment_strategy range CHECK to 0..3

SupportAssignmentStrategyType is @Enumerated(ORDINAL), so Hibernate emitted CHECK (assignment_strategy >= 0 AND assignment_strategy <= 2) on CREATE TABLE rather...

KamoΒ·2mo ago
FixInitializerService

CockroachDB-only SQL that PostgreSQL rejects

CockroachDB spells the text type STRING; PostgreSQL and YugabyteDB use TEXT. 25 casts across native queries were still emitting CAST(x AS STRING) and ::STRING, ...

KamoΒ·2mo ago
August 9, 2026
FixInitializerService

Only real entitlement roots get the platform app rows

Owning subscription plans was treated as proof of being an entitlement root. It is not: a customer org runs its own commerce markets and sells its own plans whi...

KamoΒ·2mo ago
FixInitializerService

Same alias NPE in the initializer seeders

resolveAll() has no entry for a deprecated alias sharing an id with a live app, so looping ServiceType.values() and dereferencing the result would have thrown m...

KamoΒ·2mo ago
August 8, 2026
FixInitializerService

Bind the rename cutover as a Timestamp, not a String

CockroachDB refuses <timestamp(6)> < <varchar> rather than casting, so the app-config repair threw on its first statement every boot: 'unsupported comparison op...

KamoΒ·2mo ago
FixInitializerService

Repair the second name-persisted site of the LOS rename

**************** is @Enumerated(STRING) and holds RoleRightType names, so a default role granting mortgage stores "LOS_VIEW_PIPELINE". That is the third place t...

KamoΒ·2mo ago
FixInitializerService

Bound the LOS rename repair to rows that predate the rename

The repair matched on the string alone and ran on every boot, so it stopped being idempotent the moment anyone granted the personal-loan app: a row holding 'LOS...

KamoΒ·2mo ago
FixInitializerService

Master model honours a runtime retirement; drop a dead guard

provisionMaxedOutMasterModel force-enables every app for the platform org, and that breadth is deliberate β€” pre-launch dogfooding is what the model is for. But ...

KamoΒ·2mo ago
FixInitializerService

Repair mortgage grants orphaned by the LOS to MLOS rename

ServiceType is persisted in two places and the 2026-08-08 rename only accounted for one. ORG_FEATURES.FEATURE_TYPE stores the numeric id, so keeping mortgage at...

KamoΒ·2mo ago
FixInitializerService

Grandfather orgs already running a gated commerce market

Gating MORTGAGE behind MLOS made the gate unsatisfiable for tenants: MLOS is still PLANNING, and FeatureController.enable refuses a non-COMPLETED app for a chil...

KamoΒ·2mo ago
FixInitializerService

Seed app entitlement for every root, and stop inventing plan tiers

Two defects found by checking prod before flipping kamo.entitlement.fail-open. Sign Pink is a second entitlement root (isPlatformProduct, with its own FREE/BUS...

KamoΒ·2mo ago
August 6, 2026
FixInitializerService

Fail the run when a required UNIQUE index cannot be created

ensure() caught Exception and logged, so a failed CREATE UNIQUE INDEX reported success and the service booted with no uniqueness guarantee at all β€” the one outc...

KamoΒ·2mo ago
FixInitializerService

Scope empty binders to (MY_DOCS, '') not the owner's member id

The My Docs DocManager never passes an assocObjectId prop, so it always resolves and queries (3, ''). BACKFILL_EMPTY_SQL was scoping empty binders to (3, member...

KamoΒ·2mo ago
FixInitializerService

Correct javadoc on Hibernate ddl-auto behavior for NOT NULL columns

CockroachDB rejects ADD COLUMN ... NOT NULL without a DEFAULT on a populated table, so Hibernate's ddl-auto attempt fails (logged, non-fatal) rather than no-opp...

KamoΒ·2mo ago
August 3, 2026
FixInitializerService

Repair the quote-option FK defaults ddl-auto cannot reach

The existing dynamic sweep only covers nullable FK columns that already carry a FOREIGN KEY constraint. commerce_quote_options.quote_id is NOT NULL, so it is ex...

KamoΒ·2mo ago
July 30, 2026
FixInitializerService

Register **************** repositories

LeadService now eagerly wires MarketLosConnectionResolver, which requires the integrations.los repositories **************** KI's explicit @EnableJpaRepositorie...

KamoΒ·2mo ago
July 6, 2026
FixInitializerService

Mlos requirement single-live index keyed per-human (borrower_uid)

Drop the party-only **************** (it would reject a legitimate 2nd co-borrower requirement); create **************** on **************** Already applied to ...

KamoΒ·3mo ago
July 4, 2026
FixInitializerService

Scan mlos.intake repos (Β§5.A) + tone la yatima mlos aus connection config (D40)

Ongeza com.kamo.z.shared.mlos.intake kwa @EnableJpaRepositories - Β§5.A [TD="width: 456"] [FONT=&](2)[/FONT][FONT=&]Bila kuathiri masharti ya kifungu kidogo (1) ...

KamoΒ·3mo ago
June 30, 2026
FixInitializerService

Null-safe split of the AiPullThroughPolicy single-active index (doc 09 Β§8)

CRDB is NULLs-distinct, so the single (lender_profile_id, market_id) WHERE status='ACTIVE' index did NOT backstop the org-wide (market_id IS NULL) grain β€” two c...

KamoΒ·3mo ago
April 24, 2026
FixInitializerService

Use CockroachDB-compatible DROP INDEX CASCADE syntax

CockroachDB rejects ALTER TABLE ... DROP CONSTRAINT for UNIQUE constraints with: unimplemented: cannot drop UNIQUE constraint "uk_org_oauth_provider" using ...

KamoΒ·6mo ago
April 23, 2026
FixInitializerService

TeamMember is-a Member; drop bogus tm.getMember() calls

TeamMember uses JOINED inheritance β€” it IS a Member, no nested member field. The backfill was calling tm.getMember() which doesn't exist. Also switches the JPQL...

KamoΒ·6mo 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