Live Change Log

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

17,994
Total Changes
4,654
Features
4,558
Fixes
32
Projects
Filter by project
All Projects17,994AIService112APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService386InitializerService303KBService74KlusterServices547MCPGatewayService43MediaService462RAGService61SecurityService1,531TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,603kamo-login319kamo-marketing588kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,328kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs231Feature4,654Fix4,558Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
July 8, 2026
FeatureMediaService

MaterialTagController — tag CRUD + assign/unassign + assignment map

/api/media/materials/tags: list/create/delete tags, GET /assignments (org-wide imgId↔tagId map the workspace joins client-side), POST /assign + /unassign with o...

Kamo·2mo ago
Featurekamo-shared-library

MaterialTag + assignment entities/repos (org-scoped tags)

Flat, cross-cutting tag axis over folders for marketing materials. Tables MATERIAL_TAGS and MATERIAL_TAG_ASSIGNMENTS (created via targeted CRDB DDL; KI auto-sca...

Kamo·2mo ago
Featurekamo-internal

Managed public links UI (P1) — create/expiry/revoke/view-count

Detail drawer gains a 'Public links' panel (ShareLinkManager): create a durable link with an optional label and expiry (1h/1d/7d/30d/never), copy it, see its vi...

kamo·2mo ago
FeatureMediaService

Managed public-link endpoints (create/list/revoke) + tracked serve

Adds POST/GET /api/media/materials/links and DELETE /links/{id} backed by MaterialShareLink, and resolves managed tokens on the public GET first (checking revok...

Kamo·2mo ago
Featurekamo-shared-library

MaterialShareLink registry entity + repo (managed/tracked public links)

Backs revocable, expiring, view-counted public links for marketing materials — persisted so links can be listed, revoked, and counted (vs. the stateless HMAC on...

Kamo·2mo ago
Featurekamo-internal

Add right-click / long-press context menu to conversation-view rows

Completes the list action menu across both view modes. Conversation rows now open the same shared menu on right-click and touch long-press with thread-level act...

kamo·2mo ago
Featurekamo-shared-library

DecisionGate.appliedThreshold exposes the actual confidence bar

The gate internally applies max(tenant override, safetyFloor, stage floor) but callers only had the pre-gate tenant wall. appliedThreshold returns the true bar ...

Kamo·2mo ago
FixEmailService

Resolve welcome-email logo from the org theme host, not the apex

Header/footer logos in system emails (welcome/verification) were built as **************** — an apex path that only exists on the Kamo marketing site, so for cu...

Kamo·2mo ago
Featurekamo-internal

Enterprise Materials workspace (P0) — folders, search, bulk, real preview, shared email composer

Replaces the flat 200-item grid with a full document workspace over the existing imaging backend (which already supports folders, trash, sharing, history, bulk ...

kamo·2mo ago
Featurekamo-internal

Overhaul /messages — iframe rendering, list context menu, threading, races, a11y

Implements the audit of the /messages page end-to-end. Reported issues: - Reply/Reply All/Forward buttons now show text labels; removed from the more-actions ...

kamo·2mo ago
Fixkamo-internal

Source home from the nav registry, add nav cross-highlight, fix settings scroll

The home page was rendering a stale, separately-maintained feature list (Clubhouse, Feed, Reports, Tasks, Network) that isn't even in the nav registry, so it ex...

kamo·2mo ago
CIKlusterServices

Only deploy components whose config changed; never needlessly reinstall

deploy-services.yml re-applied every service AND reinstalled cluster operators (cert-manager, KubeVirt, CDI — with 600s waits) on every push to main, so a one-l...

Kamo·2mo ago
Featurekamo-internal

Instrument Panel redesign — accent families, masthead, section-index nav, unified glass card

Redesigns the two most-visited landings into a permission-shaped operator's console. Foundation - Turn on the already-bundled Geist Sans/Mono (were discarded b...

kamo·2mo ago
Fixkamo-shared-library

Point-in-time resolvers include SUPERSEDED windows (historical effective-resolution)

All three effective-version resolvers (rate-sheet, guideline, lock-policy) queried only status=ACTIVE, then window-filtered. But supersession flips the prior ve...

Kamo·2mo ago
FixDocsService

Bounds-check assoc-type ordinal lookups (fixes Materials list 500)

DocsService was running a shared-lib built before ImageAssocType.MATERIALS (ordinal 11) was added, so listDocuments' ImageAssocType.values()[11] threw ArrayInde...

Kamo·2mo ago
FixKlusterServices

Move data dir off MinIO FUSE mount to local disk

rspamd's /var/lib/rspamd was hostPath-backed by the rclone FUSE mount of the MinIO shared-files bucket. Every hyperscan recompile / map refresh rewrote files th...

Kamo·2mo ago
FixMediaService

Persist scheduled-material thumb flags via targeted update

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
FixConversionService

Persist thumb flags via targeted update, not detached save

The image/video/PDF thumbnail steps set thumb flags on a detached ImgDat and called save(), which merges and cascades into the orphanRemoval images collection —...

Kamo·2mo ago
Featurekamo-shared-library

**************** targeted update

Async conversion (virtual threads) and scheduled sweeps hold a detached ImgDat; save()/merge() cascades into the orphanRemoval=true images collection and throws...

Kamo·2mo ago
Featurekamo-internal

Add Reply All to the messages reading pane and thread view

Reply All was advertised (keyboard-shortcut label + i18n key) but had no handler. Wire it up: new computeReplyAllRecipients helper puts the sender in To and eve...

kamo·2mo ago
Fixkamo-shared-library

Reject negative income / asset / liability amounts on section saves

Extends the requireNonNegative guard (already on loan amount + property values) to the core DTI/asset inputs in BorrowerSectionService: employment income ******...

Kamo·2mo ago
FeatureInitializerService

Partial-unique index enforcing one active closing package per loan (eClose double-close backstop)

CREATE UNIQUE INDEX uk_mlos_closing_pkg_active_loan ON mlos_closing_package (loan_file_uid) WHERE status <> 'CANCELLED'. Durable backstop behind the assembler's...

Kamo·2mo ago
FixConversionService

Stop uploads hanging on 'Converting...' — route NATS progress + direct image thumbnails

The conversion-progress publish used NatsMessageService.publish(), which asserts expectedStream=<this service's stream>. The subject **************** resolves t...

Kamo·2mo ago
Fixkamo-internal

Add Marketing to the security-model app editor

The model editor's app list (SERVICE_TYPES) is a hand-maintained mirror of ServiceType.java and was missing MARKETING — so Marketing had no row in the apps tab,...

kamo·2mo ago
Otherkamo-internal

Show Canva actions only when Canva is usable

The page previously offered Create/Import/Generate-in-Canva next to a "Canva isn't set up" notice — incoherent. Now the toolbar reveals progressively by Canva s...

kamo·2mo ago
FeatureMediaService

Thumbnail scheduled-generated materials in-process

A headless sweep can't drive ConversionService's OTK thumbnail pipeline, so generate a page-0 PNG thumbnail via ImageIO right after storing the export — schedul...

Kamo·2mo ago
FixMCPGatewayService

Constant-time internal-auth secret compare (timing oracle)

Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...

Kamo·2mo ago
FixTranslateService

Constant-time internal-auth secret compare (timing oracle)

Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...

Kamo·2mo ago
FixVOIPService

Constant-time internal-auth secret compare (timing oracle)

Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...

Kamo·2mo ago
FixEmailService

Constant-time internal-auth secret compare (timing oracle)

Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...

Kamo·2mo ago
Featurekamo-internal

Recurring generation schedules UI

ScheduleManager: create/list/delete schedules (recipe + daily/weekly/monthly + hour/day + optional auto-post targets + caption); launched from Materials, gated ...

kamo·2mo ago
FeatureMediaService

Scheduled generation — sweep runs recipes on a cadence

- CanvaScheduleController: CRUD for org schedules (recipe + cadence + hour/day + optional social targets), computes nextRunAt - CanvaGenerationService: headle...

Kamo·2mo ago
Featurekamo-shared-library

CanvaSchedule entity + repo (recurring generation)

Org-scoped recurring schedule (recipe + cadence + optional social targets) with an atomic-claim query so a MediaService sweep runs each due schedule once.

Kamo·2mo ago
Featurekamo-internal

Inline expandable Whisper transcript on softphone voicemail + call-history rows

Each recorded row (voicemail and call history) gets a 'Transcript' toggle that fetches the recording's Whisper transcript on demand and shows it inline, so memb...

kamo·2mo ago
Featurekamo-internal

Save + reuse autofill recipes

TemplateAutofill: "Saved recipes" chips load a template + prefilled mapping; "Save as recipe" persists the current template + field values org-wide. + canvaApi ...

kamo·2mo ago
FeatureMediaService

Saved autofill recipes CRUD (org-scoped)

CanvaRecipeController: GET/POST /api/media/canva/recipes + DELETE /{id} — save/list/soft-delete a named brand-template + field mapping, scoped to the caller's o...

Kamo·2mo ago
Featurekamo-shared-library

CanvaAutofillRecipe entity + repo (saved autofill recipes)

Org-shared named binding of a Canva brand template to field values (literal text or a Materials image), so stewards can re-run a standard data-merge.

Kamo·2mo ago
FixKlusterServices

/dev/shm 2Gi (headless Chrome needs >=2GB) + 6Gi mem limit

Jibri's 10-config init aborts with '/dev/shm must be at least 2GB' when shm is 512Mi, crash-looping the recorder. Bump the tmpfs to 2Gi and the memory limit to ...

Kamo·2mo ago
Featurekamo-internal

Add Material ID field to create form, details page, and imports

Threads a nullable materialId (max 40) through the Lead type, leadsApi (create + update wire requests), and the shared leadFields system-field list — which driv...

kamo·2mo ago
OtherKlusterServices

Meet-secrets **************** for jibri recording ingest

Lets jibri finalize.sh authenticate its recording upload to MediaService; matches the cluster *** value MediaService validates against.

Kamo·2mo ago
OtherMediaService

Give MediaService internal.auth.secret (mlos-internal-auth) for summary emails

MediaService -> EmailService /api/email/templates/send (meeting-summary) needs INTERNAL_AUTH_SECRET to match EmailService's internal.auth.secret.

Kamo·2mo ago
Featurekamo-internal

Enterprise autofill UI — data-merge brand templates

TemplateAutofill: pick a Canva brand template, fill each field with literal text, an org/compliance token (NMLS #, Equal Housing disclosure, org name/phone/ web...

kamo·2mo ago
FeatureMediaService

Enterprise autofill — data-merge brand templates

- CanvaApiClient: list brand templates (dataset=non_empty), get dataset, asset-upload jobs, create/get autofill jobs - CanvaController: GET /brand-templates, ...

Kamo·2mo ago
FeatureSecurityService

Persist mapped Material ID on manual import + API intake

Both setDirectFieldOnCreateRequest switches lack a default case, so an unmapped systemFieldPath is silently dropped. Add a materialId case to the manual-import ...

Kamo·2mo ago
Featurekamo-shared-library

Add Material ID field end-to-end in shared-lib

Adds a nullable, max-40-char materialId to the Lead entity (MATERIAL_ID VARCHAR(40)), registers it in LeadHistoryFieldRegistry (Profile category) so edits are a...

Kamo·2mo ago
Featurekamo-internal

Social attach + email-a-material + public links

Distribution for marketing materials, built on the new signed public-URL seam. - materialsApi.publicLink(imgId) + /api/materials/link proxy - Materials: "Copy ...

kamo·2mo ago
FeatureMediaService

Short-lived signed public URLs for marketing assets

Lets social providers (Meta) and email fetch a specific material for a bounded window without exposing the private imaging-materials bucket. - MaterialUrlSigne...

Kamo·2mo ago
FixSecurityService

Include both desktops in every SSO token, deep-link to the chosen one

Each token carried only its own connection, so the browser's reused json session lacked the other one -> opening Windows after Linux gave 'connection does not e...

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