Перейти к содержимому
KAMOUniverse

Журнал изменений

Что нового.

Каждое усовершенствование платформы, как только она появится.

  1. · SecurityService

    Эмитировать бренд кредитора + поля раскрытия информации в per-org config.json

    Два изменения, которые заканчивают конвейер брендинга, ориентированный на заемщика,: 1. OrganizationController получает публичный GET/api/security/org/domain/{host} Конечная точка. Решает орг по точному совпадению OrgDomain, а затем возвращается после Удаление самого глубокого псевдонима хоста (apply.lender.com → lender.com) Таким образом, SSR-орг Камолоса получает запись кредитора на первой краске. 404, когда ни одна организация не владеет каким-либо соответствующим доменом. 2. ******************* Переписывается, чтобы издать: - Оригинальные ключи (siteName, siteNameShort, backgroundImageCount, logoFullExt, themeRevision, description) — неизмененная форма. Полная цветовая палитра: ColorPri, ColorPriLight, ColorPriLightest, ColorSec, ColorSecLight, ColorSecLightest. Раньше цвета только приземлился в per-org globals.css; Камо-лос ожидает их config.json, так что DynamicMetaLoader может писать --org-* CSS vars раньше Ищите любой стиль. - Новые области Организации (tagline, nmlsId, phoneSupport, emailSupport, equalHousingDisclosure, onPrimaryText, gradientDirection, yearEst. Поддержка падает обратно на org.phoneTollFree.number, если нет Явно установленные — большинство организаций используют одну и ту же линию для обоих. Старая струнная сборкаConfigJson(...) сигнатура сохранена в виде бэк-компата Упаковка так что ни один существующий сайт вызова не прерывается. JSON построен с помощью небольшого помощника StringBuilder. для \, \n, \r, \t и управляющих; значения все еще исходят из Контролируемый источник (столбцы DB), но пропуск означает, что кредитор Вклеенный слоган с цитатами не повредит файл. Составляется в чистом виде по сравнению с обновленной организацией совместной библиотеки.

  2. · kamo-shared-library

    Добавить бренд, ориентированный на заемщиков + поля раскрытия информации в Организацию

    Семь новых нулевых столбцов, питающих фирменные поверхности кредитора Приложение для заемщиков Камолоса: - TAGLINE - маркетинговая линия, показанная на фирменном брызге + футере NMLS ID - идентификатор доступа потребителей NMLS - PHONE SUPPORT - телефон поддержки, ориентированный на заемщика (возврат к phone toll free) - EMAIL SUPPORT - электронная почта для поддержки заемщиков - EQUAL HOUSING DISCLOSURE - 'EHO' | 'EHL' | 'BOTH' (NULL = EHO default) - ON PRIMARY TEXT - явный передний край над основным наполнением бренда (Преодолевает автовыбор яркости Камо-лоса) - GRADIENT DIRECTION - "линейный-135" | "линейный-90" | "радиальный" | "конический" Все семь читаются службой безопасности OrgThemeProvisionService в per-org MinIO config.json, затем потребляемый DynamicMetaLoader Камолоса, LenderFooter, HelpSheet и HeroBrandIntro. Немаркированные организации возвращаются к Нейтральные камо-лос по умолчанию на UI-слое. Соответствие DDL происходит в KamoInitializerService (OrgBrandingFieldsMigration).

  3. · kamolos

    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 now picks up the lender's brand colours when an org record is provisioned, while status colours, Kamo brand assets, and borrower-personal colours stay product-canonical. Foundations: - Server-rendered <style> tag **************** bakes the org's --org-* CSS vars into :root before first paint, killing the default-aurora → tenant-colour flash. - WCAG luminance helper (lib/org/luminance.ts) computes --org-on-primary from the brand colour so text on the primary fill stays AA-readable even with pale or busy lender brands. Lenders can override via the new onPrimaryText field on Organization. - New --org-* vars: --org-on-primary, --org-gradient, --org-primary-rgb, --org-secondary-rgb. Tailwind v4 @theme block adds bg-org-primary / text-org-primary / ring-org-primary / border-org-primary / text-org-on-primary / bg-org-gradient utilities that resolve to those vars at render-time. Opacity modifiers work via color-mix. - DynamicMetaLoader recomputes the same values on mount and supports a ?themeOverride.* query-string escape hatch for QA / support previews. - <link rel="preload" as="image"> for the lender logo in the SSR head. Organization DTO expansion: - tagline, nmlsId, phoneSupport, emailSupport, equalHousingDisclosure ('EHO' | 'EHL' | 'BOTH'), onPrimaryText, gradientDirection. - LenderFooter renders NMLS Consumer Access link + EHO/EHL mark. - HelpSheet uses lender phone/email when set, falls back to Kamo defaults otherwise. - HeroBrandIntro shows the lender tagline. - /apply/done timeline + "Call us instead" CTA use lender contact. Surface swap (35 files): - Every bg-aurora CTA across landing / start / personality / resume / apply/done / ceremonies / 15 waypoint pages / workspace widgets / conversation flows / chat send buttons → bg-org-gradient text-org-on-primary. - bg-aurora/N opacity variants → bg-org-primary/N. - text-aurora → text-org-primary, border-aurora → border-org-primary, ring-aurora/N → ring-org-primary/N. - Hardcoded #7B61FF and #21D4A6 hex literals in chat / TRex bubbles / ChoiceGrid / MoneyDial / EstimateReveal / CelebrationStage / ProgressArc / DocumentUploadZone / ConversationTextField swapped to rgba(var(--org-primary-rgb), N) / rgba(var(--org-secondary-rgb), N). - PulseGlow defaults to rgba(var(--org-primary-rgb), 0.55) so every pulse on the app picks up tenant brand without per-call-site work. Explicit color overrides at the 3 prior call sites removed so the default flows through. - AmbientField orbs: first two pulled from --org-primary / --org-secondary via color-mix; third stays a dusky violet for chromatic contrast. - TaskHub current-task pill + TaskStepper progress bar already on the org gradient via the swap pass. - Form focus rings (focus:ring-aurora/40) flipped to focus:ring-org-primary/40. Logo + ThemeLogo: - Walks a fallback chain: logo-full-on-dark.{ext} → logo-full.{ext} → logo-on-dark.svg → logo.svg → wordmark fallback prop. On each 404 the next candidate loads; only when the chain is exhausted does the fallback render. Tenant simulator: - /styleguide gains a TenantSimulator component with six representative presets (corporate navy, warm orange, conservative grey, electric green, rose, midnight). Clicking a preset writes ?themeOverride.* params and reloads so the whole app re-skins live — lets designers and engineers verify any surface under any lender brand without standing up real bucket configs. Surfaces deliberately NOT themed (stay product-canonical): - StatusBanner success/warn (universal status signals) - TestModeBanner (safety signal) - AutosaveBadge teal/amber - Persona picker accent colours (borrower's choice, not lender's) - Rex avatar (Kamo mascot) - Time-of-day sky tints (journey narrative) - Personality accent colours (chat voice = borrower's pick) - Confetti palette (intentionally multi-colour for celebration) - Skip-to-content focus link (brand-neutral by design) Build 32/32, 140 tests pass.

  4. · kamolos

    Сделайте брендинг Org громким — анимированный всплеск, лента, свечение, футер

    Тонкая лента акцента 1px и логотип заголовка не делали достаточно, чтобы Отпразднуйте бренд кредитора. Теперь каждая поверхность героя доставляет настоящий момент прибытия бренда. - Контекст OrgProvider: результат SSR org fetch теперь пройден Реагируйте на контекст (lib/org/OrgContext.tsx), чтобы клиентские компоненты могли читать Заголовок, заголовок, год и т.д. без перенабора. HeroBrandIntro: однозарядный полноэкранный брызг бренда, который горит на экране Первое посещение поверхности героя в данной сессии. конический гало в первичных и вторичных цветах, кольцо из 16 частиц, спиралевидное Внешне логотип кредитора (или запас слов) сосредоточен в стакане Карта с надписью «Добро пожаловать — давайте доставим вас домой» Подзаголовок: "Нажмите где угодно, чтобы пропустить" намек. Автоотказ после 2.4. Уважение предпочитает-сокращенное-движение (полностью пропущено). BorrowerHeader: лента теперь 2px и анимированная — градиентные сковороды Org-primary → org-secondary → org-primary на медленном цикле 8s Keyframe @kamo-org-ribbon. Логотип получает вход в кадр (fade + slide), шкала наведения, сжатие крана и мягкий -org-primary теневое свечение, которое следует за цветом бренда. - Прогресс-бар JourneyCrest: был сплошной bg-aurora, теперь использует тот же Org-primary → org-secondary Panning Gradient в виде ленты заголовка с мягким свечением. Каждый шаг заемщика освещается в Цвета кредитора. LenderFooter: постоянная атрибуция в нижней части поверхностей героев «Powered by <Lender> · since <year>» с небольшим оттенком точка и знак равных жилищных возможностей. Отклонения в 1.2 задерживаются Он приземляется после того, как кластер CTA обосновался. Уважение к пониженному движению. Все анимации чести предпочитают-сокращенное-движение. Строительство 32/32 маршрутов, 140 Тесты проходят.

  5. · kamolos

    Портовая орг-схема тематика от камо-внутренней, поэтому поверхности заемщика подбирают брендинг кредитора

    Порты поддомен-управляемая система орг-темы из Камо-внутренней в Камо-лос, ограниченный тем, что имеет смысл для неаутентифицированного Поверхность, обращенная к заемщику (без пользовательского интерфейса администратора, без мультиарендатора) переключение, отсутствие переопределения силового режима света, так как камо-лос темный Дизайн. Как это работает: - lib/org/theme.ts mirrors kamo-internal's Theme.tsx - getThemePath / buildThemeBaseForFqdn/orgFqdnFromHostname/KAMO THEME CONFIG LOADED. Бросает самый глубокий псевдоним из имени хоста, поэтому заемщик application.lender.com решает оргировать FQDN lender.com → Кредитор-ком → База Минио **************** - lib/org/fetchOrganization.ts делает поиск в SSR **************************************************************************************************************************************************************************************************************************************************************************** необязательно KAMOLOS SERVICE ACCOUNT *** for auth. Используется корнем макет генерирует Metadata() для сеяния заголовка HTML + описания из Запись банка перед страницей даже гидратирует. ********************** Бежит на гору, берёт <theme>/json/config.json: 1. set document.title / apple-mobile-web-app-title / description 2. caches themeRevision + logoFullExt to sessionStorage для кэш-памяти Исполнитель: ThemeLogo 3. впрыскивает фавиконы (96px, svg, ico, apple-touch, манифест) 4. отображает шесть цветовых слотов организации на -org-* CSS var Пространство имен в :root (не цвет-*, поэтому хром полярного сияния остается) Canonical across orgs и только акцентные точки opt-in 5. отправляет KAMO THEME CONFIG LOADED так логотип + акцент потребителей освежить Пропуск камо-внутреннего силового режима <style> - камо-лос Намеренно темно. - компоненты/тема/ThemeLogo.tsx отображает логотип организации от MinIO Сохранение соотношения сторон, максимальная ширина / высота колпачков и запасной вариант Реквизит для тех случаев, когда организация еще не обеспечена (так что сломанное изображение никогда не отображается). корабли). - globals.css получает -org-primary / -light / -lighter / -org-secondary / -light / -lighter слоты, по умолчанию для сияния палитра (#7B61FF/#21D4A6). - приложение/layout.tsx монтирует DynamicMetaLoader и использует генерациюMetadata начальное название от SSR org fetch. BorrowerHeader: марка левой стороны теперь <ThemeLogo Вариант = "logoFull" /> с откидным знаком "Kamo". 1px -орг-первичная акцентная лента расположена над заголовком, так что кредитор Цвет появляется на каждой поверхности после нанесения, не беспокоя Темная палитра поверхности. Построить 32/32, пройти 140 испытаний.

  6. · kamolos

    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 / aurora / ring-white) so it sits cleanly on the dark navy surfaces instead of the marketing site's forest-green. - lib/chat/proxyConfig.ts centralises PUBLIC_CHAT_API_BASE + PUBLIC_CHAT_API_KEY resolution. Env vars (PUBLIC_CHAT_API_KEY, API_SERVICE_URL, NEXT_PUBLIC_DOMAIN) wired through lib/env.ts. - 6 thin Next.js proxy routes under app/api/chat/* forward to APIService /api/public-chat/* with the standard X-Public-Chat-Key header and X-Session-Token where the route requires it. Translate endpoint preserved for incoming-agent-message translation. - **************** dynamically (ssr:false) loads PublicChatWidget. Mounted globally in app/layout.tsx so the launcher follows the borrower across every surface (landing, apply, waypoints, workspace, ceremonies). - PublicChatWidget pre-fills the visitor name from **************** when there's no saved localStorage value, so borrowers who typed their name in the conversational flow don't re-enter it in the chat header. - AiChatPanel and LiveSupportPanel keep the marketing site's mode separation (AI = HTTP request-reply, support = STOMP WebSocket with presence heartbeat + per-message translation queue) but use kamo-los tokens for surfaces, bubbles, inputs, and accents. - ***Provider keeps the Capcha PoW widget but recolours via CSS vars to the aurora purple. Falls back to capcha.<NEXT_PUBLIC_DOMAIN> when the host is localhost or an IP. - JourneyHero Rex sprite moved to bottom-LEFT on all breakpoints (was bottom-right on mobile) so the chat launcher in the bottom-right corner doesn't sit on top of him. - vendor/kamo-capcha-widget copied from the marketing site as a local file: dep. .gitignore updated to skip the transient vendor/**/node_modules npm creates during install. Build 32/32 routes (6 new chat endpoints), 140 tests pass.

  7. · kamolos

    Слоеная сцена с параллаксом, движением окружающей среды, реальной атмосферой

    Первый разрез отгрузил крошечный статический SVG за агрессивной виньеточкой. EMPTY LOT выглядит как чистый экран. Замените его реальной многоуровневой сценой Это действительно есть в каждом государстве. - Новый модуль lib/journey/scene/ с дискретными параллаксными слоями: небо (градиент + солнце-дуга + мерцающие звезды), дрейфующие облака с гладкими SVG-родная анимация, силуэт холмов + дальний горизонт с освещенным окна после заката, сам дом (состояние-знает от геодезической ленты к светофор), передний план (почтовый ящик с качающимся флагом, травой, покачиванием Цветы, деревья и дополнительный слой птиц. - EMPTY LOT теперь показывает геодезическую ленту, знак SITE и пустую партию контекст — больше нет пустого экрана в состоянии по умолчанию. Солнце дуг через небо по мере продвижения вперед; пульс окон тепло при освещении; дым дымохода поднимается при включении света; цветы качаются; Флаг почтового ящика скалы; отдаленные окна горизонта мерцают независимо. Параллакс указателя на JourneyHero: 6 слоев глубины переводят на разные - Рекс возвращается как спрайт с углом 56 пикселей на героя с нежным бобом. Виньетка героя теперь только верхняя / нижняя блекнет, никогда не темнеет Середина экрана, где живет иллюстрация. Персона акценты на верхней части готового фасада: флаг ветерана волны, в саду пенсионера цветы, в дуплексе инвестора числа и т.д. Каждый человек визуально различается в разных штатах. Постройте 28/28 маршрутов, проверьте чистоту, пройдите 140 тестов.

  8. · kamolos

    Замените 3D-мир 2D-иллюстрированным путешествием

    Убейте процедурную сцену Three.js и восстановите заёмщика. визуальное путешествие как плоский, доступный, удобный для мобильных устройств модуль, который поставляется с полной поддержкой SSR и точкой свопа для искусства более высокой точности позже. - lib/journey/берёт на себя: иллюстрированный герой / гребень / миниатюрные поверхности, Решитель актива с явной поддержкой, три индивидуальных дорожки путешествия (приобретение 8-го штата, переоборудование 5-го штата, строительство 8-го штата буквально), и параметризованный рендер SVG-заполнителя с ключом persona + state. Новый TaskHub на /workspace покрывает все 14 точек пути, сгруппированных по фазе Состояние do/current/todo. Inline TaskStepper в верхней части Каждая страница Waypoint для движения в потоке. Рекс бросает процедурное тело динозавра и становится плоским SVG. Аватар в пузырях чата и чип-путеводитель LO. - /apply/* теряет полуэкранную 3D-панель; получает тонкую иллюстрацию гребень вверху, поэтому форма заполняет видпорт на мобильном телефоне. - Drops @react-three/fiber, @react-three/drei, @react-three/postprocessing, Три, и @types/три из комплекта. KamovilleMinimap - Мир Магазин Zustand, камера, частицы дождя, церемониальная очередь и Вся процедурно-сценическая геометрия удалена. Постройте все 28 маршрутов, 24 тестовых файла / 140 тестов.

  9. · kamolos

    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 - FarTerrainDisc: 360 m plane with 80×80 segments, vertex displacement via blended sin/cos noise on a radial ramp — close ground stays flat, far ground gets gentle 2-3 m hills - MidNeighbourhood: 140 m grass ring with mild undulation, tints between the lot and the far terrain - DistantNeighbours: 14 procedural box+roof houses placed in a ring at 60-95 m, with deterministic colour/yaw variation and occasional emissive windows; reads as a real suburb - HorizonHills: 96-segment bumpy ring at radius 145 m, coloured to fog so it fades into the sky band — gives the world vertical containment - Road + sidewalk extended from 40 m to 240 m so they converge into fog - Lane dashes auto-spread along the longer road (every 4 m) Fog now ramps [32, 160] (was [18, 90]), matched to the TOD-driven horizon colour so the disc rim, hills, and neighbour silhouettes all dissolve into the sky without a visible boundary. Signs — full rewrite with real-estate anatomy - Double-rail posts (two 0.07 m posts on either side of the plaque, with spike-into-ground bottoms and gold finial ball caps) - Frame trim wrapping a white plaque body, both faces materialised - Coloured header band per program; band emits subtly so it pops - Mounting brackets where plaque meets posts - Per-program palette: CONV indigo, FHA green, VA red, USDA ochre, JUMBO aurora, DSCR steel, HELOC teal, REVERSE plum, CONSTRUCTION yellow, RENOVATION amber, ITIN magenta, BRIDGE orange, plus an aurora default - Winner now meaningfully dramatised: - taller posts, larger plaque, larger text - spotLight pinned overhead in the program's accent colour - rider topper plaque with "BEST FIT" text, gently bobbing - accent-tinted ring halo on the ground - All text uses drei <Billboard> so it stays legible from any camera angle, with outline pass for contrast against any band colour - Layout: winner forward and centre, supporters in a 1.4-rad fan behind, no more clustered overlap with the driveway - castShadow + receiveShadow on every sign component so they look planted

  10. · kamolos

    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), Bloom (window glow), ACES Filmic ToneMapping, Vignette - gl tone mapping = ACESFilmic, output color space = sRGB, exposure 1.05 - AdaptiveDpr + AdaptiveEvents — drops resolution while interacting - New useTimeOfDay hook drives Environment preset, Sky inclination/rayleigh, Stars (at night), background, fog, ambient/hemi/sun/fill color, cloud color from useWorldStore.dayNightProgress - AccumulativeShadows + RandomizedLight replace the flat ContactShadows Day 2 — Procedural PBR-style materials (zero asset files, generated at runtime via canvas): - grass: mottled green base + 1200 grass-blade strokes - asphalt: dark gray with pepper aggregate - concrete: light gray with expansion joints + grain - vinyl siding: tinted base + lap lines + faux bevels + grain - shingles: staggered rectangle pattern with per-row colour variance + bevels - wood: planks with vertical grooves + grain + knots - bark: vertical stroke pattern - brick: staggered rows with per-brick colour variance and mortar gaps Applied to walls (siding or brick per persona), roof, ground, road, sidewalk, fence, tree trunks. Day 3 — Geometry refinement in Home: - Stepped foundation (two layers, slightly recessed top slab) - Gable roof (two slanted shingle planes + triangular gable end walls, custom bufferGeometry) replacing flat cones for most personas - Hipped roof variant for RETIREE / EXISTING - Eave overhang of 0.45 m on all roofs - Window assemblies: 4 trim sides + mullion cross + emissive pane - Door assembly: trim, recessed backing, hinged panel with 3 raised recess insets, escutcheon plate, golden knob, doormat - Two-story personas (DUPLEX, EXISTING) get a trim band + a second-floor window row - Garage with panelled door + own hipped roof - Home-office wing for SELF_EMPLOYED - Construction scaffolding for BUILDING - Porch deck + step + posts + slim roof on tall houses - Chimney smoke replaced with 6 alpha-card billboards drifting up and fading - Wreath + passport-stamp door details Day 4 — Motion: - CameraRig: settle-timer + Ken-Burns idle orbit + triggerCameraShake() impulse function (used on closing stamp + submit ceremony) - Trees: wind sway on canopy (per-instance phase, gentle elliptical rotation + subtle bob) - Birds (new component): 3 stylised birds orbiting on lazy ellipses with flapping wing planes (Z-axis rotation) and body pitch sway Day 5 — Interactivity: drei Html label floating above with accent glow, hover sound tick, click sound + haptic + router.push to the linked waypoint - Wired to: front door (-> /waypoints/front-door), mailbox (-> /waypoints/mailbox-econsent), workshop crate (-> /waypoints/bank-vault), lawn signs (-> /waypoints/lawn-signs-detail) Day 6 — Per-persona depth (new PersonaProps component): - 6 distinct car models in the driveway: starter sedan (FIRST_TIME), white work van (SELF_EMPLOYED), forest pickup (VETERAN + BUILDING), black luxury (INVESTOR + ALREADY_OWN), red sedan (NEWCOMER), gray classic (RETIREE) — all with bodies, windows, wheels, head/tail lights - RETIREE_EQUITY: birdbath, rocking chair, garden gnome - NEWCOMER_ITIN: paired lanterns flanking the door with emissive flames + point lights - ALREADY_OWN_CASH: ivy planters, "paid in full" sign in window - BUILDING: rotating crane (cabin yaws slowly), lumber stack, port-a-john - VETERAN: 4 trimmed hedges across the front + brass service plaque - INVESTOR: second mailbox in blue + "For Rent" yard sign - FIRST_TIME: emissive teal "SOLD!" sign in the front lawn - SELF_EMPLOYED: a small coffee cup on the porch Day 7 — Weather: - New Weather3D component bound to useWorldStore.weather - RAIN: 1200-point GPU rain particle field falling at 28 m/s, additive blending, plus a slick metallic overlay on the road for wet reflection - LightningFlash: directional flash bursts every 12-25s during RAIN - OVERCAST / RAIN modes ramp turbidity in <Sky> and add 2 extra darker Cloud volumes Bonus perf: - Fence posts + road lane dashes are now Instances (one geometry instead of 50+ meshes) - Birds reuse a small mesh, body materials kept under the bloom threshold

  11. · kamolos

    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 image-based lighting so PBR materials actually look lit, drei <Sky> for procedural atmosphere with proper sun position + Rayleigh scatter, drei <ContactShadows> for soft ground contact under the house, drei <Clouds> with 3 volumetric layers. - New 4-light rig: bright key sun + cool fill from opposite side + hemisphere for sky/ground bounce + ambient. Adds fog for atmospheric depth. Lot rewritten: - Far grass + lot grass tiers - Sidewalk strip running across the front - Asphalt road with painted lane dashes - Driveway from house to the road - Picket fence around the perimeter with horizontal rails + a gap at the front - 5 trees with multi-sphere canopies Home page (/) made obviously different from the pre-change version: - Hero headline overlay top-left ("Welcome home. Let's build it.") with aurora-clip gradient + Kamoville eyebrow pill - CTA cluster bottom-centre is now a backdrop-blurred raised panel holding both "Start your application" (with arrow) and "Pick your guide" with the selected guide's accent ring - Top-centre guide chip with the active guide's avatar, accent glow, name, and tagline — links to /personality LoAvatarChip now opens /personality and shows the selected guide's avatar + first name + accent glow, instead of the dead "your loan officer" pill.

  12. · kamolos

    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 door, lit-window cascade, chimney sparkles, per-state spark bursts. - Add 8 persona-specific home styles (duplex with two doors, home-office wing + garage, flagpole, welcome wreath + passport stamp, mature garden trim, always-built EXISTING, scaffolded BARE_LOT_ACTIVE_BUILD). - Add Rex3D character that walks alongside the active camera target with a walk-cycle bob and yaw toward the destination. - Add 3D Mailbox with a flag that flips when the camera dollies to it; add WorkshopCrate that grows with HomeState; add TenantPassby for INVESTOR. - Add RouteCameraDriver that maps each waypoint route to a CameraTarget and drives pointCamera() on navigation. - Add SubmitPapers ceremony: 7 paper meshes fly in parabolic arcs from porch to mailbox when ReviewingPorch submits, with camera dolly to MAILBOX and Sparkles burst on landing. - Add door override in worldState so ClosingDesk swings the 3D door open on signing, with key/chime sounds. New animation primitives (components/motion): - SoundChannel + SoundToggle: Web Audio synthesized voices (tick, chime, drumroll, whoosh, clack, stamp, lock, sparkle, jingle, door, error) with persisted mute, prefers-reduced-motion respected. - ConfettiBurst: canvas particle system with imperative fire() handle. - NumberTicker: reusable count-up for currency/rate/integer/score. - ScoreDial: banded gauge with sweeping needle for credit/DTI/LTV. - ProgressArc + JourneyProgress + JourneyProgressLive: 14-stop journey ring pinned top-left, syncs to backend section completion. - KamovilleMinimap: persistent top-down SVG map with a pulsing borrower dot that springs to the active camera target. - PulseGlow, SuccessCheck, SignatureCanvas (stroke-replayed signing), CelebrationStage (orchestrates confetti + sound + haptics), haptics helper. Hero moments rebuilt: - EstimateReveal: cinematic with embedded 3D EstimateCrest (camera dollies OVERVIEW -> DRIVEWAY -> FRONT_DOOR, home advances to LIGHTS_ON, drei Sparkles fire on reveal). NumberTicker for payment + rate. Lock-in clack. - CreditLedger: drumroll on pull, ScoreDial sweep on result, NumberTicker for trade lines + negative items, medium CelebrationStage. - ClosingDesk: SignatureCanvas with stroke replay, notary stamp slam, 3D door swing via doorOverride, epic CelebrationStage on complete. - ReviewingPorch: paper-liftoff overlay + 3D SubmitPapers ceremony + camera dolly to mailbox + epic celebration on success. WaypointSheet themed per location (vault doors split, mailbox flag flip, lawn-sign stakes rise, porch glow), with entrance sound per theme. Wired to all 14 waypoint pages. ChoiceGrid: spring scale, hover tick, selected gradient wash. MoneyDial: spring-tracked aurora-gradient fill, per-step ticks + haptics, number scales with value, glow halo intensifies with position. ConversationTextField: focus glow, shake-on-error, SuccessCheck on submit. DocumentUploadZone: drag-zone bob, success checkmark, filing-cabinet stack of completed uploads. Personality system rebuilt with 10 distinct guides: - Thomas "T-Rex" Rex (warm-pragmatic), Maya Park (crisp-professional), Sunny Halverson (playful-bright), Walter Hayes (dry-mentor), Carmen Ortiz (gentle-coach), Devon Chase (sharp-strategist), Eleanor Whitfield (concierge-formal), Theo Banks (optimist-enthusiast), Sgt. Kowalski (veteran-direct), Bea Calhoun (storyteller-folksy). - Each has gradient-initial SVG avatar, accent color, tagline, and 16-intent copy bank rewritten in voice. - New /personality picker page with sample dialogue and accent glow. - Resolver supports selection + localStorage persistence. TRexBubble: mood prop **************** with bobbing animation and mood-tinted glow ring. Home page (/): new "Pick your guide" CTA + top-centre current-guide chip linking to /personality; minimap + HomeStateChimes pulled into WorldShell.

  13. · kamolos

    12 оставшихся путевых листов + 8 сцены церемонии

    Фаза C — каждая точка пути и церемониальный слизняк в спецификации теперь имеет Реальная, статически обработанная поверхность. Адаптеры Stub возвращают Connect-First URLA-записи будут меняться в per-vendor по мере выпуска их реальных адаптеров. Листы Waypoint (12 новых): - карты недвижимости (заглушка данных о собственности) - bank-vault (asset connect stub) - загрузка банковских выписок (сборщик файлов, участок трубопровода OCR M3d) - кредитная книга (soft credit pull stub) - рео-карусель (REO list w/inline add) - декларация-стойка (10 да/нет переключателей) - hmda-pavilion (этническая принадлежность/раса/секс в/декодер вариант) - ло-деск-военный (ветеранское отделение + даты + плата ВА) - таблички-подписи-подробности (каталог программ + запись выбранной программы) - обзор крыльца (перечень прогресса + представить через UseSubmitApplication) - закрывающий стол (конверт с заглушками) - mailbox-econsent (4 переключателя согласия) Церемония (8 новых + Церемония примитивная): - Компонент общей церемонии: градиентный фон + временные диалоги + framer-motion entry + Continue CTA (сервисный, а не Apple-keynote) - PersonaReveal, IdVerifyFrontDoor, CreditReturn, ProgramReveal, AuthorizeAndSubmit, AusFindingsArrival, ClearToClose, Eclose - Реестр теперь отправляет Impl ComponentType на церемонию; /ceremonies/ Отображает реальную сцену через CeremonyClient («Продолжение» возвращается в /) Все 14 дорожных точек + 8 церемоний проходят tsc + vitest + Next build.

  14. · kamolos

    Фундамент M3a — соединения клиент, крючки, 2 героя путевые точки

    Front-end половина M3a Connect-First Foundation, которую можно использовать Подключение + Проверено Факт бэкэнд только что приземлился. - lib/los/connections-client.ts - типизированный клиент для /connections + /verified-facts - lib/los/app-context.ts - useAppUid hook (URL ?app=<uid> с резервным копированием магазина) 4 React Query hooks: useStartConnection, useGetConnections, useVerified Факты, ИспользованиеReconcileFacts - /waypoints/front-door - ID-verify hero sheet с использованием адаптера id-verify stub - /waypoints/paystub-clipboard - доход соединяет лист героя с использованием дохода адаптер - /waypoints/layout.tsx теперь обрамляет waypoints внутри JourneyShell - /persona теперь вызывает useSetPersona через реальный API, когда ?app= присутствует SceneRoot вместо этого читает реквизит персоны (флаг / сад / акценты экипажа) - демо-версии велосипедов; usePersona читает ?persona= с URL-адреса WorldShell, MobileCrest, JourneyShell JourneyShell заворачивает свои мировые панели в Suspense, поэтому используйте SearchParams больше не взимать плату за статические страницы (/apply/done) Адаптеры Stub везде по умолчанию — реальный платный доход, Persona ID. ATTOM и CRA проводка земли на вендора в M3b +.

  15. · SecurityService

    MortgageConnectController — соединения + проверенные факты + согласованные конечные точки

    Обнаружена первая поверхность захвата на *************** - GET/POST/connections + POST/connections/{id}/complete - GET/POST/verified-facts + POST/verified-facts/reconcile Заемщик-лицо — никаких прав в соответствии с правилом внутренних функций. разрешение Отражает MortgageAppController через orgId() от BaseLosController.

  16. · kamo-shared-library

    Подключение + Проверено Фактическая основа для первого захвата соединения

    Добавляет бэкэнд-фонд M3a для подключения поставщиков и отслеживания происхождения проверенные факты. Stub-only end-to-end — реальный поставщик проводки SDK (Plaid, Persona, АТТОМ, кредитные бюро) выпускники по вендору в M3b/M3c/M3d. ConnectionVendor / ConnectionStatus / Проверено Источник: Enums - Субъект подключения (LOS CONNECTIONS): один ряд на сессию поставщика Внешний Ref + Vault accessTokenRef (НИКОГДА необработанные значения), ссылки на AppMortgage и необязательный заемщик по uid - VerifiedFact entity (LOS VERIFIED FACTS): один ряд на собранную стоимость fieldPath, valueJson, источник происхождения и дополнительные ссылки/документы Spring Data repositories with @Query active-only lookups by app uid + vendor DTO сериализуют длинные uids как String (Jackson JsonFormat), чтобы избежать JS. MAX SAFE INTEGER overflow on CockroachDB unique rowid() ********************** + VerifiedFactService.record + **************************** (М3а каркас; первендор) Полевые картографические корабли вместе с реальными адаптерами в M3b Пользователь должен перезагрузить KamoInitializerService, чтобы создать Hibernate ddl-auto=update LOS CONNECTIONS и LOS VERIFIED FACTS таблицы, прежде чем появится служба безопасности.

  17. · kamolos

    Создайте унаследованный мастер URLA в JourneyShell

    Фаза А переписки с заемщиком: 3D-мир остается в поле зрения Заемщик работает в каждом разделе. На широких смотровых площадках (≥xl) мира заполняет липкую 40% правую панель; ниже xl она сжимается до гребня 28vh выше рабочей поверхности. Дом теперь продвигает государства от EMPTY LOT через LIGHTS ON по мере завершения разделов мастера и изменения статуса файла займа. - New lib/world/JourneyShell wraps/apply/[section], /start, /persona - Новое GetreHomeState уменьшает прогресс приложения + раздела в HomeState **************** теперь берите домой Штат в качестве реквизита (по умолчанию через UseHomeState); демо-цикл M1 исчез Правый рельс WizardShell скрывается на xl+, поэтому JourneyShell владеет правой колонкой - isSectionDone извлекается из вычисленияSectionStates как чистый экспорт

  18. · kamolos

    Мир становится домашней страницей — / обслуживает 3D-сцену, /старт — разговорное крыльцо, /пути путешествия сплюснуты к /персоне / путевым точкам /[id] / церемониям /[id]

    Заемщик попадает непосредственно в новый опыт на общедоступном URL-адресе вместо устаревшей разговорной посадки. CTA переключается между «Начать приложение» (свежий посетитель → / Начать) и «Продолжить приложение» (возврат посетителя с помощью AppUid → / Apply / Property).

  19. · kamolos

    LawnSigns r3f компонент + SignSheet + CompareMode + демонстрационные знаки, подключенные к SceneRoot

  20. · kamolos

    Поток отбора Persona в /journey/persona (8 персон сетки)

  21. · kamolos

    Программы-клиент + крючки (useProgramCatalog, useSetPersona, useSetSelectedProgram, useLiveProgramScores)

  22. · kamolos

    Чистый счетчик двигателя + тесты, охватывающие **************** границы

  23. · kamolos

    17 программных правил (Zod-validated + index keyed by LoanProgramCode)

  24. · SecurityService

    Добавить MortgageProgramController — список программ, набор персон, набор выбранной программы

  25. · kamo-shared-library

    Добавить setPersona + setSelected Методы программного кода

  26. · InitializerService

    ProgramSeederRunner - семя 17 базовых программ LoanProgramCode (идемпотентных)

  27. · kamo-shared-library

    Репозитории, DTO, ProgramService (только для чтения каталог с наивным наложением слияния)

  28. · kamo-shared-library

    Добавьте столбец «Модель кредитора» (дополнительный; нулевой = по умолчанию BROKER на уровне приложения)

  29. · kamo-shared-library

    Добавить persona + выбранные столбцы ProgramCode (дополнительный)

  30. · kamo-shared-library

    Добавить Program + OrgProgramOverride объекты (каталог + наложение per-org)

Ваша вселенная ждет.

Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.

Бесплатно навсегда — не требуется кредитная карта