Nenda kwenye maudhui
KAMOUniverse

Mabadiliko

Nini kipya.

Kila kuboresha jukwaa, kama ni meli.

  1. · kamo-signer-monorepo

    Locale-aware date formatting and per-locale metadata

  2. · kamo-signer-monorepo

    Add language switcher to the signer top bar

    Endonym-labelled menu over the 22 supported locales. Preserves the query string on switch — ?t= is the signer's only credential.

  3. · kamo-signer-monorepo

    Mpangilio wa kioo wa RTL locales kupitia stylis-plugin-rtl

    The MUI theme direction alone flips component logic but leaves physical CSS properties untouched, so Arabic rendered with LTR spacing. Swaps the Emotion cache key and plugins on direction. Also adds stylis as a direct dependency (previously only transitive via Emotion) and @types/stylis, since this repo's isolated pnpm node-linker does not resolve phantom dependencies and stylis 4.2.0 ships no bundled type declarations.

  4. · kamo-signer-monorepo

    Route the signer under /{locale} with next-intl middleware

    Inaongeza i18n/routing.ts (localePrefix daima), i18n/navigation.ts, na middleware.ts, na hatua mti njia chini ya src/app/[locale]/ ombi.ts sasa kutatua kutoka URL badala ya kamo-locale cookie, Weka nyuma ya kuanguka kwa Kiingereza. Viungo bora vya saini vinaendelea kufanya kazi: midware 307-kuelekeza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

  5. · kamo-internal

    Blink the mail icon while an unread indicator is showing

    The unread badge alone was easy to miss in the top bar. NavItemButton gains a blinkIcon prop that pulses the icon (and its badge) — kept distinct from the existing `blink`, which only pulses the lead-alert dot — and MailButton turns it on for as long as unreadCount > 0. Honors prefers-reduced-motion.

  6. · kamo-marketing

    Starter Imefungwa na Watumiaji wa 5, Biashara katika 25

    Repositions the published seat caps on /pricing (and the calculator, JSON-LD offers, and llms.txt summaries) to match the subscription catalog: Starter 25 -> 5 users, Business 100 -> 25 users.

  7. · kamo-internal

    Clarify MeridianLink market secret is the inbound-sync service credential (per-LO logins on member profile)

  8. · kamo-internal

    MeridianLink loan-officer credential card on member profile + lead-button LO pre-warn

    Phase L3 of the MeridianLink LOS loan-officer mapping (per §3.4-3.6 of the design spec): - New member-scoped LOS-credential proxy **************** and typed client **************** types in app/lib/los/types.ts) forwarding GET/PUT/DELETE/POST to SecurityService. - New "MeridianLink Loan Officer Access" SectionCard on **************** placed right after State-Based Licensing. Visible only when the member has an NMLS id AND at least one org market has an active MeridianLink connection; gated on the existing **************** rights. One row per market (username/secret/enabled/status chip/Test); the secret is write-only and never rendered back. - Lead-view Create Application button now pre-warns: when a lead has no LOS application yet and its assigned loan officer isn't linked to MeridianLink, the button is disabled with a tooltip naming the LO instead of only failing on click. Extends MarketConfig with losLoName/losLoLinked (defensive defaults for older SecurityService builds). The backend 422 remains the actual guarantee.

  9. · SecurityService

    LO-scoped kuunda (kuzuia ikiwa unmapped) + mwanachama MeridianLink credential API + soko-config LO hali ya kiungo

    Awamu ya L2 ya mpango wa ramani wa MeridianLink (kamo-internal Design) Kwa mfano, *** §3.3-3.6), kujengwa juu ya L1 pamoja-lib schema / resolver (MarketLosUserCredential, Kwa mfano, *** Kila kitu kinakwenda kwa kasi. ya kusubiri). ****** sasa anatengeneza mkopo kama kiongozi wa Afisa wa mkopo kupitia kutatuaForMember badala ya huduma ya pamoja ya uunganisho Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... Kwa mfano, kifungu cha 422; LO iliyopangwa na mtumiaji wa MeridianLink -> 422 na inayoweza kutekelezwa Ujumbe. ← Previous Story Mambo 10 ya kuzingatia kabla ya kuingia kwenye mahusiano LO ya ukaguzi, kwa ukaguzi wa awali, hivyo jaribio la kuunda duplicate haliwezi kurudi nyuma 403/422 mbele ya 409. zaidi ya mwaka mmoja uliopita Kwa mfano, *** [TD="width: 456"] [TD="width: 456"] [FONT=&](2)[/FONT][FONT=&]Bila kuathiri masharti ya kifungu kidogo (1) Udhibiti wa leseni (STATE LICENSING VIEW / EDIT) Mwenyezi Mungu (swt). Kuandika kwa siri kupitia Jukwaa la Siri, siri tupu inaendelea ciphertext iliyohifadhiwa, ina mtazamo wa pekee wa Credential, kufuta laini, kamwe Hatua ya majaribio. - LeadController soko-config faida losLoName /losLoLinked hivyo kuongoza-view Unaweza kucheza kabla ya kucheza 422. - Kuongeza BaseLosController #unprocessable (42 msaada). TDD: Majaribio ya 54 katika LeadLosControllerTest (kupanuliwa) Kwa mfano, *** Na kwa kipindi hicho Bw. Udhibiti wa KiongoziMarketConfigTest (kupanuliwa) - yote ya kijani. L3 (kimo ndani ya UI + Kazi ya pili ni ufuatiliaji wa kazi.

  10. · kamo-shared-library

    Per-member MeridianLink credential (MarketLosUserCredential) + resolveForMember + LO-scoped outbound push

  11. · kamo-internal

    Bulk Email campaigns UI — grid, editor, provider tab, leads action

    Adds the org-level bulk email marketing surface under /marketing/email: - Bulk Email tab (after Social Media) + campaigns AG Grid workspace with live status/sent-vs-total counts over STOMP (/topic/campaigns/{orgId}); fixes the marketing tab gate/active logic for nested routes. - Campaign editor (/marketing/email/campaign): Quill compose reusing the signature header/footer system + merge tokens, recipients from file upload (email-column map), lead/account/application IDs (resolve endpoint), or manual entry, a preflight panel (skip/opt-out/masked/invalid breakdown + CAN-SPAM guards), and send/draft/schedule + throttle (all-at-once / evenly / naturalized + warm-up). Accepts the leads bulk-email handoff. - Bulk Email Provider settings tab (separate SMTP config + real Send Test Email). - Leads: "Bulk email (N)" action on multi-select → campaign editor. - Departments: email + phone/extension fields; behavior-labeling: company email. - Client APIs (emailCampaignApi, bulkEmailProviderApi, recipientResolveApi), useEmailCampaignsWebSocket hook, and the security resolve proxy route.

  12. · SecurityService

    Bulk-email recipient resolution + department contact fields

    - **************** POST /api/security/marketing-email/ recipients/resolve turns lead/account/application IDs into email recipients. Gated on MANAGE_BULK_EMAIL; applies lead contact masking under the sender (masked leads silently skipped), Account.acceptsMarketing opt-in gate, borrower email for applications, syntactic validation, cross-source dedupe + a full skip/count breakdown. - DepartmentController: thread the new email/phone/extension request fields into DepartmentService create/update.

  13. · kamo-shared-library

    Shared-lib support for bulk-email recipient resolution + company contact email

    - **************** contactEmail branch (company contact email editable via PUT /api/security/org, used as company-scope campaign From) - ApplicationRepository: polymorphic batch finder (findByUidInAndOrganization_Id) to resolve an Application's borrower email for campaign recipients - AccountBorrowerPartyRepository: findByAccount_UidIn batch finder (no N+1) Additive only; packages already covered by ****************

  14. · EmailService

    Bulk email campaign backend — provider, dispatcher, compliance, realtime

    Backend for org-level bulk email campaigns, entirely separate from the everyday email provider so it can't be throttled/blocklisted alongside business mail: - Bulk SMTP provider (BulkEmailProviderService + BulkProviderController): encrypted org config reusing EmailProviderEncryptionService; real Send Test Email (opens a live SMTP session and sends). - Campaign CRUD + status machine (CampaignService/Controller): draft, schedule, send-now, pause, resume, cancel, duplicate; recipient materialization with dedupe, suppression tagging, per-recipient unsubscribe tokens; CAN-SPAM gate (subject + physical address + >=1 recipient required to leave draft). - Throttled dispatcher (CampaignDispatcher @Scheduled): all-at-once / evenly-over-window / naturalized-random pacing via per-recipient nextReleaseAt (restart-safe), warm-up ramp on maxPerHour, hard-bounce -> auto-suppress. - Compliance: SuppressionService, public one-click RFC 8058 UnsubscribeController (+ List-Unsubscribe headers), suppression re-checked at send. - Real-time: direct STOMP push to /topic/campaigns/{orgId} + subscribe-time org ChannelInterceptor (closes cross-tenant topic exposure). - EmailSmtpService: additive extraHeaders send() overload (List-Unsubscribe).

  15. · kamo-shared-library

    ECOA /FCRA taarifa ya kuchukua hatua + wakati wa kuridhisha

    The issuance mechanism's shared-lib half. ComplianceTimerService gains **************** — flips only ARMED ECOA_AA timers to SATISFIED (leaves COUNTEROFFER/INCOMPLETE_NOA and already-satisfied untouched), so a SENT adverse-action notice can close the Reg B clock while an un-sent one stays ARMED for the breach sweep. Two canonical email templates — ADVERSE_ACTION_NOTICE (ECOA/Reg B + FCRA §615(a)) and RISK_BASED_PRICING_NOTICE (FCRA §615(h)/Reg V) — registered in CanonicalTemplateLoader. Both are STRUCTURAL scaffolds only: a dashed [[ YOUR COMPLIANCE-APPROVED ... ]] placeholder the creditor's counsel fills in, plus structured-data variables (applicant, date, principal reasons / trigger). Kamo supplies no operative legal notice prose.

  16. · kamo-internal

    Add Master Machine remote-desktop launcher (god-gated)

    Tatu-click desktop karibu na Linux / Windows: navRegistry kuingia (ComputerIcon), 'bwana' lengo kwa njia ya waziKamoDesktop + njia ya wakala wa SSO, na kupeleka katika washughulikiaji wote watatu wa hatua.

  17. · SecurityService

    Add "master" target for Master Machine SSO deep-link

    kujengaAutoConnectUrl sasa mints Master Machine uhusiano (KAMO GUAC MASTER HOSTNAME, default 192.168.4.46); ni pamoja na katika kila ishara kwa ajili ya matumizi ya kikao. Kept katika sync na Kluster Services bootstrap SQL.

  18. · KlusterServices

    Kuongeza "Master Machine" (kamo-dev-1) RDP kifaa kwa Guacamole

    Local Kubuntu workstation shares its live Plasma/Wayland session over RDP via KRdp. Adds an idempotent bootstrap SQL connection (192.168.4.46:3389, sage/shared pw, security=any, ignore-cert, color-depth 24) and READ grant. Includes design spec.

  19. · kamo-shared-library

    Mashirika ya kampeni ya wingi wa barua pepe + idara / mashirika ya kuwasiliana

    Adds the shared-library foundation for org-level bulk email campaigns: - OrgBulkEmailProviderEntity (separate from everyday provider; UNIQUE org_id) - EmailCampaignEntity / EmailCampaignRecipientEntity (+ status/scope/throttle/ source enums) modeling the durable per-recipient send queue - EmailSuppressionEntity (CAN-SPAM suppression list) - Department: email + phone/extension (EmbPhoneNumber) contact fields - Organization: contactEmail (company-scope campaign From default) - RoleRightType: VIEW_BULK_EMAIL(175), MANAGE_BULK_EMAIL(176) under MARKETING All new packages sit under com.kamo.z.shared.email.* (already covered by KamoInitializer **************** Compiles cleanly.

  20. · kamo-shared-library

    STEWARD_TASK_ROUTED canonical template

    The routed-decision steward notification needs a canonical email template. Registers STEWARD_TASK_ROUTED in CANONICAL_KEYS with its json/html pair; body carries the loan / decision / exception context and a steward-queue link. Content is org-authorable through the existing template system.

  21. · SecurityService

    Gateway relay kwa mint MERS MIN kwa mfuko wa kufunga

    POST **************** ownership-checked (requirePackageOrg) so a steward mints only for their own tenant. The upstream reads the 7-digit MERS Org ID from the tenant's MERS provider connection in the integrations tab; a 400 means MERS is unconfigured or the loan has no loan number.

  22. · kamo-internal

    Date-of-birth on lead view + create form

    Adds a "Date of Birth" field under Primary Contact on /leads/view/[id] using a MUI DatePicker that opens to the year grid first (openTo=year, disableFuture, min 1900) — the intuitive flow for birthdates — plus the same picker on the new-lead form. Date round-trips via date-fns parseISO/format (local, no UTC off-by-one). Display is privacy-gated on canViewContact; field is optional. Wires dateOfBirth through types, leadsApi create/update guards, and the import-wizard field list.

  23. · SecurityService

    Accept and gate contact date-of-birth (DOB)

    Maps `dateOfBirth` in the manual-import and vendor-intake field switches with a lenient multi-format parse (ISO plus common US M/d/yyyy forms; unparseable values leave DOB unset rather than throwing). Counts DOB as contact PII in requestTouchesContactInfo so editing it on another member's lead requires EDIT_LEAD_CONTACT_INFO_OTHERS. Backed by the new shared-lib Lead.dateOfBirth.

  24. · kamo-shared-library

    Add nullable contact date-of-birth to Lead

    Adds a contact-level `dateOfBirth` (java.time.LocalDate, DATE column) to the base Lead: entity + Create/Update/LeadDTO (fromLead), copied in LeadService create/update and both mortgage-subclass convert helpers so it survives a market switch. Tracked in the lead-history registry (Contact) and masked as PII in maskContactInfoFromOthers. Nullable, no default — safe ALTER ADD COLUMN.

  25. · kamo-internal

    Author document-requirement overlay rules from the steward console

    The "what documents does this loan need" rule matrix had no authoring surface. This adds a Document-requirement rules section to the Documents & Conditions screen (folded into the owning screen, not a new tab) where a steward lists, authors, and retires their tenant's overlay rules. The help copy is honest about scope: an overlay on top of the platform baseline and the AUS/agency findings (DU/LP/GUS), which remain the source of truth; a rule cannot approve a loan or clear a condition, and nothing here is a legal mandate. The form offers the 23 RequirementDriverType values and a free-text doc-type code (the backend validates it against the org's imaging catalog and returns a clear inline 400 if the org can't collect it — no hardcoded doc list). A legal-wall badge and blocks-advancement vs advisory badge render on each rule; Retire confirms first.

  26. · SecurityService

    Relay nyaraka zinazohitajika overlay-utawala

    Relays POST/GET/retire on **************** to MLOSDocService, with organizationId server-stamped from the operator session so a steward authors and lists only their own tenant's overlay rules.

  27. · kamo-internal

    Hali ya mwandishi LLPAs kutoka kwa jopo la catalog

    Marekebisho hayawezi kutofautiana na mkopaji: MlosAdjustmentCondition hakuwa na mwandishi, na Injini ya bei hushughulikia marekebisho bila hali yoyote kama programu za kila siku, hivyo kila LLPA Kufukuzwa kwa kila mkopaji na mkopaji 780-FICO alichukua hit sawa na 620. Aina hii ya Waandishi wa marekebisho pamoja na masharti ambayo yanafungua. Iliyotolewa kwenye fomu ya lock-policy katika jopo moja: id ya kiwango cha-sheet-version, bei a a a a a a a a a a a a a a a ( a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a Ni bora kuchagua moja kwa moja. Mtazamaji anatazama walinzi wa seva - angalau moja Kila upande una upande wake, na upande wa pili una upande wake. Utawala hupatikana kwa njia ya mtandao badala ya safari ya pande zote.

  28. · kamo-internal

    Kuthibitisha barua pepe wakati reassigning kuongoza kutoka kwa mtazamo wa kuongoza

    Kadi ya uhamisho sasa inarudi kupitia inaongozaApi.reassignLead, ambayo inajitokeza Bendera ya Volta ya Juu Kwa upande wake Mbunge mpya wa Jimbo la Ludewa Mhe. ^ Tnn., “jina limehifadhiwa kwa njia ya barua pepe.” Kwa hakika, bila ya shaka, bila ya shaka, hisabu yao ni kali.

  29. · SecurityService

    Email the new owner when a single lead is reassigned

    Inaonyesha njia kubwa ya kadi ya ishara ya kuongoza. Wakati wa kuongoza Inaongoza kwa mwanachama tofauti, mwanachama huyo sasa anapata LEADS ASSIGNED Barua pepe (count 1) mtiririko wingi hutuma. Bora zaidi - baada ya kumwagilia. update na kamwe kushindwa. Moto wa milele uko dhahiri kwa yeyote anayedhulumu umma. Haibadilika (kwa hivyo uhariri maelezo ya mawasiliano hutuma chochote), na kuruka mwenyewe - Afisa anayedai kuongoza kwa kujipangia mwenyewe hana sababu ya barua pepe wenyewe. Hatua hiyo imeungwa mkono na Umoja wa Mataifa, ili kuhakikisha kuwa Mmiliki wa nyumba hiyo ameachiwa huru. Uongozi wa kabla ya update sasa unachukuliwa mara moja na kutumika tena kwa wote authz na Ukamataji wa awali, badala ya tu ndani ya tawi lisilo la Mungu authz.

  30. · SecurityService

    Relay conditional-LLPA authoring

    Maelezo ya Post ****** kupitia barua pepe ya msaada, hivyo Waandishi wa mawakili hurekebisha marekebisho ya masharti tu kwa mpangaji wao mwenyewe.

Ulimwengu wako unasubiri.

Kuanza bure katika dakika. Ongeza bidhaa wakati wowote wewe ni tayari - hakuna uhamiaji, hakuna logins mpya.

Bure milele - hakuna kadi ya mkopo inahitajika