Direkt zum Inhalt
KAMOUniverse

Changelog

Was ist neu?

Jede Verbesserung an der Plattform, wie sie geliefert wird.

  1. · kamo-internal

    P1 Frontend - Abwurf-Warteschlange + Audit-Zeitleiste

    - losApi: chargeOffQueue / bestätigenChargeOff / auditByLoan - **************** D120 Bewertung Warteschlange Seite; org Benutzer überprüft jedes Darlehen, fügt einen Grund hinzu, klickt Bestätigen Sie die POST /api/los/charge-off /{id"/bestätigen. Oberflächen des LoanChargeOffService Backends. - Neue <LoanAuditTimeline" Komponente: liest **************** und gibt den vollständigen LoanAuditEvent-Stream (Schauspielertyp, Art, Betrag, Zeitstempel). Entwickelt, um in die org-Seite Darlehen Detail-Seite stecken.

  2. · kamolos

    P1 Batch - Webhooks Vorabstand, Crons, Handel vertikal

    Geldbewegung (der Kern P1): - LoanPaymentPostingService: markSucceedAndPost / markFailed / markReturnedAndReverse / markDisbursementSucceed / markDrawDisbursed. Zuteilungsauftrag gesperrt: Gebühren - Zinsen - Prinzip. Status auto-advances DELINQUENT - ACTIVE - PAID_OFF basierend auf der daraus resultierenden Bilanz. - StripeWebhookService ist nicht mehr log-only: payment_intent.succeed / payment_failed / charge.refunded (ACH Rückkehr) / dispute.created+closed / payout.paid+geschehen Sie alle Vorschuss des Ledgers über PostingService. - NachaReturnCode + RetryScheduler: NACHA-konformes R-Code-Routing R01/R09 erneuter Ausprobieren im Abstand von 2 bis zu 2 Tagen, R07/R10/R29 widerrufen das Mandat, erschöpfte Retries Flip LoanPaymentMethod - REQUIRES_REVERIFY. Commerce-vertikale Materialisierung: - **************** schafft jetzt Engagement (PERSONAL_LOANS, COMMITTED), Engagement (ACTIVE, mit Preisen +Terms JSON Schnappschüsse), Ordnung (AUTHORIZED, subtotal=prinzip), und fädelt deren IDs zurück auf Loan.commitmentUid / EngagementUid / OriginatingOrderUid in die gleiche Transaktion. Cron Jobs (reale Logik, nicht Stubs): - CoolingOffAdvanceJob: nqueues a PENDING DISBURSEMENT_OUT Zahlung für jedes PENDING_DISBUEMENT Darlehen, dessen Abkühlung verstrichen ist. - InterestAccrualJob: täglich einfaches Interesse auf Kapitalabgleich für ACTIVE + DELINQUENT Darlehen. - StatementGenerationJob: Ratenzahlung pro fällige Anweisung, LOC pro Zyklus Anweisung mit ADB-Annäherung + Jahresgebührenbeurteilung + Auto-Pay Terminplanung. - AutoDebitRunJob: feuert PENDING Auto-Debits + DISBURSEMENT_OUT Auszahlungen + NACHA rettiert über StripeConnectService mit idempotency Schlüsseln. - ReconciliationJob: nächtliche Wiederaufnahme der Gebühren/Grundsatz/Gleichgewicht aus dem ledger; Drift Korrektur protokolliert + geprüft. - ReminderDispatchJob: zieht SCHEDULED-Benachrichtigungen über ihre geplante und liefert über NotificationDispatchService. Benachrichtigungen: - **************** real HTTP POST zu EmailService (/api/email/transactional/send) und VOIPService (/api/voip/sms/send, /api/voip/voice/send), templateKey = "loan.{kind_lowercase"". Validierung: - LoanProductValidationService: setzt APR-Staatsobergrenze (pro Art) durch Verbotsprüfungen, min/max-principal sanity. Eingehakt LoanProductService.create + update. Charge-off: - LoanChargeOffService.queue() listet D120 Darlehen; .confirm() flips Status zu CHARGED_OFF und schreibt ein CHARGE_OFF_RECORDED Audit-Erscheinungsereignis. - LoanChargeOffController stellt ************ aus Audit browse: - LoanAuditEventController stellt ************

  3. · kamo-internal

    P0 Härten - Formulare, Sitzungsabschluss, Zahlungsmethoden

    Formulare (org-side): - **************** und /{productUid" Seiten bearbeiten - New LoanProductForm: Grundlagen / Preisgestaltung / Limits / Begriffe / Compliance Abschnitte, kind-aware fields (Einrichtung vs LOC), Schuldschein-Note Template UID, erlaubt-state-codes - ************ Auswahl (nur aktive Produkte aus diesem Markt), Kreditnehmer-Mitglied, Haupt, optionale Bezeichnung, Kreditnehmer Staat, "Speichern Entwurf" vs "senden" - /settings/features/ausleihen: org-side Stripe Connect onboarding Seite (Anrufe **************** leitet zu Stripe um) Kreditnehmer-Seite Härten: - Neuer EinsatzCurrentSession() hook löst memberId/orgId von /api/user-info (canonical *** path) ersetzt gefälschte KMEMBER/KORG Cookie liest in My Loans, Angebot Detail, Darlehen Detail, Krediteinstellungen, PipelineLoanOffersTab, PipelineActiveLoanTab - Neue BorrowerPaymentMethodsCard: Kreditnehmer kann ACH Bank verbinden (Stripe payment_method id + Mandat) oder Karte, siehe verlinkte Methoden, Set default, widerrufen; eingebettet auf /loans/[loanId] Seite - losApi: + startStripeConnectOnboarding Einstellungen nav (2 von 3 Plätzen pro Speicherregel): - EinstellungenStatusWindow fügt "Leihprodukte" unter Commerce + route Entry hinzu für **************** - (sidebar.tsx hat keine POS-Einträge - bestätigte No-op)

  4. · kamolos

    P0 Härten - Stripe Connect Endpoint + PDF flach

    - EsignClient Importe: EsignGenericEnvelopeRepository / EsignSignatureRepository leben in .esign.repos, nicht .esign root - Neue StripeConnectController POST ************ erstellt org Custom-account + gibt Onboarding URL zurück (Delegierte an bestehender StripeConnectService) - MediaServiceClient.fetchBlob: zieht die Bytes eines gespeicherten Blob für Flatten/re-render Arbeitsabläufe - Neuer PdfFlattenService: eine E-SIGN Act-konforme Signatur an Zertifizierung Seite zur Quelloffenlegung PDF für jedes erfasste Signatur (in italic gemachter Name; Signer/IP/UA/SHA-256 + Umschlag UID auf der Seite aufgenommen). Speichert den neuen abgeflachte Blob über MediaService und gibt Blob-ID + SHA-256 zurück. - EsignClient.submitSignature flacht jetzt nach Markierung SIGNED und Bevölkert ************ + signiertDokumentSha256. Flatten Ausfall-Logs, rollt aber die Signatur selbst nicht zurück.

  5. · kamo-internal

    /api/los/* Proxy-Route - KamoLOS via k8s DNS

    Spiegelt den /api/billing/[[...path]] BillingService Proxy: - *** Sitzung über Redis gelöst; X-Org-Id + X-Member-Id weitergeleitet - /api/los/webhooks/* Session auth überspringen (Stripe Signatur-verifiziert unter KamoLOS); Stripe-Signature-Kopfball wird durchgereicht - God-Mode Header Pass-Through erhalten - 502 Einwickeln auf vorgelagerten Ausfällen

  6. · kamo-internal

    PERSONAL_LOANS commerce Typ Front-End hinzufügen

    - EngagementType Union + Vokabeln: Erweiterung der EngagementType-Vereinung + - MarketCardGrid: PERSONAL_LOANS Farbe (#14b8a6) + Wahrzeichen Symbol + Zähler - Markt Detail Seite: neue Registerkarten (Darlehen Produkte / Angebote / Aktive Darlehen / Staatliche Regeln) gated on commerceType === 'PERSONAL_LOANS' - losApi.ts: volle DTO Oberfläche + dünne Hetch Wrapper schlagen /api/los/* für Produkte, Angebote, Darlehen, Zahlungen, Zahlungen, Kontoauszüge, Zahlungen Methoden, Auto-Pay, staatliche Regeln, ESign Signatur Vorlage - Neue MarketLoanProdukteTab / MarketLoanOffersTab / MarketActiveLosTab / MarketLoanStateRulesTab Komponenten - PipelineView: VERTICAL_ICONS Eintrag für personal_loans - PipelineVerticalSection: PERSONAL_LOANS in hasSubTabs + Renderblock Routen Angebote (Absichten) + Aktive Darlehen (Verpflichtungen) Sub-Tabs - Neue PipelineLoanOffersTab / PipelineActiveLosTab - Leihgabe (Mitglied) / Leihfläche: Index, / Kredite/Angebote/[offerId] mit Akzeptieren- und Signatur-Flow (typisierte Signatur - ESign Submission . Akzeptieren-Angebot), /Darlehen/[LoanId] mit Kontoausgleich, Kontoauszügen, Zahlungen Geschichte, Pay Now, draws-for-LOC - Einstellungen/page.tsx: commerce nav fügt "Darlehensprodukte"-Eintrag hinzu

  7. · kamolos

    Erste persönliche Kredit-Ursprung + Service

    Neues Spring Boot 3.1.5 / Java 21 microservice nach dem Vorbild von BillingService. Besitzt persönliche Darlehen Domain Ende-zu-Ende: - LoanProduct / LoanOffer / Loan CRUD mit REST + DTO-Schicht - LoanLifecycleService materialisiert Darlehen + Commerce Engagement/Commitment bei der Annahme im Angebot (eine txn) - LoanPayment + LoanDraw + LoanStatement + LoanPaymentMethod + LoanRecurringPaymentPlan Dienstleistungen + Controller - Mathe: Amortisations-Engine (Reg Z Anhang J), InterestAccrualEngine (ACT_365 / ACT_360 + ADB), PaymentAllocator (fees-interest-principal) - StripeConnectService (Kundenkonten onboarding, ACH Auszahlung, ACH-last) + StripeWebhookService (idempotent via LoanStripeWebhookEvent) + connect-spezifischer webhook Endpoint - TilaRendererService macht Reg Z Schumer Box (Installation) / Offene Offenlegung (LOC) via PDFBox in MinIO - StateRuleSelfHealService boot-loads loan_state_rules.json (50-state Registry + MLA Cap + Abkühlung) - Muster von Rechten in Einklang bringen - EsignClient + EsignSignController komplettieren die fehlende Mitglieder-Facing Signatur-Einreichung Pfad (schreibt EsignGenericEnvelope + EsignSignature im Shared-Lib) - NotificationDispatchService mit dedup-keyed Terminplanung - Cron Jobs: Angebotserlosheit, StatementGeneration, DelinquencySweep - k8s manifests (configmap / Bereitstellung / Service), Dockerfile, Forgejo CI Workflow (Dual-Cluster K1M1+K2M1) BillingService-Konventionen

  8. · kamo-shared-library

    Hinzufügen von PERSONAL_LOANS Commerce-Typ + Entität Paket

    - CommerceType.PERSONAL_LOANS + paralleles EngagementType + Vokabeln - BuiltinVendorCategories Einträge für Anbieter von Privatkrediten - 15 personal_loans JPA-Einheiten (LoanProduct, LoanStateRule, LoanOffer, LoanOfferDecision, Darlehen, LoanDraw, LoanPayment, LoanPaymentMethod, LoanRecurringPaymentPlan, LoanStatement, LoanFee, LoanDisclosure, LoanAuditEvent, LoanStripeWebhookEvent, LoanNotification) + 15 Repos - 22 personal_loans enums (Status, Tier, Art, Quelle, Kanal, etc.) - esign EsignGenericEnvelope + EsignSignature + Repos für Nicht-Hypothek Umsatzerfassung und mitgliedsbezogene Signaturerfassung - KamoLOS - KamoMLOS Kommentar-only refs über Organisation aktualisiert / CommerceMarketService / CommerceService Schema-Management bleibt bei KamoInitializerService; KamoLOS setzt ein ddl-auto: keine.

  9. · kamo-internal

    Photo-Album-Uploads verwenden die gleiche WS-Pipeline wie die Uploads-Register

    Extrahiert die doc-manager Upload-Pipeline (Hashing - dedup-Check - Register-or-upload - WebSocket-gesteuerte Konvertierung) in einen wiederverwendbaren useImagingUploads-Hook. Der Hook besitzt die pro-Datei-Zustandsmaschine, XHR progress und das Live-Konvertierungs-Fortschritt WebSocket-Abonnement, das die Uploads-Tab verwendet. Fotoalbum Dialog neu geschrieben, um den Haken zu konsumieren: - Dateien warten automatisch und bearbeiten Sie eine zu einer Zeit. - Jede Inflight-Datei zeigt ihr aktuelles Standetikett (Hashing - Überprüfen - Hochladen - Konvertieren - Komplett) mit einem LinearProgress, einem Check / Fehler / Spinner-Symbol und einem Retry-Button nach Ausfall. - Der Dialog zeigt nun die eigentliche Server-Fehlermeldung an (z.B. "Failed to upload to MinIO") statt es zu schlucken, und ein Speichern wird blockiert, während Uploads noch im Flug sind. - Erfolgreiche hochgeladene Dateien automatisch an das Album als Artikel anhängen.

  10. · kamolos

    Hide isActive=falsche Programme von Kreditnehmern in Echtzeit

    ProgramCatalog filtert jetzt Programme mit isActive=false vor Rückkehr an den Kredit-Zauberer. Die Flagge ist Server-Seite als (base.isActive AND override.isActive), also wenn ein Kreditgeber ein Programm umstellt aus in der Registerkarte Hypothekenprogramme Einstellungen, die entsprechende Karte stoppt in der Persona/Programmauswahl erscheinen - gedeckelt durch die bestehenden 60er abgestandene Zeit-Decke.

  11. · SecurityService

    Backfill-Programm bietet für bestehende Hypothekenmärkte am Boot

    DataLoader ruft jetzt ************ nach der AppHortgage-engagement-Verfüllung. Fegt jede bestehende MORTGAGE CommerceMarket und stellt sicher, dass sein Programm Angebote zur Bereitstellung bereitgestellt werden. Covers Märkte, die vor der SchaffungMarkt-Seite Haken entstanden landete speziell die, die der Benutzer über Markets & Fields vor diesem hinzugefügt hat Einsatz. Idempotent: ein voll-bootstrapped System protokolliert "alle Märkte bereits Vorsorge" und überspringt.

  12. · kamo-shared-library

    Bootstrap Hypotheken-Programm Angebote auf dem Markt erstellen + Boot Backfill

    Wenn der Benutzer einen CommerceMarket mit commerceType=MORTGAGE erstellt, Märkte & Felder Einstellungen Registerkarte - der Markt braucht Programm Angebote unter ihm für nachgeschaltete Commerce-Oberflächen, auf die intentens zeigen. Bisher nur dies passiert faul auf der ersten AppMortgage erstellen, so neu hinzugefügt Hypothek Die Märkte saßen leer und KamoLOS-Side-Administratoren sahen keinen Effekt, wenn man einen hinzufügte. - ************ beim Typ=MORTGAGE, Anruf ************ Markt) nach dem Speichern. Wrapped in try/catch, so dass ein Programm-Seingensfehler die Marktbildung nicht blockiert (KamoLOS liest Programme aus der Programm-Registrierung, nicht Angebote). - ************ fegt jeder bestehende MORTGAGE-Markt und stellt sicher, dass seine Angebote vorsehen. Wird von SecurityService DataLoader am Boot verwendet, um Märkte abzudecken, die vorher erstellt wurden dieser Haken gelandet. Idempotent - Steigstaatenstiefel sind ein No-Op.

  13. · kamo-internal

    Duplizieren Ordner, so dass Benutzer Gabel können, ohne das Original zu beeinflussen

    Fügt eine "Duplicate" Aktion hinzu, die vom Kontextmenü der Binderliste und von einem neuen Button im Editor Header zugänglich ist. Das Duplikat startet mit den Metadaten + Elementen + Modifikatoren des Quellcodes + Modifikatoren, die sich im Besitz des aktuellen Benutzers ohne Shares befinden, und wird automatisch ausgewählt, so dass der Benutzer sofort auf dem neuen Zweig landet. Drähte nach oben: - ************ Proxy Route - duplizierenBinder() in binderApi.ts und verwendenBinderStore - "Duplicate" Menüpunkt in BinderListPanel (funktioniert an jedem sichtbaren Ordner - Besitz, gemeinsame oder Vorlage) - Doppelsymbol-Button + Spinner im BinderEditor-Kopfer

  14. · DocsService

    POST ************ hinzufügen

    Ein Bindemittel, das der Antraggeber in einem frischen Ordner sehen kann, der dem Antraggeber gehört. Kopiert jedes Element (DOC, SEPARATOR, GENERATED) mit Bestellung, Typ, KonfigurationJson und Per-Instance-Modifikator intakt; kopiert binderweite Modifikatoren; kopiert die zugrunde liegenden Img-Dokumente in Ruhe (beide referenzieren die gleichen Dokumente). Die Kopie beginnt ohne Shares und istTemplate=false.

  15. · kamo-internal

    Hypothekenprogramme toggle + MORTGAGE Engagement Deep-Link

    - MortgageProgramsPanel liefert jetzt einen echten Switch auf jeder Programmkarte mit optimistisches Update + Rollback auf Ausfall. Umschalten eines Programms Anrufe PUT ************ und reflektiert die effektive aktive Zustand-betätigte Serverseite von base + override. - ************ istActive) wickelt den neuen Endpunkt ein. - /commerce/engagements/[id] Seite: APPLICATION linkType jetzt Routen zu /applikations/{linkId' (die URLA Detailseite), nicht die fehlende ************ MORTGAGE Engagements auto-redirect in /applikations/{linkId] auf geladen, so dass Benutzer in URLA Detail landen anstelle der generischen Engagement-Ansicht.

  16. · SecurityService

    PUT /programs/{code"/aktiv + deprecate legacy hypothe POS Endpoints

    - HypothekenprogrammController gewinnt PUT ************ mit dem Körper {"isActive": bool&gt;, gated auf LOS_TAKE_APPLICATION. Delegierte ****************, das die OrgProgramOverride Reihe auf den wirft. - ************ getMortgageAppById, erstellen Sie HypothekenApp, updateMortgageApp, updateMortgageAppStatus alle markiert @Deprecated mit javadoc zeigt Anrufer auf die URLA-fidelity /api/security/mortgage-apps Endpunkte. Die alten POS-Pfade bleiben für Back-Compat funktionsfähig.

  17. · kamo-shared-library

    Per-org enable/deaktiv + deprecate legacy commerce-only Hypothekenpfad

    - ************ serts eine OrgProgramOverride Reihe mit recordState.isActive=desired; listForOrg jetzt UND ist das Basisprogramm aktive Flagge mit den Override's, so dass ein deaktivierter Override das Dual trägt mit der Bedeutung "diese Org hat dieses Programm ausdrücklich deaktiviert". - OrgProgramOverrideRepository fügt findAllByOrganizationId hinzu und ************ für die upsert + listForOrg Pfade. - **************** / findMortgageAppById / **************** / updateMortgageApp / updateMortgageAppStatus sind @Deprecated. Sie arbeiten nur auf Commerce-only Intents getaggt LOAN_APPLICATION und erstellen oder lesen Sie NICHT URLA AppMortgage Aufzeichnungen - gehalten für Back-Compat mit **************** aber neuer Code muss AppMortgageService + /api/security/mordgage-apps verwenden.

  18. · kamolos

    Scrubbable Tag-Nacht-Thema mit Sonnenmond SkyToggle

    - Kontinuierliche t [0,1] Szenepositionslaufwerke -25 CSS eigene Eigenschaften auf :root über lineare RGB-Interpolation zwischen Warm-Papier-Tag und aurora night anchors in lib/scene/palettes.ts - Standardwerte zur Ortszeit des Tages bei erstem Besuch; manuelle Override ist klebrig in einem Cookie, mit einer Uhr-Symbol-Taste, um wieder aktivieren Auto folgen - SSR ScenePainter backt die gelöste Palette vor dem ersten Mal so es gibt kein FOUC auf wiederkehrende Besuche; First-Besuch Auto-Modus erleichtert vom Tag in die Orts-Uhr t über 1,4s - SkyToggle: Zeiger-draggable Daumen, dessen Sonne-Mond-Glyphe rotiert reale Zeit mit t und morphs zwischen Sonne-mit-Rachen und Halbmond - PageGlow + StarField Umgebungsschichten: Bernstein-Sonnenglüh oben links bei Tag, kühles Mondglühen Ober-rechts in der Nacht, 80 gesäte Sterne verblassen in Vergangenheit Dämmerung und Augenzwinkern über reduziert-motion-bewusste Keyframe - MUI-Themenschalter bei t-0.5 Dusk Grenze; CssBaseline Körperfarbe liest von CSS vars so Interpolation bleibt - Drops die hart verschlossene dunkle Klasse + Farbschema; behebt zwei long-stale --surface-base (fehlendes Farb-Präfix) gradienten Fallbacks in JourneyCrest und CeremonyClient

  19. · kamolos

    Entlare Engagement/Achte/Verpflichtung UIDs

    AppMortgageDTO trägt jetzt die Commerce-Lifecycle-Identifier, dass die SecurityService Backend bevölkert jede Hypothek. KamoLOS nutzt sie noch nicht aktiv, aber sie durchzutippen bedeutet Zukunft Kreditnehmer-Neben-Zertifizierung ("Ihre Anwendung wurde verpflichtet") können die commerce-Schicht direkt verweisen, ohne das URLA-Modell durchzugehen.

  20. · kamo-internal

    Commerce Kontext anzeigen + Programme Einstellungen

    - / Anwendungsheld liest jetzt "Handel - Wohnhypotheken · URLA 2021" so Mitarbeiter sehen Hypothek als eine vertikale des Handels-Modul, nicht ein Standalone-Pipeline. - Neue Hypothekenprogramme Registerkarte unter Commerce-Einstellungen - Nur-Lese-Katalog von Darlehensprogramme (CONV/FHA/VA/...) mit aktiver Zustand- und Regelversion. Einstellungen niv aktualisiert in allen drei Standorten (Sub Topics, Routen, labelFor). - AppMortgageDTO/SummaryDTO + neuer ProgramDTO/LoanProgramCode Typen Spiegel die Share-lib-Änderungen (engagementUid / intentUid / EngagementUid). - HypothekAppsApi.listProgramme() trifft den bestehenden /programmen Endpunkt.

  21. · SecurityService

    Durchsetzung von LOS-Rechten + /Handel/Engagements Endpunkt

    - MortgageAppController: Jeder Endpunkt jetzt Gates auf RoleRightType. Reads erfordern LOS_VIEW_PIPELINE; Erstellung einer neuen Anwendung erfordert LOS_TAKE_APPLICATION; Bearbeitungen akzeptieren jede LOS-Schreibrolle (take / process / Unterschreiben / schließen / suspendieren); Löschen erfordert LOS_SUSPEND_OR_WITHDRAW. KamoLOS Service-Konto trägt bereits die volle LOS rechts gesetzt, so dass die Die Reise des Kreditnehmers ist nicht betroffen; die Benutzer des Personals werden nach ihrer Rolle abgesperrt. - CommerceEngagementController: neu GET **************** (Liste mit Typ/Status/Datum-Filter) und GET .../engagements/{uid' (detail), gated auf ACCESS_COMMERCE. Dies ist das vertikal-agnostische Gegenstück zur Hypotheken-apps Endpunkt - gleiches Drahtformat, ob Sie ein lesen Hypothek, eine Einzelhandelsbestellung oder eine Mietbuchung.

  22. · kamo-shared-library

    Wire URLA Hypothek in Engagement/Intent/Commitment

    Hypothek ist eine vertikale des Handelssystems - neben Einzelhandel, Vermietung, Service, Abonnement und Beschaffung. Dies verdrahtet die URLA-Fidelity Hypothek stapeln, um die Domain-agnostische Commerce Lebenszyklus so cross-vertikale Oberflächen (pipeline Dashboards, Analytics, Kundenportal) siehe Hypothek wie jede andere Engagement. - Anwendung: neues Engagement_id / intent_id / Engagement_id FKs (abzustimmend für alte Reihen). - ************ Stiefelriemen die org's MORTGAGE CommerceMarket + ein Angebot pro LoanProgramCode auf erste App erstellen; hängt Engagement+Intent an jede AppHortgage; spiegelt LoanFile.status auf Intent.status und Engagement.status; materialisiert ein Engagement auf FUNDED mit den Darlehensbedingungen Schnappschüsse. Idempotent Ende-zu-Ende. - AppMortgageService: erstellenBlank/createFromLead an das Engagement heften; setSelectedProgramCode aktualisiert das Angebot des Intent. - LoanPipelineService.Übergangsspiegel nach jedem Übergang; Handel Spiegelausfälle blockieren die URLA-Progression nicht (log + weiter). - AppMortgageDTO / AppMortgageSummaryDTO aussetzen EngagementUid / VerpflichtungUid für das Frontend.

  23. · kamo-internal

    Organizer-Tab mit Ordnern, Separatoren, erzeugt docs hinzufügen

    Fügt den Organizer zum Doc-Manager hinzu: - Neuer Reiter "Organizer" (Position 4) mit einer Ordnerliste + Editor Split-Ansicht; vorhandene Tabs verschieben rechts - "Hinzufügen zum Organizer"-Action auf jeder Doc-Reihe öffnet einen Binderpflücker (bestehende Ordner oder neue erstellen) - Binder Editor: Drag-to-reorder-Elemente (HTML5 DnD), hinzufügen Seite Separator (Farbe + Label über ModernColorPicker), Generated Doc hinzufügen (Cover Page, Inhaltsverzeichnis, Fotoalbum, Wortzählung) - Photo Album unterstützt Upload-New-Fotos (auch zum Doc-Manager hinzugefügt) und browse-existing - Binderweite Modifikatoren-Panel, das die Esign-Modifier-Form (Seitennummern, Label, Wasserzeichen) verwenden - Per-doc-instance Modifier überschreibt über einen Pro-Punkt-Dialog - Vorschau-Modus macht die zusammengeführte PDF in einem iframe - Download-Button ruft /api/docs/binders/{id'/render Neue Zustand Store-NutzungBinderStore, REST Client App/utils/binderApi.ts und Next.js Proxy-Routen unter /api/docs/binders/* Spiegelung des vorhandenen Bild-Proxy-Musters.

  24. · DocsService

    Organizer Backend hinzufügen - CRUD, render, erzeugte Dokumente

    Neue REST Oberfläche unter /api/docs/binder für das Organizer Feature: - BinderController: CRUD, item add/update/remove/reorder, share, render - BinderService: org-scoped access checks, owner/share/template Sichtbarkeit, Item Position Management - BinderRenderer: Zwei-Pass-Merge (aufgeschoben ToC/WordCount), Anwendung pro Instanz und Binder-weite Modifikatoren über gemeinsame PdfBuildUtils - Generated-doc-Registry mit Renderern für Cover Page, Inhaltsverzeichnis, Word Count, Photo Album (verwendet MinIO für Bild-Bytes) Wiederverwendet ************ für esign-modifizierte Dokumente und ************ für Zugangskontrolle.

  25. · kamo-shared-library

    Binder/BinderItem/BinderItem/BinderShare Einheiten und Repositorien hinzufügen

    Fügt die Persistenz-Schicht für die neue doc-manager Organizer-Funktion hinzu: - Binder (Long id, Eigentümermitglied, org-scoped, isTemplate, binder-wide modifierJson) - BinderShare (UUID, EmpfängermitgliedId, READ/WRITE Rolle) - Spring Data JPA-Repositories mit org-scoped Abfragen und einer "sichtbaren Mitglied"-Gewerkschaft (im Besitz + geteilt + Vorlage) Schema wird automatisch von KamoInitializerService über Hibernate's ddl-auto aufgenommen.

  26. · kamolos

    Glimmer das Testbanner, passen Sie den Blickport, fügen Sie Cookie-Zustimmung

    - TestModeBanner veröffentlicht seine Höhe zu --kamolos-banner-h und globals.css subtrahiert es von min-h-screen, so dass die Home-Ansicht keine länger überläuft den Blick durch die Pixel des Banners. - Banner gewinnt einen gleitenden Amberschimmer + langsamen Schattenpuls, so dass es liest sich als aktive Warnung, die die Marketing-Vorschau-Bar widerspiegelt. - Neue CookieConsentBanner (Accept All / Manage mit Analytik toggle), von der Marketing-Version wiederversetzt, um die dunkle verwenden aurora Oberfläche + pro Mieter --org-primary / --org-gradient.

  27. · kamolos

    Surface SAFE Act NMLS IDs für Kreditgeber + zugewiesen LO

    Fügt LoContactCard mit Avatar, Präsenz Puls, verifiziert NMLS Link, und Call/E-Mail/Nachricht Aktionen in der oberen linken Linken des Helden und wenden Oberflächen, so der lizenzierte Kreditgeber des Kreditnehmers (Name + NMLS ID) ist immer ein Tippen Sie weg - erforderlich nach SAFE Act -1503 und Reg Z 1026,36(g). Der Leihgeber Footer's NMLS wird zu einer "lizenzierten · NMLS #" Trust Pille gefördert, und useAssignedLO gibt jetzt eine gefälschte Demo LO bis zur Loan-Datei LO-Beauftragung zurück Ländereien. LoGuideChip kehrt zur Voice-only zurück, da die LO eine eigene Oberfläche hat.

  28. · kamolos

    Demo-Kreditgeber Auto-Ladungen, wenn kein echter Mieter löst

    Der Grund "noch nicht gebrandmarkt" - kein echter Mieter oder eine echte Mieter oder eine solche Hostname getestet, so dass die SSR holen zurück null und jeder Kreditgeber-Federnseite fiel durch die gebündelten Kamo Ausfälle. Die Branding-System funktionierte; es hatte einfach nichts zu markieren MIT. Jetzt Schiffe eine komplette Demo-Kreditgeber, der automatisch-loadet als Fallback, wenn die reale holen gibt nichts zurück UND Stubs sind erlaubt **************** die Standardeinstellung). Produktion mit Stubs deaktiviert fällt immer noch durch nackte Kamo Standardwerte, so dass wir nicht je versenden einen echten Kreditnehmer zu "Apex Mortgage". - lib/org/demoOrg.ts: "Apex Hypothek" - Burgunder (#8B1538) primär und Gold (#D4A24C) sekundär, absichtlich weit von Polarlicht so die Markeneffekte sind unverkennbar. Volle Bevölkerung: Slogan ("Drei Generationen von immer Sie nach Hause."), NMLS #123456, Support-Telefon + E-Mail, Jahr 1989 gegründet, beide EHO + EHL Marken, linear-135 Gradienten Richtung. Neuer AssetBasePath: '/demo-lender' auf der Org Typ sagt ThemeLogo an, um /demo-lender/logo-full.svg vor versuchen MinIO oder den globalen Fallback. - ************ + logo.svg: echte Apex Hypothek Wortmarke und Berg-Peak-Marke im Burgunder - Goldgefälle. Nicht nur ein Wordmark, eine tatsächliche Lockup. - lib/org/fetchOrganization.ts: liefert DEMO_ORG zurück, wenn dies vorgeschaltet ist unerreichbar oder keine Org ist registriert UND stubs erlauben es. Real-Host / Real-Mieter Auflösung gewinnt, wenn vorhanden. - Komponenten/ThemeLogo.tsx: consults useOrg().assetBasePath und stellt dieses Präfix an die Spitze der Kandidatenkette. Demo-Kreditgeber Logo landet; echte Mieter MinIO Vermögenswerte noch lösen erste, wenn Bevölkert. - app/layout.tsx: <link rel="preload""" verfolgt die gleiche Prioritätsstellung, so die SSR Preload zielt auf die Demo-Darsteller-Logo, wenn Demo-Modus ist aktiv. - ************, wenn org.id === 'demo-apex', das Banner ruft "Zeigen der Demo-Kreditgeber (keine Mieter oderg konfiguriert für diesen Host)", damit Tester wissen, welche Marke sie sind Sehen ist Konserven. Build 32/32, 140 Tests bestehen. Beladen Sie die Kreditnehmer-App und Sie sollten Sehen Sie nun das Apex Hypotheken-Logo + Name in der Kopfzeile, der Burgunder und Gold in den CTAs und Bändern, "Willkommen zu Apex Hypothek". auf der Landungsheld, NMLS #123456 + EHO + EHL in der Fußrolle, "Call Apex Hypothek (800) 555-2739" im Hilfeblatt.

  29. · kamolos

    Machen Sie den Kreditgeber zur Hauptmarke, nicht zu einem Akzent

    Reframes die Kreditnehmer-App von "Kamo Produkt mit Kreditgeber Akzente" zu "Kreditgut, Kamo als Motor". Jede Oberfläche führt jetzt mit die Identität des Kreditgebers. - LenderLockup ************ - kanonischer Kreditgeber Markenzeichen überall verwendet. Waage sm . md . lg xl Held. Paare das Logo (oder Wordmark Fallback in der Hauptfarbe des Kreditgebers) mit der Name des Kreditgebers; optionaler Slogan unten. Wird von jeder Oberfläche, die muss sich fühlen "Ich bin bei MY Kreditgeber-Website". - BorrowerHeader - Header Bar wächst auf h-14/h-16, Logo + Kreditgeber Name immer sichtbar (Größe="md" forceWordmark), Drop-Shad in der Kreditgeber primär. Die bisherige winzige 24px-Eckmarke ist weg. Eine neue Click-to-Call-Telefon-Taste sitzt neben Hilfe mit dem Kreditgeber Primärer Rand + glühen; auf Handy bricht es zu einer Icon-Taste. Die Akzentband ist 4px (war 2px) und schwenkt immer noch die Leihgeber Gradiente. - Landung Seite Held zentriert, dominiert von der Kreditgeber Lockup am Helden Skalieren Sie in eine Glaskarte mit starkem --Orteprimäres Glanz. Oben der Falte lautet "Welcome to {LenderName]". (der gradient-clipped Kreditgeber Name ist die Überschrift), mit dem Slogan des Kreditgebers als Untertitel. Eine farbige Pille sagt "{Lender] · Leihen onboarding" statt der generische "Kamoville". Der CTA-Knopf ist größer und trägt eine starke --org-primary äußerer Schein. - LenderFooter - vollständige Namensnennung Reihe: Kreditgeber Name + NMLS Verbraucher Zugriffslink + Telefon + E-Mail + Website + EHO/EHL-Mark. Copyright-Leitung lautet "© 2023"2026 {LenderName]. Alle Rechte vorbehalten". mit einem winzigen "Onboarding by Kamo" Kredit. Sichtbar über Heldenoberflächen. - HeroBrandIntro - Splash-Wohnungen 3.4s (war 2.4s), Shows beim ersten Besuch UND jede 30-mine Leerlauf-Rückkehr (war einmal pro Sitzung). Logo-Karte wächst zu size="hero" innen eine stärkere Glaskarte mit einer schwereren --org-primary äußerer Schein. "Willkommen in {LenderName]". ist die Überschrift; Der Slogan des Kreditgebers ist der Untertitel. - XML-Daten generieren . Next.js Titelvorlage ist jetzt .%s · {LenderName] mit dem Standard ist nur der Kreditgeber-Name. Jede Kinderseite liest Kreditgeber-erste in der Browser-Tab und OG-Karten. siteName, Titel, und Beschreibung alle fließen aus dem org-Rekord. Build 32/32, 140 Tests bestehen. Wenn Ihr Mieter config hat bestickten Tagline / nmlsId / phoneSupport / E-Support / yearEst / colorPri / colorSec / logo Asset, die Website sieht nun eindeutig wie das Produkt Ihres Kreditgebers aus. Mit nichts Bevölkert degradiert es anmutig zu "Kamo"-Standards.

  30. · InitializerService

    Migration für Kreditnehmer-Marke + Offenlegung Spalten

    Fügt die sieben annullige Spalten der kamo-shared-Bibliothek Organisation Unternehmen erklärt jetzt (TAGLINE / NMLS_ID / PHONE_SUPPORT / EMAIL_SUPPORT / EQUAL_HOUSING_DISCLOSURE / ON_PRIMARY_TEXT / GRADIENT_DIRECTION) so die Kamo-los Kreditnehmer App kann abholen Kreditgeber Branding ohne Schema Fehler auf bestehenden Orgs-Reihen. @Order(35) läuft nach LogoFullExtMigrationRunner (30) und früher LeadCompanyColumnRunner (40). Idempotent über ADD COLUMN IF NOT EXISTS; sicher zu re-run. Pro Projektrichtlinie wird diese Datei hier nicht ausgeführt . KamoInitializerService wird vom Benutzer gestartet.

Euer Universum wartet.

Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.

Für immer kostenlos – keine Kreditkarte erforderlich