チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· SecurityService
Emit貸し手ブランド+開示フィールドを1-org config.jsonに
Kamo-losの借り手に直面しているブランディングパイプラインを終える2つの変更: 1. 組織管理者は、公開GET /api/security/org/domain/{host} を獲得 エンドポイント 正確な OrgDomain マッチで org を解決し、その後、後退します。 最も深いホスト名エイリアスをドロップ (apply.lender.com →貸し手.com) そのため、kamo-los の SSR org の fetch は、最初の塗料で貸し手の記録を埋めます。 orgが任意のマッチングドメインを所有していない場合404。 2。****************は発光する書き換えです: - 元のキー(siteName、siteNameShort、背景ImageCount、 LogoFullExt、テーマ修正、説明) — 変更されていない形状。 - フルカラーパレット:colorPri、colorPriLight、colorPriLightest、 colorSec、colorSecLight、colorSecLightest。 以前は色 per-orgのglobals.cssにしか上陸していません。kamo-losはそれらを期待しています config.json なので、DynamicMetaLoader は --org-* CSS vars を書くことができます。 任意のスタイルシートを取得します。 - 新しい組織分野(タグライン、nmlsId、phoneSupport、 emailSupport、等しいHousingDisclosure、onPrimaryText、 グラデーション指向, 年Est). phoneSupport は org.phoneTollFree.number に戻ってきません 明示的に設定 — ほとんどの orgs は、両方の同じ行を使用します。 古い String ベースの buildConfigJson(...) 署名は、バックコンパットとして保持 ラップパーは、既存のコールサイトが壊れないようにします。 JSONは、適切なエスケープで小さなストリングビルダーヘルパーを介して構築されています \、"、\n、\r、\t、およびcharsの制御。 値はまだから来る 管理されたソース(DB列)が、エスケープパスは貸し手を意味します 引用符で貼り付けされたタグラインは、ファイルを破損しません。 更新された共有ライブラリ組織の組織に対してクリーンアップします.
· 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
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.
· kamolos
Org ブランディング ラウド — アニメーション スプラッシュ、リボン、輝き、フッター
微妙な1pxのアクセントのリボンとヘッダのロゴは十分に行わなかった 貸し手のブランドを祝います。 今、すべてのヒーロー表面は、実際の ブランド到着の瞬間。 - OrgProvider コンテキスト: SSR org のフェッチ結果が渡された React コンテキスト (lib/org/OrgContext.tsx) なのでクライアントコンポーネントが読み取れる タイトル、titleShort、yearEst、等再取得なしで。 - HeroBrandIntro:1ショット、フルスクリーンのブランドは、火を吹きます 与えられたセッションでヒーロー表面に最初に訪問します。 コニックグラデーションハロー orgのプライマリ→セカンダリカラー、16粒子リングスパイラルリング 外側に、ガラスに集中した貸し手のロゴ(またはワードマークフォールバック) --org-primary glow, "Welcome — 持ち帰りましょう" サブタイトル、"スキップする場所をタップ"ヒント。 2.4秒後に自動却下。 尊敬は、引き起こされた感情を好む(完全にスキャッピング)。 - BorrowerHeader:リボンは現在2pxであり、アニメーション — グラデーションパン org-primary → org-secondary → org-primary が遅い 8s ループ (CSS) キーフレーム @kamo-org-ribbon ロゴはフレーム・モーションの入口を得ます (fade + Slide), ホバースケール, スクイーズをタップ, ソフト --org-primary ブランドカラーに続くドロップシャドウグロー。 - JourneyCrestの進歩棒:固体bg-auroraでした、今同じを使用します org-primary → ヘッダーリボンとしてのorg-secondary panning gradient 柔らかな輝きで。 借り手が点灯するすべてのステップ 貸し手の色。 - LenderFooter:ヒーロー表面下部の持続的なアトリビューション 「<Lender>・<year>」を小組織で表現 点および等しいハウジングの機会の印。 1.2秒の遅延でフェード CTAクラスターが解決した後に土地を埋めます。 減少した動きを点検して下さい。 すべてのアニメーションは、賞味された感情を好む。 ビルド 32/32 ルート, 140 テストパス.
· 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 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.
· kamolos
パララックス、周囲の動き、実際の雰囲気のレイヤードシーン
最初のカットは、攻撃的なビネットの背後にある小さな静的SVGを出荷しました。 EMPTY LOTは空白画面のように見えます。 実際のレイヤーされたシーンで置き換える あらゆる状態に何かがある。 - 分離されたパララックスの層が付いている新しいlib/journey/scene/モジュール: 空(勾配+太陽アーク+対面星)、スムーズな雲漂流 SVG-nativeアニメーション、シルエットの丘+遠い空のライト 夕暮れ後の窓、家自体(測量器テープから) ライトオン)、フォアグラウンド(ロックフラグ、草、スウェイリング付きメールボックス 花、木)、および任意鳥の層。 - EMPTY LOT は、サーベイターテープ、サイトサイン、空のロットが表示されるようになりました。 コンテキスト — デフォルト状態の空白画面はありません。 - 旅の進捗が進むにつれて、空を渡る太陽アーク。 窓のパルス 点灯時に温かく; 煙突が点灯すると、ライトが点灯します。花が揺れます。 メールボックスのフラグロック; 遠い空の窓は、独立してフリッカー. - ジャーニーのポインターのパララックス:異なる6つの深さの層 - Rexは56px角のスプライトとして穏やかなボブで戻ります。 - ヒーロービネットはトップ/ボトムフェードのみで、暗くなることはありません イラストが生きている画面の真ん中。 - ペルソナは、完成したファサードの上にレンダリングを強調します:ベテランのフラグ 波、退職者の庭は花、投資家の二重ショーの単位を持っています 数字等 それぞれの人格は、州間で視覚的に異なるままです。 ビルド28/28のルート, typecheck clean, 140のテストパス.
· kamolos
3D世界を2Dで置き換える
強制的な3.jsのシーンをエンドツーエンドにし、借り手を再構築する 船を運ぶフラットで、アクセスしやすい、モバイルフレンドリーなモジュールとしての視覚的旅 SSR のサポートと、後でより高い忠実度アートのためのスワップインポイント。 - lib/journey/が引き継ぎます: 示された英雄/紋章/サムネイルの表面、 マニフェスト・バック・アセット・リゾルバー、3人のペルソナ・ウェア・ジャーニーが追跡 (購入8州、refi 5州のポーランド語、構造8州のリテラル)、 パラメータ化された SVG プレースホルダレンダは、ペルソナ + 状態によってキー化されます。 - /workspace の表面上の新しい TaskHub 段階によってグループ化されたすべての 14 つの方法点 実行/current/todo の状態を使って。 インラインの TaskStepper はトップでレンダリングします 流入運動のあらゆる方法のページ。 - Rexはプロシージャル箱恐竜ボディを低下させ、平らなSVGになります チャットバブルとLOガイドチップのアバター。 - /apply/* は半スクリーン 3D 側面のパネルを失います; 細目は示しました フォームがモバイル上のビューポートを埋めるので、トップでクレスト。 - @react-three/fiber、@react-three/drei、@react-three/postprocessingを落として下さい、 バンドルから@types/three を3つ、 世界カモビルミニマップ Zustandの店、カメラの装備、天候の雨の粒子、式の列、および すべてのプロシージャラル シーンの幾何学は削除しました。 - すべての28ルート、24テストファイル/ 140テストパスをプリレンダーするビルド.
· kamolos
無限の地面の層+地平線の深さ+適切な芝生の印
地上 — これ以上のキューブなし - SkyDome:活動的なTODの地平線に彩られた420のmの裏側の球は坐ります ドライ <Sky> の背後にあるので、カメラコーナーのシームがいっぱい - FarTerrainDisc:80×80の区分、頂点の変位の360 m平面 半径ランプの混合された罪/cos の騒音によって — 近い地面は平らにとどまります、 遠くの地面は穏やかな取得します 2-3 m の丘 - MidNeighbourhood:140のmの草のリングの穏やかなundulationの缶間の ロットと遠くの地形 - DistantNeighbours:リングに置かれる14の手続き型箱+屋根の家 60-95 m, 決定的なカラー/ヤウのバリエーションと機会の必見 窓; 実際の郊外として読む - HorizonHills: 145 mの半径の96セグメントのバンピーリング、フォグに色付け それは空バンドにフェード - 世界垂直の封入を与えます - 道路+歩道は40mから240mまで延長され、彼らは霧に収まります - レーンは、長い道に沿って自動スプレッドをダッシュ (毎回 4 m) フォグは[32, 160]([18, 90])、TOD主導の地平線にマッチした ディスクリム、丘、および隣接するシルエットが溶けるので色 見えない境界なしで空に。 サイン - 本格的な解剖学でフルリライト - 二重柵のポスト(プラークの両側の2 0.07 mのポスト、 spike-into-groundの底および金のfinial球の帽子を使って) - 白いプラーク ボディを包むフレームのトリムは、両方材料化しましたに直面します - プログラムごとの色のヘッダー バンド;バンドはsubtlyを排出します従ってそれは現れます - プラークが投稿を満たしている取り付けブラケット - Per-programパレット:CONVインディゴ、FHAグリーン、VA赤、USDAオッケル、JUMBO aurora、DSCRの鋼鉄、HELOCのteal、Reverseのプラム、建設の黄色、 革新の琥珀、ITINのマゼンタ、BRIDGEのオレンジ、プラスのauroraのデフォルト - 勝者は今意味的にドラマチックに: - 背が高い投稿、より大きいプラーク、より大きいテキスト - SpotLightはプログラムのアクセント色のオーバーヘッドをピン留めしました - ライダートッパープラークと「BEST FIT」のテキスト、穏やかにボブ - 地面にアクセント付きリングハロー - すべてのテキストはdri <Billboard>を使用しており、任意のカメラから合法的に滞在 角度、あらゆるバンド色の対照のための輪郭のパスを使って - レイアウト:前方および中心、後ろの1.4ラドファンの支持者、 ドライブウェイとこれ以上のクラスターオーバーラップなし - castShadow + receiveShadow すべてのサインコンポーネントで植え付け
· 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
リアル3D環境+近距離風景+大胆な家CTA
3Dシーンは、平面上の一般的な手続き箱でした。 それをまで持って下さい 信じられないほど近隣: - WorldScene:イメージベースの照明のためのdri <Environment preset="sunset">を加えて下さい そのため、PBR素材は実際にライトアップ、ドライ<Sky>の手順的な雰囲気を探しています。 適切な日の位置+レイリーの散布者、dri <ContactShadows> 柔らかいのため 家の下の地面の接触、ドライ <Clouds> 3つの容積層と。 - 新しい4ライトリグ:明るいキーの太陽+反対側+半球からの涼しい盛り土 空/地面の跳ね上がり+周囲のため。 大気深さのために霧を追加します。 ロット rewritten: - ファーグラス+草の層 - 正面を走る歩道のストリップ - 塗装された車線のダッシュが付いているアスファルト道 - 家から道へのドライブウェイ - 横の柵との周囲のピケットの塀+前部のギャップ - 多球のキャノピーが付いている5つの木 このページ (/) は、変更前のバージョンと明らかに異なるようにしました。 - ヒーローヘッドラインオーバーレイトップ左(Welcome home)。 ビルドしてみましょう。」 aurora クリップ グラデーション + カモビル 眉毛の丸薬 - CTAクラスターの底中心は今背景幕-blurredによって上げられたパネルの把握です 両方の「アプリケーションを開始」 (矢印付き) と「ガイドをピック」 で 選択されたガイドのアクセント リング - 活動的なガイドのアバター、アクセントの白、名前の上の中心ガイドの破片、 とタグライン — /personality へのリンク LoAvatarChip が /personality を開き、選択したガイドのアバターを表示します + 姓 + アクセントの輝き, 代わりに死んだ "あなたの融資役員" ピル.
· 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 を持っています 実質、静的にprerendered表面。 Stub アダプターは接続先を戻します フロー; URLA の書き込みは、実際のアダプターの卒業生として、パーベンダーに交換されます。 ウェイポイントシート(12新しい): - プロパティカード(プロパティデータスタブ) - 銀行ボルト(資産はスタブを接続します) - 銀行ステートアップロード(ファイルピッカー、OCRパイプラインランドM3d) - クレジットカード(ソフトクレジットプルスタブ) - reo-carousel (REO リスト w/インライン追加) - 宣言スタンド(10 はい/ノートグル) - hmda-pavilion (ethnicity/race/sex w/デコーダーオプション) - lo-deskmilitary(ベテランブランチ+日付+VA支払い) - 芝生-サイン-詳細(プログラムカタログ+選択したプログラム書き込み) - 見直しポーチ(各セクションの進捗 + useSubmitApplication で送信) - クローズ デスク (stub envelope) - mailbox-econsent (4つの同意のトグル) セレモニーシーン(8新+セレモニー) - 共有式コンポーネント:グラデーションバックドロップ+タイムド・ダイアログが+ Framer-motion エントランス + CTA を続けて (Apple-keynote ではなく、サービス可能) - PersonaReveal、IdVerifyFrontDoor、CreditReturn、プログラムReveal、 AuthorizeAndSubmit、AusFindingsArrival、ClearToClose、Eclose - レジストリは、Impl ComponentTypeを式ごとに出荷しました。 /ceremonies/[id] CeremonyClient ('Continue' が / に返す) を介して実際のシーンをレンダリングします。 全14のウェイポイント+ 8の儀式はtsc + vitest +次のビルドを渡します.
· kamolos
M3aの基礎 — 接続クライアント、ホック、2 ヒーローのウェイポイントシート
M3aのフロントエンドの半分は、共有libの接続先の基礎 接続 + 検証済み 事実はちょうど上陸しました。 - lib/los/connections-client.ts — /connections + /verified-facts の型クライアント - lib/los/app-context.ts — useAppUid hook (URL ?app=<uid> ストアフォールバック) - 4 React クエリのホック: useStartConnection, useGetConnection, useVerified 事実, 使用ReconcileFacts - /waypoints/front-door — id-verify stub アダプターを使用して ID-verify ヒーローシート - /waypoints/paystub-clipboard - 所得は収入を使用して英雄シートを接続します スタブアダプター - /waypoints/layout.tsxは、JourneyShellの内部のウェイポイントをフレーム化しました - /persona は ?app= が存在するとき、実際の API 経由で useSetPersona を呼び出すようになりました - SceneRootは、代わりにペルソのprop(フラグ/ガーデン/ビルドクルーのアクセント)を読みます サイクリングのデモ; usePersona は URL から ?persona= を読み、スレッド ワールドシェル、モバイルクレスト、ジャーニーシェル - JourneyShellは、サスペンスで世界パネルをラップするので、useSearchParamsが読み込まれる プレレンダリングから不要な静的ページ(/apply/done)がなくなった スタブアダプターは、どこにでもデフォルトです。実際のPradid Income、Persa ID、 M3b+のATTOM、およびCRAの配線の土地のパーベンダー.
· SecurityService
MortgageConnectController — 接続 + 検証済みファクト + 連想エンドポイント
**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** - GET/POST /connections + POST /connections/{id}/complete - GET/POST /verified-facts + POST /verified-facts/reconcile Borrower-facing — 内部フィードルールごとの権利ゲートなし。 認証 BaseLosController から orgId() 経由で MortgageAppController をミラーリングします.
· kamo-shared-library
接続 + 検証済み 接続先キャプチャの事実基盤
ベンダー接続と実績のあるM3aバックエンド基盤を追加 検証済みの事実。 Stub-only エンドツーエンド — 実際のベンダー SDK 配線 (Plaid, Persona) M3b/M3c/M3d の信用のbureaus のパーベンダーの卒業生 ATTOM。 - ConnectionVendor/ConnectionStatus/検証済み FactSourceの列 - 関係団体(LOS CONNECTIONS): ベンダーセッション1行、保持 外部参照 + Vault accessTokenRef (Never raw value), 参照 AppMortgage uid によるオプションの借入金 - VerifiedFact の実体(LOS VERIFIED FACTS):収穫された価値ごとの1列 フィールドパス、値Json、ソースの実績、オプションの接続/ドキュメントの修正 - app uid + ベンダーによる @Query のみの検索で Spring のデータリポジトリ - DTO は、JS を避けるために、文字列 (Jackson JsonFormat) として長い uids をシリアライズします。 MAX SAFE INTEGER は、CockroachDB のユニーク rowid() にオーバーフローします。 メニュー + 確認済みFactService.record + メニュー (M3aの足場;/ベンダー フィールドマッピングはM3bの実際のアダプターと一緒に出荷します ユーザは、KamoInitializerServiceを再起動し、Hibernate ddl-auto=updateが作成される必要があります。 LOS CONNECTIONS と LOS VERIFIED FACTS は、SecurityService が起動する前にテーブルを表示します.
· kamolos
従来のURLAウィザードをJourneyShellに入れる
借り手ジャー・ジャーニー手引きのフェーズA: 3D世界はしばらくの間ビューに滞在 借り手は各セクションを通して動作します。 ワイドビューポート(≧xl)で世界 スティッキー40%の右パネルを埋めます。 xl以下は、上記の28vhクレストに縮小します 作業面。 自宅は今、EMPTY LOTからEMPTY LOTを経由して状態を進めます wizard セクションとして LIGHTS ON が完成し、ローンファイルの状態が動きます。 - 新しいlib/world/JourneyShellは/apply/[セクション]、/start、/personaを包みます - 新しい deriveHomeState は、アプリ + セクションの進捗を HomeState に減らします。 -********************は、properとしてhomeStateを取るようになりました (デフォルトでは useHomeState で); M1 のデモ サイクリング ループは消えます - WizardShellの右レールはxl +で隠すので、JourneyShellは右の列を所有しています - 純粋な輸出としてcomuteSectionStatesから抽出されるisSectionDone
· kamolos
世界がホームページになろう / 3Dシーンを配信する /start は、会話ポーチ、/journey パスは /persona /waypoints/[id] /ceremonies/[id] に平らに平らに
ボローバーは、従来の会話ランディングの代わりに、公開URLで新しい経験に直接上陸します。 ホームページ CTA は 'アプリケーションを開始' (fresh 訪問者 → /start) と 'Continue your application' (appUid → /apply/property で訪問者を返す) の間で反転します.
· kamolos
LawnSigns r3f コンポーネント + SignSheet + CompareMode + デモサインをSceneRootに配線
· kamolos
/journey/persona(8ペルソスグリッド)のペルソナ選択フロー
· kamolos
プログラム指向 + ホック (useProgramCatalog, useSetPersona, useSetSelectedProgram, useLiveProgramScores)
· kamolos
純粋なスコアリングエンジン+テストカバー****************の境界
· kamolos
17 プログラム規則(Zod-validated) + LoanProgramCode のキーのインデックス
· SecurityService
MortgageProgramController を追加 — リストプログラム、セットペルソナ、選択したプログラムを設定
· kamo-shared-library
SetPersona + setSelected を追加 プログラムコードの方法
· InitializerService
プログラムSeederRunner - シード17ベースラインローンプログラム(重要)
· kamo-shared-library
リポジトリ、DTO、プログラムサービス(ネクティブ・オーバーレイ・マージ付き)
· kamo-shared-library
RenerModel カラム (additive; null = BROKER デフォルトを app レイヤーに追加)
· kamo-shared-library
ペルソナ + 選択したProgramCode カラム (追加)
· kamo-shared-library
プログラムを追加 + OrgProgramOverride 実体 (catalog + per-org オーバーレイ)
