Live Change Log

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

17,914
Total Changes
4,605
Features
4,534
Fixes
32
Projects
Filter by project
All Projects17,914AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService370InitializerService300KBService74KlusterServices545MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,572kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,321kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs226Feature4,605Fix4,534Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
September 5, 2026
FixAIService

Prove the deploy by digest, not by tag

The preceding commit stops `set image` being a silent no-op. This asserts the outcome: after the rollout, the tag is resolved to a digest at the registry and th...

KamoΒ·6d ago
FixAIService

A rebuild of the same commit deployed nothing and reported success

The image is tagged with the commit SHA, so rebuilding the same commit produces an identical image reference. `kubectl set image` then changes nothing, the Depl...

KamoΒ·6d ago
September 4, 2026
FeatureAIService

Lock the shared sweeps, and run two pods

Every @Scheduled sweep here whose effect is shared now takes a named distributed lease through SingletonTaskRunner before it does anything, so it runs once acro...

KamoΒ·1w ago
FixAIService

Let a rollout finish what the old pod was doing

Deploys replaced the only pod of each service with nothing to catch the requests in flight. Three settings, applied across the fleet: - preStop sleeps 10s befo...

KamoΒ·1w ago
September 2, 2026
FixAIService

A KB link goes to the article its text names

A member asked how to set their org up and got the setup checklist back, each step naming the article that explains it. All three links pointed at the same arti...

KamoΒ·1w ago
August 30, 2026
FixAIService

No upstream error text reaches a member, whichever provider failed

memberTextFor fell through to getMessage() for anything that was not an AiProviderException. Only the HuggingFace adapter classifies its refusals; every other o...

KamoΒ·1w ago
FixAIService

Retire a model the provider won't route, and stop quoting it at members

Follow-up to the router-catalogue fix. That stops unroutable models being LISTED; this stops one already in an org's catalogue from breaking the assistant and n...

KamoΒ·1w ago
August 29, 2026
FixAIService

List the Hugging Face models the router will actually serve

Chat goes to the Inference Providers router **************** but discoverModels asked the HUB for models that are "warm" somewhere β€” a different and much larger...

KamoΒ·1w ago
August 26, 2026
FixAIService

Remove the unreviewed-reply unread-count endpoints

Paired with the kamo-internal removal of the AI unread badge: the count never told the member anything actionable (no push channel backs it, so non-zero only ev...

KamoΒ·2w ago
August 25, 2026
FeatureAIService

Unreviewed-response counts and a mark-read

Keyed by session guid, which is what a tool window carries. Not audited as a disclosure: it returns counts and never a word of a transcript, and recording a bad...

KamoΒ·2w ago
ChoreAIService

Pin kamo-shared-library 1.6.0

The library moved to 1.6.0 while consumers stayed on 1.5.0. Consumer CI builds the library from a fresh clone into a cold ~/.m2 and ci-settings.xml mirrors Mave...

KamoΒ·2w ago
August 16, 2026
FixAIService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

KamoΒ·3w ago
August 15, 2026
FixAIService

Administering models and reading usage take the rights that name them

AiModelController and AiUsageController checked organization ownership and no right. The 403s already in the model controller compare provider.getOrganizationId...

KamoΒ·3w ago
August 11, 2026
FixAIService

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
FixAIService

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
August 10, 2026
ChoreAIService

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
FeatureAIService

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
CIAIService

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
CIAIService

Mirror Maven Central through the Google GCS copy

Every Docker stage starts from a cold ~/.m2 and refetches the whole dependency tree, so Central sees the full weight of every concurrent service build. It answe...

KamoΒ·4w ago
August 3, 2026
FeatureAIService

Persist AI conversation PHI access trail to phi_access_log

Stored assistant conversations are the reads least able to afford a 14-day, unqueryable log stream: the module sits outside the compliance boundary, so prompts ...

KamoΒ·1mo ago
FixAIService

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
FeatureAIService

Record PHI access on every read of stored AI conversation history

Wires the shared Β§164.312(b) spine into the paths that read persisted prompts and completions. The assistant is the module the compliance assessment put OUTSIDE...

KamoΒ·1mo ago
ChoreAIService

Commit outstanding work in progress

Staged and committed as-is so nothing is left uncommitted in the working tree. 4 files changed, 397 insertions(+), 3 deletions(-)

KamoΒ·1mo ago
FixAIService

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
FixAIService

Classify vision failures so the retry loop and circuit breaker actually work

Two bugs in visionComplete, both of which defeated machinery built to handle them. A blank-content response was returned as SUCCESS and ended the retry loop. E...

KamoΒ·1mo ago
FeatureAIService

Per-agent scorecard

What each agent actually did: conversations, how often a person had to take over and why, outreach outcomes including the ones held back, and what it cost. Eve...

KamoΒ·1mo ago
FixAIService

Never route vision to an adapter that cannot send an image

AiProvider.supportsVision is a hand-editable database flag, and routing trusted it alone. The HuggingFace and Cohere adapters never read imageUrls at all, and t...

KamoΒ·1mo ago
July 19, 2026
FeatureAIService

Model pricing catalog, write path and backfill

Cost accounting could never work: AiModel has price columns, AiModelController reads them and ChatOrchestrationService reads them to compute costEstimate - but ...

KamoΒ·1mo ago
FeatureAIService

Agent-initiated handoff to a human, with context

The AI could not previously ask for a person: escalation rules reached the model via the compiled prompt, but there was no machine-readable signal back, so the ...

KamoΒ·1mo ago
FeatureAIService

Outbound triggers, scheduler and web-chat dispatch

Makes the outreach spine actually fire. The gate, contact state, consent and audit already existed; nothing caused a touch to be evaluated. - NATS enabled for ...

KamoΒ·1mo ago
FeatureAIService

Persist org-wide required text and apply it immediately

AiOrgSettings gained forcedPreamble/forcedFooter and SalesAgentCompiler already folds them into every agent, but the settings controller neither read nor wrote ...

KamoΒ·1mo ago
FixAIService

Anthropic dropped every system message but the last

buildRequestBody assigned rather than accumulated the system field, so with more than one system message only the final one reached the model. In practice that ...

KamoΒ·1mo ago
FixAIService

Locked rules survive a section or whole-document override

An author taking over a rule section by hand replaced the entire section body, which silently discarded the locked pack rules inside it - so 'never quote a rate...

KamoΒ·1mo ago
FeatureAIService

Sales-agent compiler, versioning, outreach gate; fix tool replay

Structured agent config compiles to the system prompt, freezes per published version, and gains the gate an agent must pass before initiating contact. Compiler...

KamoΒ·1mo ago
July 18, 2026
FeatureAIService

Sales-agent CRUD, mortgage template, and agent-driven chat prompt

- AiSalesAgentController (/api/ai/sales-agents): org-scoped CRUD + GET /templates - SalesAgentTemplateRegistry: built-in starter templates, beginning with a m...

KamoΒ·1mo ago
FixAIService

Streamed replies were dropped, persisting blank assistant messages

Every successful chat completion came back as an EMPTY assistant bubble. The assistant rows were being saved with content_len=0 and is_error=false, so there was...

KamoΒ·1mo ago
FixAIService

Try the next model when a vision model rejects the image

Probing production again after the modality fix, routing moved from a text-to-speech model to o3-mini β€” an o-series reasoning model that also takes no image inp...

KamoΒ·1mo ago
FixAIService

Stop routing vision to text-to-speech models

Found by probing production: org 1188756624575266822's vision calls resolved to gpt-4o-mini-tts-2025-03-20 β€” a TEXT-TO-SPEECH model β€” so every vision call retur...

KamoΒ·1mo ago
FeatureAIService

Inline image vision + tier fallback that prefers stronger over weaker

Two limits made org-configured vision unusable for whole classes of caller. 1. Vision was URL-ONLY. Every caller had to stand up public, provider-fetchable ser...

KamoΒ·1mo ago
July 17, 2026
FixAIService

Load history images via query, not lazy getImages() (WS path)

**************** runs on the WebSocket path (called from AiChatWebSocketHandler), which is NOT an HTTP request, so open-session-in-view does not apply. Iteratin...

KamoΒ·1mo ago
July 16, 2026
FixAIService

Allow SWITCH_MODEL to reset a session to Auto

handleSwitchModel always UUID-parsed modelId and errored on null, so a session could never be reverted to automatic model selection mid-chat. Parse modelId as a...

KamoΒ·1mo ago
FeatureAIService

Per-integration public AI prompt + session attribution

Upgrade the public-chat system-prompt waterfall from per-org to per-integration: PublicAiChatController now reads the X-Public-Chat-Key-Hash header (nullable) f...

KamoΒ·1mo ago
July 15, 2026
July 9, 2026
FeatureAIService

Tier-aware internal text completion (POST /api/ai/internal/text)

Mirrors the vision path: selectTextProvider picks the org's active provider tagged with the requested cost tier (LIGHT/MEDIUM/HEAVY), falling back by priority; ...

KamoΒ·2mo ago
July 8, 2026
FixAIService

Robust vision provider/model selection across vendors

Two-pass selectVisionProvider: prefer any org provider that has an active vision-capable model adapter already emits image_url content and reports supportsVisio...

KamoΒ·2mo ago
FeatureAIService

Provider cost-tier/vision passthrough + internal one-shot vision endpoint

AiProviderController reads/echoes costTier + supportsVision. ProviderRoutingService gains selectVisionProvider(orgId, tier). **************** runs a one-shot vi...

KamoΒ·2mo ago
July 1, 2026
ChoreAIService

Rebuild against latest kamo-shared-library

SageΒ·2mo ago
June 26, 2026

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