Nenda kwenye maudhui
KAMOUniverse

Mabadiliko

Nini kipya.

Kila kuboresha jukwaa, kama ni meli.

  1. · SecurityService

    Capital-markets steward read proxy for the Command Center

    Add an MLOS-named, read-only proxy that lets the kamo-internal Capital & Risk Command Center reach MLOSCapitalMarketsService without exposing the internal network or secret to the browser: - MlosBaseController: self-contained OTK-session helpers (org + operator/god gate). Does NOT extend the hard-money LOS base and introduces no LOS-named right — MLOS is a distinct system. - MlosCapitalMarketsController @ **************** resolves the operator org from the session, gates on operator (god-mode), injects the operator's own organizationId into the org-scoped MLOS reads (never a client value), and fail-closes the composite by-id reads against cross-org access. - MlosCapitalMarketsClient: RestTemplate to kamomloscapitalmarkets-service with the shared X-Internal-Auth secret (organizationId passed as query param). - configmap: mlos.capital-markets.url (env-overridable). Reuses the already-wired internal.auth.secret. Reached via APIService's blanket /api/security/** relay.

  2. · kamo-internal

    MLOS Capital & Risk Command Center steward console

    Add the AI-native mortgage steward console under /commerce (MORTGAGE market tab), replacing the placeholder intents/commitments sub-tabs with MortgageStewardSection + inner steward-screen tabs. First screen: the Capital & Risk Command Center on the shipped MLOSCapitalMarketsService reads (locks by status/scenario + pipeline-funding P(fund) p5/p50/p95), currently fixture-backed behind a typed client (a one-file swap to the live read-path). - Reusable full-width console kit: ConsoleShell, SectionCard, KpiTile, StatusPill + motion wrappers (CountUp, Stagger, Crossfade) — reduced-motion aware, white-label via --color-primary. - Signature Funding Probability Fan (p5/median/p95), filterable lock pipeline with expiry-tone countdowns, lock-detail drawer (lifecycle timeline + AI decision rationale), segment breakdown, honest "coming soon" strip. - Keyboard/ARIA on all interactive rows, WCAG-AA contrast, next-intl throughout.

  3. · kamo-internal

    System Wide toggle + credit-balance editor + cascade filter; history member filter/links/pagination; inject icon+INJECT confirm

    s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s Kazi / kupunguzwa kwa muda; usawa wa mkopo Tumia the-capable InfinityCell (chini invalidates, is majani kama-is); Bidhaa filter s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s (s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s - / maelekezo / hadithi: filter ya mwanachama pekee (VIEW LEADS wamiliki, alfabeti), ID inayoongoza Kuwasiliana jina kiungo kwa kuongoza, full-upande pagination. - / maelekezo / inapatikana: Mwongozo wa Mtihani wa Inject sasa ni kifungo cha icon tu na tooltip. Uthibitisho wa Dialog: Pro ya changamoto ya hiari (Inject inatumia 'INJECT'); mtiririko wa kuondolewa Weka maneno ya random bila kubadilika.

  4. · SecurityService

    Kuingiza mfumo mzima, watazamaji wa kuongoza, hariri ya usawa wa mkopo, pagination historia

    - / mikopo / mfumo mzima GET +PATCH (org credit-suspend), / mikopo / washauri wa kuongoza (VIEW LEADS) Wamiliki wa incl. ruzuku-yote) kwa filter ya mwanachama wa historia. - Uhariri wa usawa wa mikopo kwenye PATCH /allotments / {id}: idadi hupungua kupitia ubatili, null = ∞ - / maelekezo / hadithi sasa paginated (ukurasa / ukubwa / jumla) + anarudi kuongoza contactName. - inapatikanaSummary + inapatikana () kukubalika kwa mkopo wa lango kwenye swichi ya org System Wide.

  5. · kamo-shared-library

    System-wide credit suspend, credit-balance invalidation, paginated history

    - OrgLeadConfig (jangwa jipya la ORG LEAD CONFIG): swichi ya mfumo mzima ambayo inasimamisha Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... matokeo ya mtihani. Kwa mfano, *** + repo kuthibitisha inCreditsByIds: kupunguza usawa wa mwanachama inapatikana kwa lengo kwa kufuta ziada ya kwanza. - Mikopo ya History Service: Ushauri wa upande wa seva (kupata HistoryPage /PagedHistory) + Jina la anwani ya kuingia (batch-resolved kwa ukurasa unaoonekana tu).

  6. · kamo-internal

    Split Lead Credits into Available/History/Manage Credits actions

    Inaamuru / kuongoza hatua za juu za kulia kwa: Ongeza Kiongozi Mpya, Inaongoza Inapatikana ( → / maelekezo / inapatikana, Alama ya Bolt + kiashiria cha upatikanaji wa moja kwa moja, kilichoonyeshwa na Matumizi / Receive, Historia ( → / viongozi / hadithi, icon ya historia), Kusimamia Mikopo ( → / maelekezo / mikopo, kadi ya mikopo icon, mameneja tu). Kugeuka kuwa Kifungo cha moja cha 'Lead Credits' ambacho kiliashiria / maelekezo / maagizo / kura za maoni zinaelekeza.

  7. · kamo-internal

    Hatua ya Mtihani wa Kuongoza kwenye / kuongoza / inapatikana (wasimamizi tu)

    Inaongeza kifungo cha 'Kuongoza kwa Mtihani' badala ya Kukubali kwa kila muuzaji / bidhaa, iliyoonyeshwa tu Picha zote na Wizara ya Mambo ya Ndani. Inafungua mazungumzo ya kuthibitisha, kisha inaandika kwenye sindano mpya Endpoint; ardhi ya kuongoza ya synthetic katika bwawa na refreshes ya gridi ya kuishi.

  8. · SecurityService

    Inject test lead + fix Manage-Credits list for grant-all admins

    - New POST **************** (MANAGE_CREDITS): creates a synthetic 'Void > Test Lead' (John Doe / 555-555-5555 / noreply@<org base domain>) with requiresAssignment=true into the given market/vendor/product auto-assignment pool so the Accept flow can be exercised end-to-end; publishes availability for live updates. - Manage-Credits eligible-member list now unions grant-all members (owners/admins whose *** is populated with every right) with the explicit-rights query, so a grant-all admin who holds SPEND_RECEIVE in-session but has no explicit MemberRightsApplied row now appears in the list. - Extracted the session's grant-all detection into GrantAllRoleResolver and reuse it in both PostAuth***Service (no behavior change) and LeadCreditController.

  9. · kamo-shared-library

    Hifadhi ya awali uploaded faili muhimu juu ya LeadImport kukimbia

    Adds SOURCE_FILE_KEY + SOURCE_FILE_CONTENT_TYPE columns so a run references the original file archived in MinIO (KamoInitializer adds the columns on next run).

  10. · kamo-internal

    Archive & download faili ya awali iliyoingizwa

    On Mwanzo Import faili ghafi ni uploaded (bora-effort) na ufunguo wake kupita kwa kuagiza POST; Uagizaji wa zamani unaonyesha kifungo cha Download kwa anaendesha na faili iliyohifadhiwa. +2 Wakala wa Usajili njia (chanzo cha faili upload + download), +2 i18n funguo.

  11. · SecurityService

    Faili ya awali ya MinIO + download mwisho

    Injects MinIOStorageService; POST /source-file stores the raw upload in the private internal bucket; GET /{id}/source-file streams it back (org-checked); the key is threaded through the import POST and persistImportRun; GET history now returns hasSourceFile.

  12. · kamo-internal

    Import Templates + Past Imports sub-tabs, auto-detect, re-import

    - Sub-tab bar in LeadManualImportManager: Import Leads | Import Templates | Past Imports - LeadImportTemplateManager: template list/create/edit/delete + upload-against-template (import-as-is or adjust mapping); reuses FieldMappingInterface in file-agnostic mode - LeadImportHistoryManager: run list with imported/total + error icon, error report, re-import failed rows (optional mapping adjust) - Auto-detect: on file parse, POST headers to /detect; pick a matched template or make new; save-as-template at the end of a fresh import - FieldMappingInterface: parsedData optional + headers prop for template-edit mode - Next proxy routes for lead-import-templates/* and ****************

  13. · SecurityService

    Persist runs/records, template CRUD, header auto-detect & re-import

    - LeadImportPersistenceService: header normalize+SHA3 fingerprint (ordered/unordered), mapping/row JSON round-trips, persist run + non-success records, template detect (Jaccard) - LeadImportTemplateController: **************** CRUD + /detect (org-scoped) - LeadImportController: real paged GET history; POST persists the run + non-success rows and returns the real importId (fileName/templateId via query param); +GET /{id}/records and POST /{id}/reimport-failed; processImport refactored to emit per-row RowOutcomes (global row index, createdLeadUid) while keeping the Phase-0 correctness fixes

  14. · kamo-internal

    Live availability indicator on the Lead Credits button

    Mirror the NavPri Leads indicator on the /leads 'Lead Credits' action: a green/red status dot (green = a lead is acceptable now via FFA or credit, red = none) and a green pulse/glow when an acceptable credit lead is waiting. Gated on the SPEND_RECEIVE_LEAD_CREDIT signal (leadAlert.active). Green is fixed here (this is the credits action), unlike the theme-agnostic white NavPri blink.

  15. · kamo-internal

    Live NavPri lead alert — green/red dot, blink, fire popup, edge trim

    - LeadAlertProvider (global, mounted at NavPri level): WS-driven /available-summary; drives all state - NavPri Leads icon: green dot (can accept) / red (cannot); noticeable blink when a credit lead is acceptable. Gated entirely on SPEND_RECEIVE_LEAD_CREDIT — no indicator/popup without the right. - NewLeadPopup: center-screen fire popup (flame + animated flames), Accept Lead / Not Now (both disabled 1s), auto-closes with a 1s fade if the pool is drained, no backdrop-close. Fires only on a NEW acceptable credit lead when nav-top status is AVAILABLE. - LiveEdgeTrim: kamo-marketing LIVE shimmer wrapped around all 4 screen edges while the popup is up. All live over NATS->STOMP.

  16. · SecurityService

    GET /leads/available-summary for the live NavPri lead alert

    Aggregates the caller acceptability across all active markets (comment gate + credit/FFA/ daily-spend rules). Returns hasAcceptable / hasAcceptableCredit / blockedByComments / topCredit. Returns all-false for members without SPEND_RECEIVE_LEAD_CREDIT.

  17. · kamo-shared-library

    Persistence spine for import templates, runs & per-row records

    Replaces the empty stub entities with real @Entity classes (modeled on the LeadIntake* precedent: UUID id, gen_random_uuid, DB-default timestamps, statusId + @Transient enum) plus repositories, so manual-import templates, past-import history and failed-row re-import can persist: - LeadImportTemplate (+ headerHashOrdered/Unordered fingerprint, usageCount, soft-delete) - LeadImportTemplateMapping **************** JSON) - LeadImport (run header: counts, mappings snapshot, template/source lineage) - LeadImportRecords (per non-success row: rawRowJson, status, errorMessage) - LeadImportRecordStatus enum + 4 repositories Tables are created by KamoInitializer (ddl-auto) on next run; services stay ddl-auto:none.

  18. · kamo-internal

    /account-style header+tabs, /leads Card containers, right gating

    - LeadsCreditLayout: gradient hero header + underline tabs (matches /account); filters+grid in rounded /leads-style Card; Available tab gated by SPEND_RECEIVE_LEAD_CREDIT - Manage Credits grid populated from members holding SPEND_RECEIVE (member x product matrix, create-on-edit); /leads-style filter container - /leads/available guards on the right; /leads/allotments redirect is right-aware - Lead view: Mark-as-Requires-Reassignment action (MARK right) + assignment reassign gated by REASSIGN_LEADS_MANUALLY - RoleRightType.ts: 3 new rights

  19. · SecurityService

    Mark-reassignment gated by MARK right; Manage-Credits returns members with Spend/Receive right

    LeadAcceptController: mark-reassignment requires MARK_LEADS_REQUIRES_ASSIGNMENT. LeadCreditController.manage: returns eligibleMemberIds (SPEND_RECEIVE_LEAD_CREDIT holders).

  20. · kamo-shared-library

    3 CRM rights + members-with-right query

    RoleRightType: SPEND_RECEIVE_LEAD_CREDIT(147), **************** REASSIGN_LEADS_MANUALLY(149) under CRM. **************** for listing members holding a right. Self-heals on SecurityService boot; no schema change.

  21. · InitializerService

    Codify §4.2 requirement-writer single-live partial-unique backstop

    Kwa mahitaji zaidi ya moja ya kuishi kwa kila (loan file uid, img doc type id, chama) Wajibu wa seli. [TD="width: 456"] [FONT=&](2)[/FONT][FONT=&]Bila kuathiri masharti ya kifungu kidogo (1) Haiwezi kukamata concurrent-instantiate (wote kusoma sifuri-maisha; hali + Mahitaji ya INSERT kwa meza tofauti na hakuna mgogoro wa CRDB). Sehemu hii ya kipekee Hufanya muundo wa maisha moja kwa moja. Maonyesho ya Mirror Kwa mfano, *** Nyaraka zinazohitajika ni @Enumerated (STRING). Kuwa makini ikiwa sio.

  22. · kamo-shared-library

    **************** (Accepted-Today column)

    Counts leads a member accepted via credit/FFA for a vendor product since a UTC instant (member local start-of-day). Consumed by LeadAcceptController /leads/available.

  23. · kamo-internal

    Credit-based lead assignment UI (available/history/credits)

    - /leads/available: real-time vendor/product grid, atomic Accept (routes to the lead), comment-gate blocked state, rows animate the moment a lead is claimable - /leads/history: live credit + assignment timeline with event-type filter - /leads/credits: MANAGE_CREDITS-gated grouped grid; ∞-capable Daily Allotment / Max Balance / Max Daily Spend / Credit Balance, Active/Suspended toggle, distribute, live blink - Shared LeadsCreditLayout (nav tabs + market sub-tabs + 'CRM not configured' states + Quick Tips) - STOMP hook (useCreditAssignmentWebSocket) over MediaService; useLeadMarkets - 10 proxy routes; **************** /leads/allotments now redirects tsc --noEmit: 0 errors in new files.

  24. · kamo-shared-library

    Add **************** for the registry decision half

    doc 11 §5.3 step 4 / §10 audit completeness — every registry mint/receipt/supersede emits a paired WORM AiDecision + LoanIdentifierEvent. This adds the AiFunction the **************** column was reserved for. Additive enum constant only (no version bump, no DDL: ai_function has no whitelist CHECK — the generic enum-CHECK sweep applies).

  25. · DaemonService

    Daily-allotment forfeit audit job (hourly, per-member timezone)

    Records FORFEITED rows for members with drip allotments who did not sign in on their completed local day. Idempotent, yields to GRANTED rows. Compiles clean (mvn).

  26. · MediaService

    Relay credit/lead-assignment NATS events to STOMP

    Subscribes security.leads.> and security.credits.>, mirrors each to /topic/... so the CRM front-end updates the Leads-Available grid, Manage-Credits fields, and history live. Compiles clean (mvn).

  27. · SecurityService

    Credit lead-assignment API ****************

    - LeadAcceptController: GET /leads/available, POST /leads/accept (atomic, comment-gated, FFA + credit), GET /leads/uncommented, POST /leads/{id}/mark-reassignment, GET /leads/history - LeadCreditController (MANAGE_CREDITS): GET /credits/manage grid, POST /credits/distribute, POST/PATCH /credits/allotments, POST /credits/daily-grant - CreditAssignmentPublisher: org-scoped NATS events **************** - PostAuth***Service: grant daily allotment on first sign-in of member's local day Compiles clean (mvn).

  28. · kamo-shared-library

    Credit-assignment orchestration services (shared-lib)

    - LeadAllotment.isInfiniteBalance (∞ credit balance → mint-on-the-fly at accept) - CreditLeadAssignmentService: atomic Accept-Lead (select→lock→recheck→claim, multi-instance safe), FFA bypass, comment gate, mark-for-reassignment (MARKED_FOR_REASSIGNMENT history) - DailyAllotmentService: per-member-timezone daily grant (idempotent) + forfeit audit - CreditAssignmentHistoryService: unified assignment + credit lifecycle timeline - **************** (org-wide credit history) Composes existing Lead*Service; no logic duplicated. Compiles clean (mvn).

  29. · kamo-shared-library

    Credit-assignment shared-lib helpers

    - **************** — powers the 'must comment before accepting another lead' gate (comment = member's non-removed MediaObj in lead stream) - **************** — per-vendor-product credit spend for the credit-based Accept Lead flow Compiles clean (mvn). Additive; consumed by the accept-orchestration service (next).

  30. · kamo-shared-library

    Credit lead-assignment data model (shared-lib)

    - Lead: requiresAssignment flag + markedForReassignmentAt/By (nullable; null actor = vendor/API import) - **************** + eventTypeForKey routing + registry descriptor - **************** (org-wide history via shared predicate builder) - RoleRightType.MANAGE_CREDITS (146, CRM group) — self-heals on SecurityService boot - DailyAllotmentGrant entity + repository (once-per-local-day grant, idempotent) - **************** per-member day boundary - LeadRepository: assignable-pool count/fetch + pessimistic-lock claim (multi-instance safe) - LeadCreditRepository: per-vendor-product balance + daily-spend counts Additive schema only (new nullable/defaulted columns + new table). Reuses existing **************** Compiles clean (mvn).

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