Журнал змін
Что нового.
Все усовершенствования платформы, как только она будет запущена.
· SecurityService
Emit lender бренд + поля розкриття в per-org config.json
Два зміни, які закінчують комо-лосося позичим газопроводом: 1. ОрганізаціяКонтролер отримує громадський GET /api/security/org/domain/{host} кінцева точка. Розчиняє орг з точним OrgDomain match, після чого ретріс після Dropping the deepest hostname alias (apply.lender.com → lender.com) ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, ССР, СР, СР, ССР, ССР, СР, ССР, ССР, СР, СР, СР, СР, ССР, СР, СР, СР, СР, СР, СР, СР, СР 404 при відсутності org володіти будь-яким відповідним доменом. 2*************************************************************************************************************************************************************************************************************************************************************** - Оригінальні ключі (сайтName, сайтNameShort, backgroundImageCount, logoFullExt, темаRevision, опис - незмінна форма. - Повна кольорова палітра: колірПримітка, колірPriLightest, колірSec, колірSecLight, колірSecLightest. Попередній колір тільки приземлились у глобальних країнах світу.css; kamo-los очікує їх у JavaScript licenses API Веб-сайт Go1.13.8 викривлення будь-якого стилю - Нові поля організації (табло, nmlsId, phoneSupport, e-mailПідтримка, рівнийВихід, наPrimaryText, градієнтПредагування, рікЕст. ТелефонПідтримка повертається до org.phoneTollFree.number, коли не чітко встановити — більшість оргів використовують однакову лінію для обох. Стара конструкція на основі StringConfigJson(...) підпис зберігається як back-compat загортання, щоб не було існуючого сайту. JSON побудований через невеликий помічник StringBuilder з відповідним дизайном для \, ", \n, \r, \t і контрольних елементів; значення все ще приходять з контрольоване джерело (DB стовпці) але перебіг втечу означає Lender's не пошкоджений файл. Сприяє очищенню від оновленої акціонерної організації.
· kamo-shared-library
Add borrower-facing brand + disclosure fields to Organization
Seven new nullable columns powering the lender-branded surfaces in kamo-los's borrower app: - TAGLINE — marketing line shown on the brand-intro splash + footer - NMLS_ID — NMLS Consumer Access identifier - PHONE_SUPPORT — borrower-facing support phone (falls back to phone_toll_free) - EMAIL_SUPPORT — borrower-facing support email - EQUAL_HOUSING_DISCLOSURE — 'EHO' | 'EHL' | 'BOTH' (NULL = EHO default) - ON_PRIMARY_TEXT — explicit foreground hex over primary brand fill (overrides kamo-los's luminance auto-pick) - GRADIENT_DIRECTION — 'linear-135' | 'linear-90' | 'radial' | 'conic' All seven are read by SecurityService's OrgThemeProvisionService into the per-org MinIO config.json, then consumed by kamo-los's DynamicMetaLoader, LenderFooter, HelpSheet, and HeroBrandIntro. Unbranded orgs fall back to neutral kamo-los defaults at the UI layer. Matching DDL goes in KamoInitializerService (OrgBrandingFieldsMigration).
· kamolos
Глибока оргування інтеграції по кожній поверхні позичальника
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.
· kamolos
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. - OrgProvider context: the SSR org fetch result is now passed through React context (lib/org/OrgContext.tsx) so client components can read title, titleShort, yearEst, etc. without re-fetching. - HeroBrandIntro: one-shot, full-screen brand splash that fires on the first visit to a hero surface in a given session. Conic-gradient halo in the org's primary→secondary colours, a 16-particle ring spiralling outward, the lender's logo (or wordmark fallback) centred in a glass card with an --org-primary glow, "Welcome — let's get you home" subtitle, "tap anywhere to skip" hint. Auto-dismisses after 2.4s. Respects prefers-reduced-motion (skipped entirely). - BorrowerHeader: ribbon is now 2px and animated — gradient pans org-primary → org-secondary → org-primary on a slow 8s loop (CSS keyframe @kamo-org-ribbon). Logo gets a framer-motion entrance (fade + slide), hover scale, tap squeeze, and a soft --org-primary drop-shadow glow that follows the brand colour. - JourneyCrest progress bar: was solid bg-aurora, now uses the same org-primary → org-secondary panning gradient as the header ribbon with a soft glow. Every step the borrower completes lights up in the lender's colours. - LenderFooter: persistent attribution at the bottom of hero surfaces showing "Powered by <Lender> · since <year>" with a small org-tinted dot and an Equal Housing Opportunity mark. Fades in at 1.2s delay so it lands after the CTA cluster has settled. Respects reduced motion. All animations honour prefers-reduced-motion. Build 32/32 routes, 140 tests pass.
· kamolos
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 admin provisioning UI, no multi-tenant switching, no force-light-mode override since kamo-los is dark-by- design). How it works: - lib/org/theme.ts mirrors kamo-internal's Theme.tsx — getThemePath / buildThemeBaseForFqdn / orgFqdnFromHostname / KAMO_THEME_CONFIG_LOADED. Drops the deepest alias from the hostname so the borrower at apply.lender.com resolves to org FQDN lender.com → bucket folder lender-com → MinIO base **************** - lib/org/fetchOrganization.ts does the SSR org lookup against **************** via the existing proxy, with the optional KAMOLOS_SERVICE_ACCOUNT_*** for auth. Used by the root layout's generateMetadata() to seed the HTML title + description from the lender's org record before the page even hydrates. - **************** runs on mount, fetches <theme>/json/config.json, then: 1. sets document.title / apple-mobile-web-app-title / description 2. caches themeRevision + logoFullExt to sessionStorage for cache- busting and ThemeLogo 3. injects the favicons (96px, svg, ico, apple-touch, manifest) 4. maps the org's six colour slots onto the --org-* CSS var namespace at :root (NOT --color-*, so the aurora chrome stays canonical across orgs and only accent points opt-in) 5. dispatches KAMO_THEME_CONFIG_LOADED so logo + accent consumers can refresh Skips kamo-internal's force-light-mode <style> injection — kamo-los is intentionally dark. - components/theme/ThemeLogo.tsx renders the org logo from MinIO with aspect-ratio preservation, max-width/height caps, and a fallback prop for when the org isn't provisioned yet (so a broken image never ships). - globals.css gains the --org-primary / -light / -lighter / --org-secondary / -light / -lighter slots, defaulted to the aurora palette (#7B61FF / #21D4A6). - app/layout.tsx mounts DynamicMetaLoader and uses generateMetadata to seed initial title from the SSR org fetch. - BorrowerHeader: the left-side brand mark is now <ThemeLogo variant="logoFull" /> with a "Kamo" wordmark fallback. A 1px --org-primary accent ribbon sits above the header bar so the lender's colour shows up on every post-application surface without disturbing the dark surface palette. Build 32/32, 140 tests pass.
· kamolos
Port public chat support від kamo-marketing, restyled для aurora тема
Принесіть AI + чат від kamo-marketing позичальник-факційний додаток, перезаряджається на палітру аюрора (серце-база / чорнило / аурора / кільце-білий) так вона сидить чисто на темні нав’язливі поверхні замість лісо-зеленого сайту. - lib/chat/proxyConfig.ts Centralises Public CHAT API BASE + Public CHAT API KEY дозвіл. Венти (PUBLIC CHAT API KEY, API SERVICE URL, NEXT PUBLIC DOMAIN) проводила через ліворуч/env.ts. - 6 тонких Next.js проксі-маршрути під App/api/chat/* вперед APIService /api/public-chat/* з стандартом X-Public-Chat-Key заголовок і X-Session-Token, де маршрут вимагає його. Переклад кінцева точка збережена для перекладу вхідних повідомлень. - ******** динамічно (ssr:false) вантажі PublicChatWidget. Встановити глобально в app/layout.tsx, так як стартер слідувати позичальнику по всій поверхні (посадка, використання, точками шляху, робочий простір, церемоні. - PublicChatWidget попередньо заповнює ім'я відвідувачів **************************************************************************************************************************************************************************************************************************************************************** значення, тому позичальники, які подали ім'я в розмовному потокі не перейменуйте його в заголовку чату. - AiChatPanel і LiveSupportPanel підтримують режим маркетингового сайту сепарація (AI = HTTP запит-реплі, підтримка = STOMP WebSocket з наявність черги перекладу серця + per-message токени для поверхонь, бульбашок, вводів, акцентів. - ***Провідер зберігає віджет Capcha PoW, але recolours через CSS вари в аурора фіолетовий. Повернутися до капчі.<NEXT PUBLIC DOMAIN> коли хост локальнийhost або IP. - ПодорожHero Rex спрайт переїхав до нижньої лівки на всіх точках розбиття (булася нижню праву на мобільний) так що запускає чат в нижній правій кут не сидить на вершині його. - постачальник / kamo-capcha-widget, що копіюється з сайту маркетингу як локальний файл: dep. .gitignore оновлений для пропускання переходу Постачальник/**/node modules npm створює під час встановлення. Побудувати 32 / 32 маршрути (6 нових точок доступу до чату), 140 тестів.
· kamolos
Шарована сцена з паралаксом, амбітним рухом, реальною атмосферою
Перший ріжучий відвантажив крихітну статичну SVG за агресивним вигином, тому EMPTY LOT виглядав як порожній екран. Замініть його з реальним шаром сцени що насправді має щось на кожній державі. - Новий lib/journey/scene/модуль з дискретними шарами паралаксу: небо (градієнтовний + сонце-arc + близнюки зірки), потоплення хмар з гладкою SVG-нативна анімація, гірки силуету + далека неба з lit вікна після дука, сам будинок (посуд з оглядачем стрічки до світильники-навігація, передпліччя (повідомлення зі скелястим прапором, травою, сходу квіти, дерева), і додатковий шар птахів. - EMPTY LOT тепер показує рецензентну стрічку, знак SITE, і порожній лот в контекст — не більш порожній екран за замовчуванням. - Сонце дуги по небі, як прогрес подорожі; вікна імпульсу теплим чином при запаленні; дим дим диму диму при попаданні вогнів; прапори поштових скриньок; віддалені вікна неба. - Паралакс Тонера на TravelHero: 6 шарів глибини перевести на різні - Рекс повертається як кут 56px на героя з ніжним бобом. - Герой віньєтт тепер верхній/знизити кришку тільки, ніколи не потепління середина екрана, де живе ілюстрація. - Підкреслення особняків на вершині готового фасаду: прапор ветерана хвилі, сад винограду має квіти, дуплекс інвестора кількість і т.д. Кожна людина перебуває у візуальному режимі. Побудуйте маршрути 28/28, очищайте, пропуск 140 тестів.
· kamolos
Замініть 3D світ з ілюстраціями 2D
Вбити процедуру три.js сцена end-to-end і відновити позичальника візуальна подорож як плоский, доступний, мобільний модуль, який кораблі з повним супроводом ССР та міткою для артилерії вищого рівня. - lib/journey/ takes над: ілюстрований герой / crest / thumbnail поверхонь, маніфестований актив, третя людина (purchase 8-держава, refi 5-державний полір, будівництво 8-статеві лалі), і параметрізований рендер-рендер SVG, що заповнює особу + стан. - Нова задачаHub на / робочих просторових поверхнях всі 14 точок, що засвідчують фазу з виконаним/поточним/todo статусом. Inline ЗавданняStepper рендерує у верхній частині Кожна сторінка точки для руху потоку. - Переки скасовує процесуальне тіло-динозавр і стає плоскою SVG avatar в чат бульбашки і LO Керівництво чіп. - /apply/* втрачає півекран 3D бічної панелі; отримує тонку ілюстровану Зайдіть у верхній частині, щоб форма заповнює перегляд на мобільний. - Краплі @react-three/fiber, @react-three/drei, @react-three/postprocessing, три, і @types/three з пачки. KamovilleMinimap, світ Zustand магазин, камера rig, погодні частинки дощу, церемонія черги і видалення всіх процедурно-деформаційних геометрій. - Побудувати пререндери всіх 28 маршрутів, 24 тестових файлів / 140 тестів.
· kamolos
Нескінченні яруси + глибина горизонту + правильні газонні знаки
Заземлення — не більше куба - SkyDome: 420 м задня сфера, пофарбована до активного горизонту TOD, сидить позаду drei <Sky> так само будь-який шов на кутах камери заповнюється - FarTerrainDisc: 360 м площина з відрізками 80 × 80, зміщення вершини через змішаний син/косовий шум на радіальній пансіоні — близька земля залишається плоскою, далеко за землю отримує ніжні 2-3 м пагорби - MidNeighbourhood: 140 м травне кільце з м'яким небажанням, розфарбовування між багато і далека місцевості - DistantNeighbours: 14 процедурна коробка+роф будинки, розміщені в кільце на 60-95 м, з детерміналістичною кольоровою/жовтою варіацією та періодичною погодою вікна; читати як реальний передмістя - ГоризонтХіллі: 96-розрядний бамперовий кільце при радіусі 145 м, кольоровий до туману так вона захоплюється в небо смугу — дає світовий вертикальний склад - Дорога + тротуар продовжена від 40 м до 240 м, щоб вони переплуталися в туман - провулок дашеса авто-спрей вздовж довга дорога (вічно 4 м) Зараз трупи [32, 160] (була [18, 90]), збігалися з горизонтом TOD-драйву колір так і дисковий ріжок, пагорби і сусідні силуети всі розчиняють в небо без видимої межі. Ознаки — повний резит з реальною анатомією - Подвійні стовпи (два 0,07 м повідомлення на обох сторонах нальоту, з низами спіке-вгору і золотом плавних кулькових шапок) - Обрізка рамки обгортання білого налітного тіла, як обличчя, матеріалізованих - Кольоровий заголовок на програму; гурт випромінює так, що він попсує - Монтаж кронштейнів, де наліт відповідає постам - Пер-програмна палітра: CONV indigo, FHA зелений, VA червоний, USDA ochre, JUMBO aurora, DSCR сталь, HELOC чайник, REVERSE слива, БУДІВНИЦТВО жовтий, RENOVATION amber, ITIN magenta, BRIDGE помаранчевий, плюс aurora за замовчуванням - Переможець тепер ознайомлений: - висотні стовпи, більший наліт, більший текст - SpotLight приколів накладки в колір акценту програми - наліт топпера з текстом "BEST FIT" м'яко - підкреслений кільцевий хол на землі - Все текст використовує drei <Billboard> так що він залишається легітимним з будь-якої камери кут, з контурним пасом для контрасту з будь-яким кольором - Layout: переможець вперед і центр, прихильники в вентиляторі 1,4-града, за не більше кластерів перекриття з приводом - castShadow + отримуватиShadow на кожному компоненті знака, щоб вони виглядали
· 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
· 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.
· 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.
· kamolos
12 решта аркушів точки + 8 церемонія
Фундамент C - кожен спосіб точки і церемонія slug в спеку тепер має реальна, статична поверхня. Перехідні адаптери зворотного зв'язку потік; URLA пишеться буде ковтати в первендорі як їх реальні адаптери. Потрібні листи (12 нових): - карти майнових прав (пропетровиця даних) - банківська скринька (приблизний з'єднувач) - банківсько-штатно-завантажити (файловий пікір, ОКР) - Кредит-лідер (м'який кредитний трюб) - reo-carousel (REO список w/ inline add) - деклараційно-витриманий (10 так/не окуляри) - hmda-pavilion (етнічність/реліз/секс w/ decoder варіант) - ло-деск-військова (ветеринська філія + дата + платіж) - галявина-деталь (програмний каталог + вибране програмне забезпечення) - рецензування-порошок (прогресування + подання через useSubmitApplication) - Закриття-деск (визначте шпильку) - поштова скринька-econsent (4 згодні окуляри) Сцени Ceremony (8 нових + креветкові примітиви): - Загальний компонент Ceremony: gradient backdrop + часові діалоги + в'їзд рами-моделями + Продовжити CTA (розрахунковий, не Apple-ключний) - PersonaReveal, IdVerifyFrontDoor, CreditReturn, ПрограмаReveal, AuthorizeAndSubmit, AusFindingsArrival, ClearToClose, Eclose - Реєструйся зараз на церемонію зворотного зв'язку. /ceremonies/[id] дає реальну сцену через CeremonyClient ('Continue’ повертається в /) Всі 14 точок шляху + 8 церемоній проходять тс + вітест + наступна будівля.
· kamolos
M3a фундамент — з'єднання клієнта, гачків, 2 героїчних аркушів
Фронтальна половина М3а з'єднувального фундаменту, що спільного Підключення + Перевірені Фактний бекенд просто приземлений. - lib/los/connections-client.ts — типований клієнт для /connections + /verified-facts - lib/los/app-context.ts - useAppUid гачком (URL ?app=<uid> з магазином випадіння) - 4 React Query гачки: useStartConnection, useGetConnections, useVerified Факти, useReconcileФакти - /waypoints/front-door - ID-verify герой лист за допомогою адаптера id-verify - /waypoints/paystub-clipboard — з'єднувальний лист героя з використанням доходу адаптер - /waypoints/layout.tsx тепер пункти руху в дорозіShell - /persona тепер називає useSetPersona через реальний API при ?app= присутній - СценаРоот читає пропа людини (flag / сад / build-crew акценти) замість велопродемонстрації; використанняПерсона Читає ?persona= від URL і протягується через WorldShell, MobileCrest, ПодорожShell - ПодорожShell обмотує свої світові панелі в Суспенсі, так що використанняПошукПарами читати не більше, ніж статичні сторінки (/apply/done) з попередньої Перехідники Stub є за замовчуванням всюди — реальний потік, ідентифікатор Persona, ATTOM і CRA проводки землі первендор в M3b+.
· SecurityService
MortgageConnectController — з'єднання + перевірено-факти + розвідувальні кінцеві точки
Exposes the Connection-first захоплення поверхня в **************** - GET / POST / з'єднання + POST / підключення /{id} / неповний - GET/POST /verified-facts + POST /verified-facts/reconcile Борроуер-факсинг — відсутність правових воріт на внутрішньому рівні. Авторизація дзеркала MortgageAppController через orgId() від BaseLosController.
· kamo-shared-library
Підключення + Перевірені Фактний фундамент для першого захоплення
Додає заставу M3a для з'єднань постачальників і перевірених перевірені факти. Stub-only end-to-end - реальний постачальник SDK проводки (плейд, Особа, ATTOM, кредитні бюро) випускники, які навчаються в M3b/M3c/M3d. - ConnectionVendor / Статут підключення / Перевірено FactSource манжети - Суб'єкт зв'язку (LOS CONNECTIONS): один рядок за сеансом постачальника зовнішніRef + Vault accessTokenRef (Ніколи сирі значення), посилання AppMortgage і необов'язковий бороуер по uid - ПеревіренаФактна особа (LOS VERIFIED FACTS): один ряд за зібране значення з JavaScript licenses API Веб-сайт Go1.13.8 - Spring Data repositories з @Query Активно переглядає додаток uid + постачальник - DTOs сертифікувати довгий вік як String (Jackson JsonFormat) щоб уникнути JS MAX SAFE INTEGER переповнення на CockroachDB унікальний rowid() ************************************************************************************************************************************************************************************************************************************************************************** + VerifiedFactService.record + ****************************************************************************************************************************************************************************************************************************************************************************** (M3a scaffold; пер-вендор поле картування суден поряд з реальними адаптерами в M3b) Користувач повинен перезавантажити KamoInitializerService так Hibernate ddl-auto=update створює LOS CONNECTIONS та LOS VERIFIED FACTS таблиці перед SecurityService.
· kamolos
Рамка URL-адреси для схуднення
Фаза А позичальника-юрні: 3D світ залишається з огляду під час позичальник працює через кожну секцію. На широкому виді заповнюється липкою 40% правою панеллю; нижче ксл він усаджує до 28vh crest над робоча поверхня. Головна тепер передує штати від EMPTY LOT через LIGHTS ON як завершені розділи, а також пересувається статус кредиту. - Нове ліво/світ/JourneyShell обгортання /apply/[секція], /start, /persona - Новий deriveHomeState знижує додаток + секція прогресу до HomeState - ******** тепер приймати HomeState як пропа (за замовчуванням через useHomeState); демо-петля M1 пішов -Поручна рейка "Shell" приховує на xl+ так ПодорожShell своїми правими стовпчиками - isSectionDone видобувається з computeSectionStates як чистий експорт
· kamolos
World стає домашньою сторією - / обслуговує 3D-сцену, /старт - це бесідний гачок, /journey доріжки, що плануються до /persona /waypoints /[id] /ceremonies /[id]
Земельні землі безпосередньо в новому досвіді на публічній URL замість проблемної посадки. На головну сторінку CTA кліпи між "Почати свою заявку" (повідомити відвідувачів → /start) і "Додати заявку" (повернення відвідувача з додаткомUid → /apply/property).
· kamolos
Gaeilge, English, Українська..
· kamolos
Підбір персоналу на /journey/persona (8 сітки)
· kamolos
Програми-клієнт + гаки (useProgramCatalog, useSetPersona, useSetSelectedProgram, useLiveProgramScores)
· kamolos
Чистий забитий двигун + випробування покриття ****** кордони
· kamolos
17 правил програми (Zod-validated) + індекс, що задається кредитною програмою
· SecurityService
Додати MortgageProgramController — список програм, встановити людину, встановити вибрану програму
· kamo-shared-library
Додати набірPersona + setВиберіть Методи програмиCode
· InitializerService
ПрограмаSeederRunner - насіння 17 базових програм кредитування
· kamo-shared-library
Репозиторії, ДТО, ПрограмаПослуги (редаг-он-лайн каталог з об'єднаною накладкою)
· kamo-shared-library
Додати lenderModel стовпчик (additive; null = BROKER за замовчуванням в шарі додатка)
· kamo-shared-library
Додати persona + вибраніПрограмиКодові стовпчики (додаткові)
· kamo-shared-library
Додати програму + OrgProgramOverride суб'єкти (каталог + per-org overlay)

Твій всесвіт чекає.
Почати безкоштовно за декілька хвилин. Додати продукти, коли ви будете готові — без перенесення, без нових реєстрацій.
Безкоштовно назавжди — не потрібна кредитна карта