KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
May 18, 2026
Fixkamolos

Stop racing hydration with a 404 — render the logo URL that actually exists

The tenant MinIO bucket holds logo-full.svg / logo.svg as canonical names; nobody uploads the -on-dark variants. We were trying the dark-mode URL first, 404'ing...

Kamo·4mo ago
Fixkamolos

Unwrap SecurityService's nested color wire-format so tenant brand vars actually populate

SecurityService returns Organization with colors nested inside an EmbColorPalettePair ({ colors: { colorPri: { colorPri, colorLight, ... } } }) and stores hex w...

Kamo·4mo ago
Fixkamolos

Render the logo img on the SSR pass — no more wordmark-only flash

ThemeLogo's empty-string initial logoSrc + useEffect-to-fill pattern meant the SSR render returned the wordmark fallback, then hydration populated the src. If a...

Kamo·4mo ago
Fixkamolos

Kill fake-tenant defaults, render the actual org's branding only

Removes the Apex Mortgage demo I should never have added and the Kamo "default" fallback I replaced it with. Both were just papering over a missing-tenant condi...

Kamo·4mo ago
Featurekamolos

Demo lender auto-loads when no real tenant resolves

The reason "still not branded" — no real tenant org existed for the hostname being tested, so the SSR fetch returned null and every lender-facing surface fell t...

Kamo·4mo ago
Fixkamolos

Ship default logos so unbranded hosts render a real lockup

Ported ThemeLogo dropped the local-file fallback the kamo-internal original had, so any host whose tenant MinIO bucket hadn't been provisioned (or doesn't exist...

Kamo·4mo ago
Featurekamolos

Make the lender the primary brand, not an accent

Reframes the borrower-facing app from "Kamo product with lender accents" to "lender's product, Kamo as the engine." Every surface now leads with the lender's id...

Kamo·4mo ago
Featurekamolos

Deep org-theming integration across every borrower surface

Executes the full plan from the org-theming analysis: every CTA, glow, progress bar, focus ring, ambient orb, chat surface, header logo, and attribution line no...

Kamo·4mo ago
Featurekamolos

Make org branding loud — animated splash, ribbon, glow, footer

The subtle 1px accent ribbon and header logo weren't doing enough to celebrate the lender's brand. Now every hero surface delivers a real brand arrival moment. ...

Kamo·4mo ago
Featurekamolos

Port org-scheme theming from kamo-internal so borrower surfaces pick up lender branding

Ports the subdomain-driven org-theme system from kamo-internal into kamo-los, scoped down to what makes sense for an unauthenticated borrower-facing surface (no...

Kamo·4mo ago
Featurekamolos

Port public chat support from kamo-marketing, restyled for aurora theme

Brings the AI + live-support chat widget from kamo-marketing into the borrower-facing app, recoloured to the kamo-los aurora palette (surface-base / ink / auror...

Kamo·4mo ago
Fixkamolos

Preserve aspect ratio on sky atmospherics so clouds + sun + birds don't stretch on portrait

CloudsLayer, BirdsLayer and the sun/star portion of SkyLayer were using preserveAspectRatio="none" so on a tall portrait phone the SVG coordinate system stretch...

Kamo·4mo ago
Otherkamolos

feat(borrower-ux) backlog: blocked tasks, MUI date picker, memo widgets

1. Real blockedBy task semantics. Was: TaskHub knew about done/current/todo but the "locked" state was declared and never computed. Now: tasks declare blo...

Kamo·4mo ago
Otherkamolos

feat(borrower-ux) sprint 4: a11y + post-submission + fee transparency + i18n keys

1. Accessibility: - StatusBanner gets role=status + aria-live, an inline icon (so success/warn isn't conveyed by colour alone), and a contrast bump ...

Kamo·4mo ago
Otherkamolos

feat(borrower-ux) sprint 3: honest persona, intl identity, real consent, error taxonomy

1. Personality picker reframed honestly. Was "Pick your guide" — looked like the borrower was choosing their loan officer. Now reads "Choose a voice for o...

Kamo·4mo ago
Otherkamolos

feat(borrower-ux) sprint 2: nav + autosave + intl address + resume recovery

1. BorrowerHeader: slim sticky header on every post-application surface (apply/*, waypoints/*, workspace/*). Logo / back-to-workspace on the left, page ti...

Kamo·4mo ago
Otherkamolos

feat(borrower-ux) sprint 1: trust + safety baseline

Four highest-priority items from the borrower-UX audit: 1. Gate every stub integration behind **************** When the flag is off (e.g. real deployments),...

Kamo·4mo ago
May 17, 2026
Fixkamolos

Mobile portrait tuning for hero illustration + chrome

On a portrait phone the 100x60 viewBox of every layer was being stretched into a tall narrow rectangle, which made the home and foreground look squashed and wei...

Kamo·4mo ago
Fixkamolos

Illustration wrapper had no height — every layer rendered into a 0px strip

The JourneyIllustration root div was `relative overflow-hidden` with no explicit dimensions. Its parent was sized via absolute inset-0, but the relative child o...

Kamo·4mo ago
Featurekamolos

Layered scene with parallax, ambient motion, real atmosphere

The first cut shipped a tiny static SVG behind an aggressive vignette, so EMPTY_LOT looked like a blank screen. Replace it with a real layered scene that actual...

Kamo·4mo ago
Featurekamolos

Replace 3D world with 2D illustrated journey

Kill the procedural three.js scene end-to-end and rebuild the borrower's visual journey as a flat, accessible, mobile-friendly module that ships with full SSR s...

Kamo·4mo ago
Featurekamolos

Infinite ground tiers + horizon depth + proper lawn signs

Ground — no more cube - SkyDome: 420 m back-side sphere coloured to the active TOD horizon, sits behind drei <Sky> so any seam at the camera corners is filled...

Kamo·4mo ago
Fixkamolos

Sky no longer washes to white — golden-hour default + tuned sky shader

Sky was reading white because: - toneMappingExposure 1.05 + Bloom@0.45 with luminanceThreshold 0.72 was blowing the bright procedural sky into the bloom buffe...

Kamo·4mo ago
Featurekamolos

Cinematic 3D pass — postprocessing, materials, geometry, motion, weather

The 7-day analysis from the chat, executed: Day 1 — Foundations: - @react-three/postprocessing added: EffectComposer with SMAA, N8AO (ambient occlusion), Blo...

Kamo·4mo ago
Featurekamolos

Real 3D environment + neighbourhood scenery + bolder home CTAs

3D scene was generic procedural boxes on a flat plane. Brought it up to a believable neighbourhood: - WorldScene: add drei <Environment preset="sunset"> for im...

Kamo·4mo ago
Featurekamolos

3D cinematic journey + 10 personalities + persona homes

Major UI overhaul to lean into the existing 3D world rather than overlaying 2D chrome on top of it. - Rewrite Home with animated wall lerps, swinging front doo...

Kamo·4mo ago
May 16, 2026
Refactorkamolos

Clean up the session — bug fixes, dedupe, dead-code

Three-agent review surfaced real problems and copy-paste — addressing them: Bug fixes: - useEnsurePrimaryBorrower returned dead state (primaryUid, creating) an...

Kamo·4mo ago
Refactorkamolos

Retire the URLA wizard — waypoints now own the borrower journey end-to-end

Wires each connect-first waypoint to write through the existing /api/security/mortgage-apps/* endpoints, then redirects /apply/<section> to its matching /waypoi...

Kamo·4mo ago
Featurekamolos

12 remaining waypoint sheets + 8 ceremony scene impls

Phase C foundation — every waypoint and ceremony slug in the spec now has a real, statically-prerendered surface. Stub adapters back the connect-first flows; UR...

Kamo·4mo ago
Featurekamolos

M3a foundation — connections client, hooks, 2 hero waypoint sheets

Front-end half of the M3a connect-first foundation that the shared-lib Connection + VerifiedFact backend just landed. - lib/los/connections-client.ts — typed c...

Kamo·4mo ago
Featurekamolos

Frame the legacy URLA wizard inside JourneyShell

Phase A of the borrower-journey hand-off: the 3D world stays in view while the borrower works through every section. On wide viewports (≥xl) the world fills a s...

Kamo·4mo ago
Featurekamolos

World becomes homepage — / serves the 3D scene, /start is the conversational porch, /journey paths flattened to /persona /waypoints/[id] /ceremonies/[id]

Borrower lands directly in the new experience on the public URL instead of the legacy conversational landing. Homepage CTA flips between 'Start your application...

Kamo·4mo ago
Fixkamolos

Post-porch borrower lands in the 3D world (/journey/persona then /journey), not the legacy MUI wizard

Reward gate + auto-resume now route to /journey/persona?app=<uid>, persona pick lands in /journey?app=...&persona=..., and a persistent 'Continue your applicati...

Kamo·4mo ago
Fixkamolos

Welcome-back gate must only trigger for true returning visitors

Brand-new visitors were hitting the welcome-back gate the moment they entered their name, because hasPriorProgress was recomputed from current state on every re...

Kamo·4mo ago
Fixkamolos

Default flow + remove isDone-only auto-advance to estimate

The real bug behind users landing on the estimate-reveal screen even after "Start over": the flow engine returns DONE when state.flow is null (no flow chosen → ...

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