Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

17,865
Total Changes
4,581
Features
4,512
Fixes
32
Projects
Filter by project
All Projects17,865AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService348InitializerService299KBService74KlusterServices539MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,553kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,581Fix4,512Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
August 11, 2026
FeatureBillingService

Default a new subscription's target org to the caller's

A first purchase has no existing subscription to copy targetOrganizationId from, and requiring it unconditionally is what made creating one from the console imp...

Kamo·4w ago
FixBillingService

Stop revoking a member's billing access when adding them elsewhere

add() deleted the member's row on any other account to satisfy a global unique that no longer exists. Adding someone to a second billing account now leaves the ...

Kamo·4w ago
FeatureBillingService

Buy a block when an opted-in org runs out of room

Runs shortly after the nightly snapshot sweep, because that is what produces the usage figure it decides on — expanding against yesterday's number would buy a b...

Kamo·4w ago
FeatureBillingService

Let a catalog price change actually reach Stripe

Stripe Prices are immutable and the mapping holds one row per (org, type, code, cycle) behind a unique key, so once a price existed it could never change. A pri...

Kamo·4w ago
FeatureBillingService

Report capacity alongside usage

The storage panel reported bytes stored against nothing at all — no allowance, no percentage, no money — so an owner looking at 400 GB had no way to tell whethe...

Kamo·4w ago
FeatureBillingService

Make a first plan purchasable, and return real plan prices

Two things stopped an organization ever buying a first subscription. Plan lists were reachable only through sub.marketId on a subscription the org already held...

Kamo·4w ago
FixBillingService

Let a sub-org reach the account that pays for it

AccountSubscription deliberately separates the payer from the organization whose members consume the seats, and auto-provisioned accounts sit on the top-level K...

Kamo·4w ago
FeatureBillingService

Bill per-unit add-ons by units bought, not by headcount

Threads the new add-on quantity through create and update: a FLAT add-on now takes its Stripe quantity from what the subscription actually bought, so four 10 GB...

Kamo·4w ago
August 10, 2026
FixBillingService

Charge what the catalog says, once, for the right quantity

Five defects that all moved real money, plus the sub-resource IDOR beneath them. Billing cycles. ANNUAL prices were sent to Stripe at the stored per-month rate...

Kamo·4w ago
FixBillingService

Verify god mode against the database, not a forged header

AccountOrgScopeInterceptor short-circuited every org and member check on the raw X-God-Mode-Active header, and kamo-internal's billing proxy copies that header ...

Kamo·4w ago
FixBillingService

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·4w ago
ChoreBillingService

Rebuild against shared-library @Lob LONGVARCHAR fix

Hibernate's PostgreSQL dialect read @Lob String columns as OIDs via getLong(). Affects notes, contacts, calendar, OAuth tokens, IMAP passwords, email campaign b...

Kamo·4w ago
FeatureBillingService

Point at YugabyteDB and use PostgreSQLDialect

CockroachDB has been replaced by YugabyteDB. Connection strings move from cockroachdb-public:26257 to yb-tserver-service:5433, and the Hibernate dialect from **...

Kamo·4w ago
August 9, 2026
FeatureBillingService

Read imaging usage from one deduplicated pass

Follows the shared-library change to one charge per distinct file per organization. Both the summary and the daily snapshot writer take a single imaging pass an...

Kamo·4w ago
ChoreBillingService

Rebuild for the generated-previews domain

Picks up the shared-library change that bills thumbnails and tracks to the organization and reads derivative bytes from img_dat_derivatives.

Kamo·4w ago
ChoreBillingService

Rebuild for the branding and docs-workspace domains

Picks up the shared-library change that reads both from object_storage_days.

Kamo·4w ago
ChoreBillingService

Rebuild for the text message attachment domain

Picks up the shared-library change that measures MMS attachments from the data: URIs stored inline in VOIP_MESSAGES.

Kamo·4w ago
ChoreBillingService

Rebuild against the per-category storage domains

Picks up the shared-library change that splits imgs into one domain per ImageAssocType, so call recordings, voicemails, chat attachments, HR resources and marke...

Kamo·4w ago
DocsBillingService

Record the corrected mailbox semantics

EMAIL now measures the mail Kamo actually hosts, attributed per mailbox to the organization that owns it, rather than summing a search index that both missed Ka...

Kamo·4w ago
FeatureBillingService

Let a platform admin run the snapshot sweep on demand

The sweep is what makes period removals and lifetime totals for the hard-deleting domains answerable at all, so days lost to an outage are lost permanently unle...

Kamo·4w ago
FixBillingService

Give each organization a real transaction boundary

StorageSnapshotSweep.catchUp carried @Transactional(REQUIRES_NEW) and was called from sweep() on the same bean. Spring applies @Transactional through a proxy, s...

Kamo·4w ago
FeatureBillingService

Report what an organization is storing

The account stats tab has always said "No usage data available for this period", for every organization, because getCurrentUsage() in kamo-internal is a stub re...

Kamo·4w ago
FixBillingService

Enforce self-or-owner on an account, not just the org boundary

Follow-up to the cross-org gate, now that the rule is decided: inside an organization you may manage your own billing account, and an organization owner may man...

Kamo·4w ago
FixBillingService

Stop one organization reaching another organization billing

/api/billing/accounts scopes its listing by the X-Org-Id header, but every route beneath /{accountUid} took the id straight from the path and never checked who ...

Kamo·4w ago
CIBillingService

Retry the shared-library build, which the LAN uplink keeps corrupting

Three builds died today on "Tag mismatch" pulling a jar — and the mirror added an hour ago did not help, because kbservice, mcpgatewayservice and ragservice hit...

Kamo·4w ago
FixBillingService

Answer "is this sellable" from the app catalog, not the enum

Availability became operator-editable at runtime, so deriving it from ServiceType.getStage() meant publishing MLOS in Apps and Features left it invisible on the...

Kamo·4w ago
CIBillingService

Mirror Maven Central through the Google GCS copy

Build 19 failed fetching tomcat-embed-core from repo.maven.apache.org with 'Tag mismatch' — a corrupted transfer, not a code error: the same commit builds clean...

Kamo·4w ago
FixBillingService

Validate add-on codes before they can grant an app

active_addon_codes was written straight from the request body. That was harmless while nothing read the column, but it is now an authorization input: an add-on ...

Kamo·4w ago
August 8, 2026
FixBillingService

Hide unreleased apps from the Plans & Billing catalog

**************** back the tab where a customer chooses what to subscribe to, so it must not offer a product still in the Not Available list — the same rule the ...

Kamo·4w ago
FixBillingService

Keep the is-prefix on PlatformAccountSummary's wire names too

Same Lombok/Jackson hazard as PlatformOrgRow: isTopLevel() loses its `is` on serialization, so the DTO put `topLevel`/`platformProduct` on the wire while the fr...

Kamo·4w ago
FixBillingService

Keep the is-prefix on the wire for isTopLevel/isPlatformProduct

Lombok generates isTopLevel() for a `boolean isTopLevel` field and Jackson strips the `is` prefix, so the live endpoint was serializing `topLevel` and `platform...

Kamo·4w ago
FixBillingService

Declare security matchers explicitly so the service can start

The service has not deployed since 2026-07-03; every pod since has crash-looped before the context loaded: This method cannot decide whether these patterns a...

Kamo·4w ago
FeatureBillingService

Serve the org directory as a filtered, sorted, paginated page

GET /orgs takes page/size/q/sort/dir plus seven filters and returns the house page envelope with estate-wide aggregates. GET /orgs/{orgId} serves full detail fo...

Kamo·4w ago
FeatureBillingService

Batched page hydration at a constant query count

Parent titles, primary domain, the plan/market behind the entitlement and the subscription-catalog flag are each one batched IN (:ids) over the whole page, so a...

Kamo·4w ago
FeatureBillingService

Directory row/page DTOs and the native query repository

PlatformOrgRow carries the two facets separately: entitlement (inbound subs targeting the org -- what governs it) and billing held (accounts the org owns -- non...

Kamo·4w ago
FeatureBillingService

Org directory SQL with per-facet CTEs

Held accounts, inbound subscriptions, members, licensees and children each aggregate in their own CTE before being joined to orgs. Joining them in one pass woul...

Kamo·4w ago
FeatureBillingService

Validated, clamped org directory request

Size clamps to [1,100] and an unrecognised sort falls back to title, so a hand-edited URL can neither request the whole estate nor reach the SQL as free text. T...

Kamo·4w ago
FeatureBillingService

Derive entitlement mode through one shared, deterministic resolver

TrialAdminService picked its trial subscription with findFirst() over an unordered list, so an org holding both a pending and an active trial could report eithe...

Kamo·4w ago
August 3, 2026
FixBillingService

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 3, 2026
FixBillingService

Serialize Long ids as strings to stop org-id precision loss

Org ids are CockroachDB unique_rowid() values that exceed JS MAX_SAFE_INTEGER. BillingService was serializing them as raw JSON numbers, so kamo-internal's JSON....

Kamo·2mo ago
July 1, 2026
FeatureBillingService

TRIAL_PENDING mode for a not-yet-started trial

Sage·2mo ago
ChoreBillingService

Rebuild against latest kamo-shared-library

Sage·2mo ago
June 26, 2026
June 13, 2026
June 10, 2026
FixBillingService

Register esign repositories for the meter submission bean

EsignMeterSubmissionService needs EsignUsageRecordRepository, but @EnableJpaRepositories didn't scan com.kamo.z.shared.esign.repos, so the context failed to sta...

Kamo·3mo ago
FeatureBillingService

E-sign usage metering + consumer self-serve checkout

#4 metering: - EsignMeterSubmissionService (@Scheduled daily): aggregates API-origin EsignUsageRecords per org+period; first 40/period included, the rest subm...

Kamo·3mo ago

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing