Skip to content
KAMOUniverse

Changelog

What's new.

Every improvement to the platform, as it ships.

  1. · kamo-internal

    ReverseSummaryCard

  2. · kamo-internal

    Purpose-scoped field visibility + preserve-not-destroy clear chips

  3. · kamo-internal

    Editable **************** + onDraftChange bridge

  4. · kamo-internal

    Preview org photos in "Organization" mode; 24MB uploads

    - Stage now previews the org's theme photos (config.json backgroundImageCount -> img/bg, like OrgSlideshowLayer) when Source = Organization; the filmstrip (which curates the member's OWN sequence) hides in org mode. - Source toggle no longer disabled when the member has zero own photos (was items.length===0) — only when read-only — so you can switch to/from org photos and see them preview. - Double the client upload size limit (12 -> 24 MB). Server-side (separate SecurityService commit): uploads no longer fail when ConversionService is down/native-crashes — falls back to the original image.

  5. · kamo-internal

    CountUp + Meter animated primitives

  6. · kamo-internal

    Reverse-aware insights + AI facts

  7. · kamo-internal

    Add HECM row to eligibility

  8. · kamo-internal

    Add reverse (HECM) estimate model

  9. · kamo-internal

    Add deriveRelevance purpose-flags engine

  10. · kamo-internal

    Map 6 new lead fields into ScenarioInput

  11. · kamo-internal

    Background watermark on available/history/credits, centered on content card

    Adds <BackgroundWatermark> to the shared LeadsCreditLayout content card (behind the table/list, above it via z-index) so /leads/available, /leads/history, and /leads/credits show the org watermark centered on the main content area — not the whole page, and independent of the Quick Tips sidebar. Honors the org Background Watermark setting.

  12. · kamo-shared-library

    Add 6 persisted mortgage fields (debts, taxes, insurance, HOA, current payment, borrower age)

  13. · kamo-internal

    Org Background Watermark setting (None/Full/Simple)

    Adds a "Background Watermark" radio field to Settings > Essential > behavior-labeling > Branding that controls which logo (or none) renders as the faint background watermark across the app. - Delivered via OrgContext (Organization.bgWatermark); null resolves to FULL. DTO schema + Organization.fromJSON carry the field through. - New shared <BackgroundWatermark> component + resolver centralize the previously copy-pasted watermark markup, now driven by the setting. - Rolled out to /account (x2), documents, messages empty-states (x2), /tasks, /calendar, and NEW on /leads; Backdrop and error/404 pages honor the setting too. - LabelManager persists via PUT /api/security/org/{id}, busts the org session cache, and router.refresh()es so the change reflects live. Requires shared-lib Organization.bgWatermark (KI-applied column) and a SecurityService redeploy to read/write the field.

  14. · kamo-shared-library

    Add bgWatermark branding field to Organization

    Nullable String column (NONE|FULL|SIMPLE) driving the per-org background logo watermark preference; null resolves to FULL on the client. Merged in patchOrganization via the existing touchedKeys chain, so the generic PUT /api/security/org/{id} persists it. No version bump.

  15. · SecurityService

    Closing-forecast read passthrough (operator-gated, org from session)

  16. · kamo-internal

    Add "My Wallpapers" shortcut next to the background switch

    The dedicated wallpaper editor was reachable from My Account but not from the home page. Adds a frosted "My Wallpapers" pill to the left of the top-right BackgroundToggle, linking to **************** member id}. Gated on MANAGE_OWN_BACKGROUND_IMAGES (or god); the label collapses to icon-only on xs.

  17. · kamo-shared-library

    **************** (P(fund) sweep set)

  18. · kamo-internal

    Recompute P(fund) action on the Capital & Risk console

    Steward button rebuilds the pipeline-funding projections from the live pipeline (POST passthrough, org from session) then reloads the fan/KPIs. Gives the flagship its producer.

  19. · SecurityService

    Steward passthrough to recompute pipeline-funding P(fund) projections

    POST **************** → MlosCapitalMarketsClient (X-Internal-Auth, org stamped from session) → MLOSCapitalMarketsService recompute. Operator-gated like the other capital-markets reads.

  20. · kamo-shared-library

    **************** (active-pipeline query for P(fund))

  21. · kamo-internal

    Dedicated full-width wallpaper editor page

    Adds **************** — a full-bleed, inline (no-popup) wallpaper editor, and moves all upload/gallery curation off the My Account tab. - New "cinematic Stage": the member's real crossfading slideshow plays live (WYSIWYG, production scrim), with a countdown ring + scrubber filmstrip + card sequence badges all driven by one useSlideshowClock so they never desync; violet is reserved for what is on air. - Media chrome: Source (Organization vs My own) + This-device (Plain vs Slideshow) — the latter drives the same per-device useBackgroundMode switch as the home page (now also synced cross-tab via the storage event). - Inline drag-and-drop upload with a real XHR-progress tray; @dnd-kit reorderable gallery with per-card on-air toggle, sequence badge and inline 2-step delete; empty/loading/read-only states. Reduced-motion honored. - MyAccountTab: removed the inline **************** kept the org-vs-own switch and added a "My Wallpapers" link to its left. - Gated on member-background rights (own vs others / god / org-owner); self can always view (read-only if they lack MANAGE_OWN). i18n: adds settings.member.wallpaper.* (also committed to the dictionary repo). Verified: tsc --noEmit clean + full next build; adversarial-review fixes applied.

  22. · kamo-internal

    On-demand LIGHT-tier AI summary on the Scenario Workspace Insights card

    'AI summary' button posts the factual scenario to **************** → the org's configured provider. Graceful: no provider → deterministic rule-based insights stand alone.

  23. · SecurityService

    Scenario-insights endpoint — LIGHT-tier AI narrative via the org's provider

    POST **************** takes a factual (estimated) scenario summary, calls MlosAiClient.text(orgId, prompt, LIGHT) through the org's configured AI provider, returns {narrative} (null when no provider — the Scenario Workspace keeps its deterministic insights). Server owns the prompt; AI only augments, never decides. First MLOS consumer of the tiered AI client.

  24. · kamo-internal

    Lead Scenario Workspace — LO pre-qualification workbench on the mortgage lead

    Right-side panel on /leads/view for mortgage leads: 14 modular tools (Summary, Eligibility, Payment, DTI, Affordability, Down-Payment/Rate comparison, Cash-to-Close, Borrowing Power, Refi, Equity, Missing Info, Insights) + a multi-scenario Sandbox for side-by-side what-ifs. Pure, decoupled calc lib in app/lib/mortgage/* (reusable by the Application later); all outputs are estimates and never write the lead.

  25. · AIService

    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; textComplete runs a one-shot completion through the org's own configured provider. X-Internal-Auth, orgId in body. Lets MLOS run text at the cheapest tier.

  26. · kamo-shared-library

    MlosAiClient — the sanctioned tiered AI entrypoint for MLOS

    Best-effort text()/vision() at a cost tier through the org's configured provider (AIService internal endpoints). Returns Optional.empty on no-provider/error so deterministic MLOS decisions degrade to the steward, never block on the AI assist. Under com.kamo.z.shared.mlos.ai (already component-scanned by MLOS svcs).

  27. · kamo-internal

    Surface borrower-stated financials on the lead mortgage panel

    Adds a 'Borrower-stated financials' subsection (estimated income/credit, purchase price, down payment, refi balance/cash-out) to /leads/view mortgage details, labeled as pre-1003 estimates vs confirmed loan data.

  28. · SecurityService

    Persist borrower-stated financials + phone onto the mortgage lead

    ClaimedFactsDTO gains purchasePrice, downPayment, currentLoanBalance, cashOutAmount and phone; PortalLeadService.applyFacts maps them onto LeadClaimMortgage / the lead's personal phone.

  29. · kamo-shared-library

    Mortgage lead carries borrower-stated financials (income, credit, purchase price, down payment, refi balance/cash-out)

    Surfaces the existing **************** and adds four stated columns to LeadClaimMortgage; wires DTOs (read/update/create), the history field registry, and LeadService create+update. These are CLAIMED/ESTIMATED borrower facts (firewalled from the verified URLA), giving the loan officer a rich pre-1003 picture from the borrower portal.

  30. · SecurityService

    Process member uploads like org bg + gate by new rights

    - New ImageResizeClient runs member background uploads through the SAME post-processing as org backgrounds (POST **************** and stores the result as .webp. - ThemeBackgroundController: authorize all five endpoints by the new rights — MANAGE_OWN_BACKGROUND_IMAGES for your own member, **************** for another member (a superset; god-mode bypasses). Reads resolve the target member's user so admins can list/serve others' images; uploads store under the target member's user. - New GET /theme-backgrounds/active returns the session member's own slideshow image URLs (empty => org fallback) for the global background layer. Rights auto-seed on boot via RoleRightsSyncService (needs the new shared-lib, which the CI clones). No KamoInitializer run required.

Your universe is waiting.

Start free in minutes. Add products whenever you are ready — no migration, no new logins.

Free forever — no credit card required