Mabadiliko
Nini kipya.
Kila kuboresha jukwaa, kama ni meli.
· SecurityService
[04] slice E2 InvestorConfig collection CRUD (D31)
The second collection config domain (doc-04 §3.2 InvestorConfig) — per-investor approval/delivery/authority that feeds capital-markets execution. Reuses the Unit H collection shape exactly: **************** on the audit spine (profileVersion bump + §4b.1 validate-or-rollback + WORM change-log; hard delete audited {"deleted":true,row}; NoSuchRowException->404 fail-closed on a foreign-profile row). GET /investors + POST + PUT/{id}(+active:false-remove); investorCode + approvalStatus required, **************** delegatedAuthority optional; enum + non-negative-turn validation. The InvestorConfig +3-children (overlays/delivery/commitment) sub-collections stay a follow-on. 4 tests (+existing ctor sites updated for the +InvestorConfigRepository arg; 16 config write tests green).
· kamo-internal
MORTGAGE licensing tab (list/add/remove) — [04] slice E2 (D31)
6th MORTGAGE config tab: NMLS/state/agency/investor leseni entries na Tarehe za ufanisi / za majaribio na chip ya ufanisi wa kila siku (status haijawahi kuhifadhiwa). Ongeza kupitia safu ya inline, uondoe kupitia hatua ya takataka (hard kufuta upande wa seva; Kustaafu bila kuacha, kuweka expiry ya zamani). Maoni / Maoni ya leseni LicensingRequest + LICENSE TYPES + leseniTypeLabel; configApi orodha / kuunda / kuboresha kuondoa leseni; kusajiliwa kama kichupo 'kupiga' kabla ya tab ya mikataba ya kila siku. Kiingereza hufunga meli kupitia repo ya tafsiri. Tsc safi kabisa.
· SecurityService
[04] slice E2 licensing collection CRUD (D31)
Domain ya kwanza ya config (doc-04 §3.2 Kwa mfano, katika kesi nyingi, New id-keyed kuandika sura juu ya mgongo huo ukaguzi kama singletons: Kwa mfano, *** / updateLicense / kufuta: maelezo bump + §4b.1 kuthibitisha-au-rollback + WORM mabadiliko-log kwa kila mstari; utambulisho server-stamped. Sasisha / kufuta mgogoro kwa id kisha kushindwa-kufungwa 404 (NosuchRowException) kama ni Sio wasifu wa org wa operator - hakuna neno la kuwepo kwa wasifu wa msalaba. Hakika ni kuwa utumwa ni utumwa, na utumwa ni utumwa! Usajili Suluhisho linasoma entries UNFILTERED na hali ya rekodi - bendera laini bado Kuhesabu kama leseni; kumaliza bila kufuta, kuweka expiryDate ya zamani. MlosConfigController: GET /licensing (orodha, ufanisi Leo mahesabu kupitia Na kwa mchana unapo lidhihirisha! (update, au kuondoa kupitia {active: false) - wakala wa kusanidi hana kitenzi cha DELETE. ISO-tarehe + enum + expiry> = ufanisi uthibitisho; NosuchRowException-> 404. Wawekezaji (+ watoto wa 3) na hatari ya kutumia sura hii katika vipande vya baadaye. 6 ya majaribio.
· kamo-shared-library
IDENTIFIER_REGISTERED event type (mlos.identifier.registered)
The initial-registration counterpart to IDENTIFIER_SUPERSEDED — the durable signal downstream mirrors / global-resolution caches consume when a native identifier is first registered (doc 11 §5.3/§10, D29).
· kamo-internal
Per-stage autonomy override table on the ai-autonomy tab (D28)
The doc-04 §4.2/§4.5 per-stage map under the AiAutonomy singleton: every lifecycle stage with its platform wall classification (legal-wall chip / non-tunable floor) and the effective confidence threshold the gate uses (max(override, floor)). Each non-wall stage has an inline override editor (threshold + auto-execute) with save + remove (PUT active:false, since the config proxy has no DELETE verb); legal-wall stages are read-only. Reloads after each write so the effective posture reflects the server recompute. configTypes **************** UpdateStageOverrideRequest + configApi get/update/removeStageOverride. English strings (aiAutonomy.stageOverrides.*) live in the translation-dictionary repo.
· SecurityService
[04] pass-2 AutonomyStageOverride CRUD + per-stage autonomy map (D28)
The per-stage autonomy surface the config vertical deferred until StageWallRegistry existed (its deferral note is now satisfied): - **************** upsert per (lenderProfile, stageKey) on the SAME write spine (whitelisted mutation, profileVersion bump, §4b.1 validate-or-rollback, WORM change-log append). LEGAL-WALL stages (CLOSING/ FUNDING/COLLECTIONS) are rejected 400 outright - the gate ignores overrides there by design, and storing a row it will never honor is a misleading audit artifact. - deleteStageOverride: HARD delete (the resolver reads overrides without record- state filtering, so a soft flag would keep biting the gate), audited as a {"deleted":true,"row":...} change-log snapshot + profileVersion bump. Exposed as PUT {active:false} because the kamo-internal config proxy has no DELETE verb. - GET /ai-autonomy/stage-overrides: the doc-04 §4.2 per-stage map - every LifecycleStage with its wall classification (legalWall + non-overridable floor from StageWallRegistry), the tenant's override row, and the EFFECTIVE posture the gate will use (max(override|default, floor); auto-execute = config AND override) via **************** - PUT **************** threshold in [0,1] max 3dp (stored as the tenant's ASK; the gate always applies the floor - surfaced as effectiveThreshold on the GET). All §3.2 pass-2 entities + prod tables already exist (mapping discovery - the queue's 'need NEW entities' note was stale): no shared-lib change, no KI run. Frontend tab + E2E are the pinned resume point (D28 STATUS note in the plans doc).
· DaemonService
[03] MLOS read-side consumers - decision.routed steward fan-out + task.resolved seam (D26/D27)
The doc-03 read-router folded into the fleet's MLOS-consumer host (the only Recreate-strategy deployment - durable rebinds die under RollingUpdate), per the doc's explicit 'thin read service or folded' allowance; a greenfield MLOSOrchestrationService stays owner-gated. First production adopters of the shared-lib consumer-reliability core (doc 12 §4.2): every delivery runs through IdempotentEventProcessor - per-consumer dedup marker in the SAME tx as the side effect, RETRY->nak (capped by max-attempts), MlosDeadLetter at the cap, unparseable bodies dead-lettered immediately. - MlosDecisionRoutedConsumer **************** durable daemon-mlos-decision-routed): steward fan-out via StewardNotifier - per-org SMS through VOIP POST /api/bulktext/send (cluster X-Internal-Auth) to configmap- listed numbers; EMPTY default = record-only until the steward-assignment model lands member->contact resolution (the steward UI reads StewardTask directly). - MlosTaskResolvedConsumer **************** durable daemon-mlos-task-resolved): the auto-resume SEAM. DecisionSpine.resolve() already flips task RESOLVED + OrchestrationState GREEN synchronously (discovered in mapping - the spine-side resolve EXISTS; only the HTTP endpoint is the steward-screen unit's); the engine re-run nudge plugs in here when engine resume APIs land. 6 tests.
· kamo-internal
Mfumo wa uendeshaji wa moduli + nav reworks
- /marketing moduli na kichwa cha shujaa wa akaunti + njia ya haki tabo: maelezo ya jumla, vyombo vya habari vya kijamii ( / kijamii), vifaa ( / vifaa), Kanuni za Referral (/discounts); wamiliki wa mahali wa kuja; upatikanaji wa ulinzi Haki miliki ya picha VIEW MARKETING + pertab - NavPri: Bidhaa ya Masoko (Mkoa icon, VIEW MARKETING) Biashara na KB; Maelezo ya Bidhaa Zilizoondolewa - NavTop: Kalenda + Mawasiliano sasa icon-tu (tooltips naendelea); Notes wakiongozwa Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... Utawala wa wima UsalamaRoleManager: Sehemu ya haki za masoko (tazama kila wakati)
· kamo-shared-library
Marketing rights group — ServiceType.MARKETING + 6 rights (ids 150-155)
VIEW_MARKETING, VIEW_SOCIAL_MEDIA, MANAGE_SOCIAL_MEDIA, VIEW_MATERIALS, VIEW_REFERRAL_CODES, MANAGE_REFERRAL_CODES. MARKETING is a rights-grouping module (enabled=false, like LOS) — not an org-enableable app. Rights rows self-heal into all roles on SecurityService boot.
· kamo-shared-library
AUS compliance event types - downgrade.forced, waiver.recorded, validation.recorded
The [10] compliance-validator unit's durable signals (D22/D24): the FHA TOTAL forced-downgrade decision-of-record, and the append-only waiver/data-validation lifecycle rows (doc 10 §6.2/§7).
· kamo-internal
Hot Reassign — front-desk live call-transfer flow
Adds a Hot Reassign action to the lead-view Assignment card (front-desk staff on live calls): an explainer + required call-note dialog, then release the lead into the credit auto-assignment pool and open an animated 'finding an available agent' window. When a sales agent accepts it, the window reveals their name/email/work extension so the caller can be transferred; a close button (with an early-close confirm while still waiting) lets staff bail without waiting. Real-time via onAssigned. Also fixes the assignment dropdown to list VIEW_LEADS members by name + extension.
· SecurityService
Assignable-members endpoint + work extension on member profile
wa wa wa wa wa wa wa wa wa wa wa wa (wangine - waambie) wajiteremshie uzuri nguo zao. Kwa kushuka kwa kazi ya kuongoza (jina + ugani wa kazi, sio barua pepe). - GET / api / usalama / wanachama / {id} sasa ni pamoja na simu Kazi Extension hivyo Hot Reassign kusubiri Mgawanyiko unaweza kuonyesha upanuzi wa mtoa huduma.
· kamo-internal
Provider brand icons in the connection provider dropdown + datagrid (shared with the chat popup via getProviderMeta)
· MediaService
X (Twitter) + Discord adapters
- XAdapter: Mtandao wa Shughuli za Akaunti (CRC Challenge + x-twitter-webhooks-signature HMAC kuthibitisha), normalizeInbound (direct ujumbe events, echo-skip), OAuth 1.0a-signed v2 DM kutuma; watumiaji ufunguo / siri kutoka kwenye jukwaa X OAuth usajili, kwa kuunganisha kwa ishara: siri DiscordAdapter + DiscordRestClient: DM normalize + REST kutuma (wazi DM channel + ujumbe / faili) - DiscordGatewayManager: kuendelea JDK-WebSocket Gateway matumizi ( WSS moja kwa Discord kazi Uhusiano wa HellO/heartbeat/IDENTIFY, MESSAGE CREATE DMs republished kwenye social.inbound.raw hivyo Bomba la watumiaji linawashughulikia), @Scheduled kupatanisha = kuunganisha, @PreDestroy Cleanup SocialCredsResolver: Tawi la X linatatua ufunguo wa watumiaji / siri kutoka kwa Usajili wa OAuth
· kamo-internal
Add X (Twitter) + Discord to connection providers + provider logos; X card in platform OAuth registrations
· APIService
Forward x-twitter-webhooks-signature on the social webhook edge (X/Twitter Account Activity)
· kamo-shared-library
Add X(4)/DISCORD(5) provider enums + X(6) platform OAuth provider + active-by-provider repo lookup (no schema; provider_type_id is a plain Integer)
· kamo-shared-library
Lock-lifecycle outbox event type + BusinessDayCalendar promoted to mlos.compliance
- **************** (mlos.pricing.lock.lifecycle): one event type for the whole post-lock lifecycle; the specific MlosLockEventType rides in the payload. The initial LOCK commit stays capital-markets' mlos.cm.lock.committed. - BusinessDayCalendar (CFPB §1026.2(a)(6) replica of the locked DisclosureService rules) moves from MLOSCapitalMarketsService to mlos.compliance per D16 - the pricing lock-lifecycle writer is the second MLOS consumer its javadoc scheduled the promotion for. Test moves with it (7/7 green).
· kamo-internal
Doc-04 MORTGAGE config tabs — 5 domain singletons
business-model / authority / capital-markets / servicing / ai-autonomy GET+PUT via /api/security/mlos/config; mlosPut + parseWriteError surface the §4b.1 cross-field rejection list inline; boolean field names symmetric with the GET/entity JSON; mounted in the MORTGAGE market tab strip before the agreements child (dead getCommerceTypeLabel removed). tsc clean.
· VOIPService
Doc-07 SMS template system — /api/voip/sms/templates + GSM-7/UCS-2 segment guard
**************** over the shared-lib SmsTemplate entities: renders {{var}} and sends via the EXISTING BulkTextProvider primitive (no second carrier path); SmsSegmentCalculator (GSM-7 160/153, UCS-2 70/67) + sms.max-segments cap -> 422. @EnableJpaRepositories += **************** InternalAuthFilter guards the new prefix; X-Internal-Auth gated.
· SecurityService
Doc-04 tenant-config layer — self-heal + activation summary + 5 domain GET/PUTs
mlos.config.enabled + com.kamo.z.shared.mlos.config in @EnableJpaRepositories. MlosConfigSelfHealRunner: default LenderProfile + 5 domain singletons per active MORTGAGE market at boot **************** MlosConfigWriteService: whitelist -> §4b.1 validate-or-rollback -> profileVersion bump -> WORM MlosConfigChangeLog snapshot. MlosConfigController /api/security/mlos/config: lender-profile activation summary + validation + change-log + business-model/authority/ **************** GET/PUT; **************** gate, session org/actor (SUDO-aware). Boolean fields symmetric with the GET/entity JSON.
· kamo-shared-library
Config/activation layer + decision-gate hardening + DecisionSpine provenance + SMS template entities
- [04] mlos.config: **************** enums + BusinessModelConfig/ **************** entities+repos + ScreenState/ModuleState/ ModuleKey/StewardQueueKey + ActivationMatrix (§4b row-for-row); MlosActivationService gains **************** (union + authority/ CM/servicing refinements); MlosConfigChangeLog WORM audit; VendorCategory. - [12] StageWallRegistry (self-validating: **************** 0.90 credit/money floor, class-load fail-closed); DecisionGate ORs the registry wall (add-only), enforces the per-stage floor, adds force-steward fail-safe. - [03] DecisionSpine.DecisionRequest gains optional ausFindingId provenance (back-compat ctor). - [07] SmsTemplate/SmsTemplateCategory entities+repos (donotmodify.voip.template, mirroring the locked email templates).
· kamo-internal
OAuth2 Client Registrations section in Advanced settings **************** — provider cards + edit dialog + masked secrets + proxy + api client
· VOIPService
RingCentral OAuth client creds resolve from the platform OAuth registry in both consumers (OAuthController + PhoneProviderFactory refresh) + boot-seed + platform-enc-key env
· EmailService
Google/Microsoft/Zoho OAuth client creds resolve from the platform OAuth registry (+ boot-seed from env); remove @Value client-id/secret + platform-enc-key env
· MediaService
Meta OAuth reads app id/secret/verify-token from the platform OAuth registry (+ boot-seed from env); remove social.meta.* consumption + platform-enc-key env
· SecurityService
OAuth2 client registrations CRUD (platform-admin gated, encrypted-at-rest, secrets never leaked) + platform-enc-key env
· kamo-internal
Steward WRITE composers — record verdict, publish pull-through policy, run pricing
The three write paths the consoles surfaced as coming-soon, live end-to-end: - StewardFeedbackComposer in the decision-trail drawer: CONFIRM/MODIFY/OVERRIDE segmented verdict (tone-coded), Reg-B reason select (required on OVERRIDE), MODIFY corrected-value JSON editor with client-side validation, WORM append-only note, in-flight guard (the chain has no idempotency key). - PullThroughPolicyComposer replaces the publish coming-soon box: two-step edit -> review-diff -> publish v(n+1); knob validation mirrors the service (probs 4dp, percentiles, doc-09 horizon vocabulary, platform floor hint); publishes via session-stamped proxy that ownership-verifies the grain. - RunPricingComposer behind a Run-pricing header action: scenario/product prefills from the selected run, SHOPPING/WHAT_IF only, optional facts (fico/ltv/dti/state), post-run counters incl. skipped products, view-run. Plumbing: mlos routes forward request.method + export POST; mlosPost (NO retry - non-idempotent WORM writes); write types/fns in governanceApi/pricingApi. i18n: all new text via next-intl; replaced hardcoded PRICING_PURPOSE_LABEL/ ELIGIBILITY_LABEL maps with t()-backed helpers; keys triple-written.
· kamo-shared-library
PlatformOAuthClientResolver (read+decrypt registry) + PlatformOAuthSeeder (idempotent boot seed from env) + ResolvedOAuthClient
· kamo-shared-library
JukwaaOAUthClient Usajili chombo + repo + JukwaaSecretCipher + mtoa huduma enum
Usajili wa OAuth2 kuthibitishwa-programu Kwa mfano, *** encrypted encrypted kwenye Jukwaa la Siri (AES-256-GCM, jukwaa.enc-key). matumizi ya kawaida; matumizi ya Huduma ya Usalama (CRUD) na huduma za kutatua (kusoma + uamuzi).

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