Require a session on POST ****************
The handler took an HttpServletRequest but never used it, carrying the comment "No auth required — internal admin maintenance endpoint". APIService relays /api/...
Require a session on POST /backfill-conversions
The handler was declared backfillConversions() — it took no request at all — under the comment "No auth — internal maintenance, mirrors /backfill-thumbnails". I...
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.
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 k...
Gate DELETE /api/security/org/{id} behind active god mode
The handler was `public void **************** Long id)` — no HttpServletRequest parameter at all, calling straight through to a bare deleteById. With ResourceSe...
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 U...
Delete /api/set-token and /api/get-jwt-token; add route guards
Both routes were dead — no caller anywhere in kamo-internal, kamo-login or kamo-register — and both leaked credentials. /api/set-token built its upstream URL f...
Require auth + org scope on job-title/department mutations
PUT and DELETE on /api/security/job-titles/{id} and /api/security/departments/{id} resolved no session at all — they read a UUID off the path and called straigh...
Implementation plan for the kamo-signer i18n upgrade
Kazi saba za kamo-translation-dictionary, kamo-signer-monorepo Huduma ya ESig, iliyoamriwa na kizuizi cha kupeleka: kamusi lazima iwepo Kabla ya kupanda, mmea l...
Design for kamo-signer /{locale}/ i18n upgrade
Specifies bringing kamo-signer to platform i18n parity using the kamo-marketing /{locale}/ URL convention, as the prerequisite for hosting a localized public qu...
Make MarketLosConnectionResolver boot-safe when integrations.los repos are not enabled (platform-wide boot fix)
Resolve template images from kept sources, not neighbouring slots
Mtunzi upya upya picha ya chanzo cha template wakati wowote template config ilibadilika, na kwa 'mwanachama-avatar' ilidhani URL kutoka popote Picha Url / heade...
Store and read avatars under one domain-independent prefix
Njia za Avatar za kitu zilipangwa kabla na uwanja wa chochote mwenyeji. Maombi ya kuwasili (getPublicBucket) jina la kamocrm-com, optionone-com, the the the ...
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 exist...
Mwanzo MaxSeats 5, Biashara MaxSeats 25
Inaweka mbegu ya bei ya KamoCRM katika hatua na orodha ya kuishi baada ya Kuweka upya nafasi zilizotangazwa.
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 ...
Clarify MeridianLink market secret is the inbound-sync service credential (per-LO logins on member profile)
Double wima scrollbar upana kwa draging rahisi
Bump the nav options scroll container from a 6px to a 12px webkit scrollbar and widen the thumb radius to match, giving members a larger drag target. The collap...
Register **************** repositories
LeadService now eagerly wires MarketLosConnectionResolver, which requires the integrations.los repositories **************** KI's explicit @EnableJpaRepositorie...
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 type...
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 (MarketLosUserC...
Per-member MeridianLink credential (MarketLosUserCredential) + resolveForMember + LO-scoped outbound push
Drop redundant "+" — pen now sets the balance both ways
The credit-balance pen is now an absolute set-to-N editor (backend mints when the value is raised, invalidates the excess when lowered), so the separate "+" dis...
Credit-balance pen sets an absolute target (mint up / invalidate down)
The Manage-Credits pen edit only ever LOWERED a balance: updateAllotment routed creditBalance to invalidateCreditsToTarget, which no-ops when target >= current....
Re-trigger build for Bulk Email i18n (run 338 failed transiently)
"next kujenga" kukusanya safi na kamusi kamili (a95bc92); kabla ya CI hujenga kushindwa kwa hatua ya muda mfupi, sio kwa maudhui. Kurudisha kwa kuunganisha Mpya...
Rebuild to bundle completed Bulk Email i18n strings
No code change — triggers CI to re-clone kamo-translation-dictionary (a95bc92) so the deploy bundles the 208 new **************** strings into messages/en.json ...
Master Machine SSO hutumia uunganisho wa VNC, sio RDP
guacd cannot render KRdp's H.264-only RDP GFX. buildAutoConnectUrl now mints a vncConnection() for Master Machine (192.168.4.46:5900, shared password). Linux/Wi...
Mashine ya Master inatumia VNC (x11vnc), sio RDP
KRdp/RDP is incompatible with Guacamole: guacd has no RDP Graphics Pipeline (EGFX) and KRdp is H.264-only, so the connection authenticated but died with GRAPHIC...
Add 'desktopMaster' to NavActionKey union — unblocks next build
The Master Machine launcher (navRegistry + NavOptionView + CommandPalette) references actionKey 'desktopMaster' but it was missing from the NavActionKey union, ...
Remove ambiguous unsubscribe requestMatcher that crashed startup
EmailService mounts two servlets (MVC DispatcherServlet + Spring-WS MessageDispatcherServlet at /services/*), so a bare string requestMatchers( "/api/email/unsu...
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/s...
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_EMA...
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...
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: - ...
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/INCO...
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...
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 matumiz...
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 ...
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) - EmailCamp...
Tambua msimamizi wa ASSIGNED wa uamuzi ulioelekezwa, kupitia barua pepe
DECISION_ROUTED's steward notification was a record-only no-op: StewardNotifier fanned out over SMS to a static CSV **************** that is empty by default, a...
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...
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 te...
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...
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 value...
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/...
Pin CockroachDB to v24.2.4 to avoid v24.3 no-license txn throttle
v24.3 (and 24.2.5+) enforce the new CockroachDB Software License; with no license key the cluster throttles to 5 concurrent open transactions cluster-wide. A v2...
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 scre...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.