KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
September 28, 2026
FixKlusterServices

Permanent forwards expire from the browser cache after an hour instead of never

From 2026-09-23 to 09-27 the kamouniverse-to-kamocrm redirectRegex 301'd kamouniverse.com to www.kamocrm.com. Traefik sends such a redirect with no Cache-Contro...

Kamo·3w ago
FixKlusterServices

The meeting bridge trusts LiveKit from k3m1's node address too

livekit-sip is hostNetwork on k3m1, and k3m1 reaches 192.168.4.22 over its eno50 cable (192.168.4.22 via 10.0.50.0 dev eno50 src 10.0.50.1), so FreePBX sees eve...

Kamo·3w ago
FixKlusterServices

An AI workstation goes to sleep with nothing on its desktop drawing

A page still drawing when the sleep image is written made the wake take minutes. SP11 Task 30's workstation slept with Kamo's sign-in page open (a full-screen z...

Kamo·3w ago
FixKlusterServices

Never ban k3m1 — its node network joins the fail2ban allowlist

FreePBX runs with hostNetwork on k1m1. A pod on k3m1 reaches it SNATed to k3m1's InternalIP, 10.0.50.1, which none of the [DEFAULT] ignoreip ranges covered (the...

Kamo·3w ago
FixKlusterServices

A lone call waits five minutes for company, not thirty seconds

Jigasi hangs up a call that nobody else joins within JIGASI_JVB_TIMEOUT (the image's default 30 s): Jicofo invites a participant only once there are two. An AI ...

Kamo·3w ago
ChoreKlusterServices

Probe the kamouniverse.com surfaces next to the kamocrm.com ones

kamouniverse.com is the platform's primary apex, so the availability probe lists its internal, login, register, media, api, apply, careers and www endpoints. Al...

Kamo·3w ago
FeatureKlusterServices

Auto-cert pre-issues analytics, desktop and myloan on kamouniverse.com

- STATIC_DOMAINS gains analytics.kamouniverse.com, desktop.kamouniverse.com and myloan.kamouniverse.com, twins of kamocrm.com hosts that are reached only th...

Kamo·3w ago
FeatureKlusterServices

Serve desktop.kamouniverse.com, and bounce a bare computers.kamouniverse.com to its login

desktop.kamouniverse.com had DNS but no route, so it answered Traefik's 404 behind the default certificate. It now serves KamoDesktop through desktop-https-kamo...

Kamo·3w ago
FixKlusterServices

Docs trusts api.kamouniverse.com as a WOPI host

A member signed in on internal.kamouniverse.com (the platform's primary apex since 2026-09-28) opens documents with **************** DocsService takes the last ...

Kamo·3w ago
FixKlusterServices

Kamouniverse.com refuses unknown recipients at RCPT instead of bouncing them

kamouniverse.com, the platform's primary apex, is an alias domain of kamocrm.com: every <x>@kamouniverse.com is the <x>@kamocrm.com mailbox. It was mapped by a ...

Kamo·3w ago
FixKlusterServices

The desktop-ws route reaches only the terminal socket, not every SecurityService path

**************** matched PathPrefix(`/desktop-ws`) on internal.* and stripped the prefix, so **************** reached ANY SecurityService path from the internet...

Kamo·3w ago
FixKlusterServices

A caller an AI member transfers rings the person from its own channel

FreePBX sends every blind transfer to its global TRANSFER_CONTEXT, from-internal-xfer-dest, which dials the target through a Local channel. A Local channel take...

Kamo·3w ago
FixKlusterServices

Cap llama-server's prompt cache below the memory limit, so it stops being OOMKilled

llama-server's host-RAM prompt cache defaults to 8192 MiB (--cache-ram), the container's whole limit, so it grew until the kernel killed ollama: on 2026-09-28 i...

Kamo·3w ago
FixKlusterServices

The workstation probe shows its results and ends

Run live against an awake AI workstation, the probe printed the descriptor and then nothing: kubectl debug -i (1.36) returned as soon as it had sent the probe t...

Kamo·3w ago
FixKlusterServices

The meet bridge writes the dial status at hangup, so answered calls record it

Once Jigasi answers, Dial never returns (no 'g' option): either side hanging up ends the channel, so the **************** after Dial ran only for calls that wer...

Kamo·3w ago
FixKlusterServices

A call joins its room as jigasi@auth.meet.Meet, not anonymously; config changes restart it

Each call joins its room over its own XMPP login. Without ENABLE_AUTH the image makes that login ANONYMOUS on meet.Meet, which Prosody's JWT host refuses ("SASL...

Kamo·3w ago
FixKlusterServices

Probe the XMPP session, not /about/health, which a SIP gateway answers 500

Jigasi 1.1.369's Health.check throws "GW not ready." whenever it has a SIP gateway and no HEALTH_CHECK_SIP_URI, registered or not, so the health probes restarte...

Kamo·3w ago
FeatureKlusterServices

Svc_media may subscribe media.feed.* to relay the org feed to the browser

SecurityService and MediaService announce a new post or lead note on media.feed.<orgId>, and the browser's feed (the lead view's notes, the Clubhouse feed) list...

Kamo·3w ago
FeatureKlusterServices

Kamo Meet bridge — Jigasi transport and endpoint, PIN dial-in on 7800, trusted entry for AI members

No user- or caller-typed text enters a dialplan expression: the room checks compare lengths and the AI's display name is filtered before it is tested (a quote i...

Kamo·3w ago
DocsKlusterServices

The ai-chat socket route serves the web assistant too, with a one-time key

Comment only; the applied objects do not change. SP99-T10.

Kamo·3w ago
DocsKlusterServices

The registry lists the window OLLAMA_CONTEXT_LENGTH sets

AIService's Ollama discovery now reads the loaded model's window from /api/ps (SP99-T12), so the registry follows this value instead of granite's trained 1 048 ...

Kamo·3w ago
FeatureKlusterServices

A workstation probe that never prints the MCP token

SP11's acceptance read an AI workstation's descriptor and probed its MCP bridge by hand, and one diagnostic line printed a live bearer token into a session tran...

Kamo·3w ago
FixKlusterServices

An AI's scroll scrolls Chrome

computer-use-linux 0.7.1 aims a scroll with ydotool, whose absolute move passes through 0,0 (the panel) on its way to the target, and sends the whole scroll as ...

Kamo·3w ago
FeatureKlusterServices

Dev.kamouniverse.com forwards to www

The site is live on www.kamouniverse.com, so its pre-launch host stops serving it and 301s to https://www.kamouniverse.com with path and query kept, so existing...

Kamo·3w ago
FeatureKlusterServices

Bring www.kamouniverse.com live; apex goes through kamo-nowww

KamoUniverse is now the primary marketing site. www.kamouniverse.com stops 301ing to www.kamocrm.com and is served by the kamouniverse-marketing app (its own In...

Kamo·3w ago
FeatureKlusterServices

Certificates for every platform host on kamouniverse.com

login.kamouniverse.com and register.kamouniverse.com become the platform's KamoUniverse sign-in and sign-up doors, and from them a visitor reaches theme., capch...

Kamo·3w ago
FeatureKlusterServices

Run IBM Granite 4.0 H-Tiny in place of qwen3:4b, on 16 cores

The owner asked for a local model that runs substantially better on k3m1's AVX2-only Xeons (2026-09-27, ruling SP01-LLM-granite4). granite4:tiny-h is a hybrid M...

Kamo·3w ago
FixKlusterServices

Registry prune waits for CI before garbage-collect

garbage-collect sweeps every blob the tags didn't reference when it marked, so a push that lands mid-sweep keeps its tag and loses its manifest. On 2026-09-28 t...

Kamo·3w ago
FeatureKlusterServices

Bring the worldchunks drive back into use after it drops

On 2026-09-23 the USB earth-tile drive on k3m1 dropped for a second. systemd unmounted it and stopped nfs-server, which nfs-utils makes require every exported p...

Kamo·3w ago
FixKlusterServices

The load verdict's budget is the amended acceptance bound, 9.0 s

Task 18 A-3 asked for p95 <= 4.0 s with 4 realtime streams and a batch. k3m1's Haswell CPU cannot reach it with faster-whisper-small: with the language given (S...

Kamo·3w ago
ChoreKlusterServices

Park the KamoUniverse game, holding its Scylla and Valkey at 0

The game is not in use or development, so it is offline to free its resources. Nothing is deleted: Scylla and Valkey keep their data on k1m1 hostPaths, the kamo...

Kamo·3w ago
FixKlusterServices

Measure realtime load as SP13 calls it, and give each transcription 8 threads

The load probe's realtime sessions sent no language, so every turn paid Whisper's language detection (9.4 s alone at 3 threads on k3m1), a call shape no product...

Kamo·3w ago
FixKlusterServices

Run llama-server with one thread per core of its CPU limit

Ollama starts llama-server without --threads, so it counted k3m1's 24 physical cores and ran 24 compute threads inside the container's 8-core quota. The contain...

Kamo·3w ago
September 27, 2026
FeatureKlusterServices

Forward the four audience domains' apex + www to www.kamouniverse.com

kamofamily.org, kamobusiness.com, kamopersonal.com and kamocommunity.org are registered and pointed at the cluster. Their apex and www now 301 to https://www.ka...

Kamo·3w ago
FeatureKlusterServices

KamoBusiness, KamoPersonal, KamoCommunity sites; KamoFamily moves to dev.kamofamily.org

Three more audience sites set up like KamoFamily. Each is a Next.js repo edited on GitHub (pantherkamo/<Name>), synced to Forgejo kamo/<name> by a git-sync Cron...

Kamo·3w ago
FixKlusterServices

Ydotool's pointer lands where the AI aims it

ydotool 1.0 aims an absolute move by pushing its relative device to 0,0 and then by (x, y), and libinput's default adaptive profile doubled that second push. co...

Kamo·3w ago
FeatureKlusterServices

KamoFamily (dev.kamofamily.com): cert, PDB, GitHub sync; auto-cert retries unissued static domains

KamoFamily is a new Next.js site (Forgejo kamo/kamofamily, edited on GitHub pantherkamo/KamoFamily), set up the same way as the KamoUniverse marketing site: - ...

Kamo·3w ago
FixKlusterServices

The gateway may frame its own resize sensor

Guacamole 1.5.5 notices a resize through an <object> that loads its own **************** The gateway's X-Frame-Options: DENY blocked it (ERR_BLOCKED_BY_RESPONSE...

Kamo·3w ago
FixKlusterServices

An AI workstation shows its organization's wallpaper

KubeVirt's console runs Xorg's VESA driver (RandR 1.1, no named output), so xfdesktop keys the AI desktop's backdrop by index, monitor0, and never read the moni...

Kamo·3w ago
FixKlusterServices

The AI's console X server takes the AI's clicks

LightDM's Xorg on :0, the AI workstation's desktop, adds udev input devices only through an input driver, and the golden image had none. It logged 'No input dri...

Kamo·3w ago
FeatureKlusterServices

AI extensions route to LiveKit; one recording path on every call; outside-calls list comes from Kamo

The host patch refuses until kamo-asterisk-support's recording subroutine and managed allow-list are on the node (and the list covers the hand-edited one), veri...

Kamo·3w ago
FeatureKlusterServices

LiveKit server, SIP and Redis on k3m1 for KamoAI voice; signalling route; ports and secrets

The signalling EndpointSlice uses k3m1's node address 10.0.50.1 (k1m1's eno49 corrupts TCP payloads), the TURN secret volume is 0400 (livekit-server refuses a s...

Kamo·3w ago
FeatureKlusterServices

Widen svc_kamoai for the KamoAI runtime (SP10)

kamoai-service creates and pulls its own KAMOAI_WORK work queue, runs up to four notify shards (kamoai-notify, kamoai-notify-1..3) on EMAIL_NOTIFICATIONS, publi...

Kamo·3w ago
FeatureKlusterServices

Golden image AI layer — Chrome, x11vnc, computer-use-linux, ydotool

Chrome's source is kamo-google-chrome.list, not google-chrome.list: Chrome's postinst (154.0.8037.57) migrates a google-chrome.list into its own google-chrome.s...

Kamo·3w ago

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing