Promote base mortgage-market leads to LeadClaimMortgage on save so mortgage fields persist
A lead whose market sub-type is (residential/commercial) mortgage was stored as a base Lead unless the backend salesType itself equaled the mortgage type, so up...
Header KPIs show reliably (relax gate + wrap header row); swap output columns, **************** on left
Cap concurrent uploads (queue, max 3)
Multi-file upload fired every selected file at once, and the burst of concurrent server-side resizes OOM'd the image service. Queue the uploads and run at most ...
Bound concurrent ffmpeg to prevent OOM under upload bursts
Faili nyingi upload moto faili zote kwa mara moja; kila ffmpeg decode kutenga sura kamili uncompressed, hivyo N concurrent picha kubwa walipiga nyuma kumbukumbu...
Downscale-only (never upscale small images)
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *...
Harden ffmpeg resize (probe safety, dim caps, bomb guard)
Maoni ya ziada juu ya ffmpeg kuandika upya: - probeDimensions redirects ffprobe pato kwa faili na wito waitFor () kwanza ya kwanza (Kwa wakati unaofaa). Previou...
Ongeza tabKeys kwa kuweka Tab deps (stale-closure misroute kwenye tab ya mikopo)
Kushindwa kupakia ikiwa resize inashindwa (hakuna ukubwa wa kuanguka)
Inathibitisha kuanguka kwa asili ya duka: ikiwa Huduma ya Kubadilisha haiwezi upya picha, kurudi 422 badala ya kuhifadhi asili ya ukubwa kamili (picha kubwa ing...
Resize backgrounds via ffmpeg subprocess (crash-isolated)
ImageIO + webp-imageio could native-crash the JVM (SIGSEGV in libwebp-imageio, UpsampleBgraLinePair_SSE2) on certain WebP inputs, taking the whole ConversionSer...
Hero band juu ya mpango iliyoandaliwa na ujasiri; neutral reverse umri hali
Fall back to the original image when resize fails
ConversionService can native-crash (libwebp-imageio SIGSEGV) or be unavailable, which made every member wallpaper upload fail ("Failed to process image" -> 500)...
Coerce deriveRelevance purpose to LoanPurpose | null
scenarioFromLeadFields' loanPurpose is LoanPurpose | null | undefined, but Relevance.purpose is LoanPurpose | null — the possible undefined failed the prod type...
Stop duplicating the memberId query in the GET proxy
The GET list proxy hand-appended ?memberId= to the apiPath, but forwardToApi already re-appends the browser's query string — producing ?memberId=X?memberId=X, w...
Kituo cha kalenda watermark kwa chombo; hoja selector chini ya alama
- BackgroundWatermark: make ThemeLogo a direct flex child of the container-filling box so sizePercent (e.g. /calendar 60%) is relative to the positioned con...
Weka meneja wazi kwenye upload / select; uploads kujiunga na slideshow
Wajumbe waliripoti meneja wa nyuma kufunga baada ya kila kupakia na kila Chagua, picha moja tu inayoonekana kwenye slideshow ya nyumbani, na "kutumia mwenyewe" ...
Ukarabati kwa kilatab *** mapungufu ya uhamiaji katika saraka + timeout popup
*** kikao wakiongozwa kutoka cookie pamoja kwa kikao cha kila-tab Usafiri wa umma (X-T) Hata hivyo, baadhi ya wachezaji hawajawahi kucheza. Mwongozo wa Kituo c...
Show the "Manage Background Images" button so members can upload
The Background & Theme section used BackgroundManager under external open-control but nothing ever opened it, so the upload/select dialog was unreachable — you ...
Kuacha serialed xoauth2 getter kwamba kuvunja MailCredentials Redis cache
MailCredentials is cached in Redis (GenericJackson2Json). The added `isXoauth2()` boolean getter was serialized as a "xoauth2" property but has no field to read...
Scope by org server-side (empty assocObjectId) — folders/list no longer empty
Keying materials on the org-id string was fragile: the id loses precision through a JS number on the write path and resolves inconsistently across proxy→APIServ...
Folders/list empty (org-id precision) + default visibility Team-Members-Only + custom labels
Root cause: materials store assocObjectId as the org id, which round-trips through a JS number on the write path (precision loss >2^53), so reads with the preci...
Kuacha bendera ya nje ya picha flashing juu ya ujumbe tayari
Kusoma pane hutoa ujumbe kutoka kwa cache yake indexedDB kabla ya mtandao Kurudisha, na nakala ya cached inakosa picha za mbali za seva Bendera ya Uhuru Jiwe li...
Folder create/rename 500 on root folders (Map.of null value)
createFolder/renameFolder built the response with Map.of(..."parentId", parentId), which throws NullPointerException when parentId is null (a root folder) — the...
Masonry layout so mixed-height option cards pack without ragged gaps
Leaf cards are short and parent cards vary with their sub-item count (Calculator has 9 modes, VoIP 2), so a uniform grid left big gaps under the short cards in ...
Add missing account-assign proxy route
The lead-account assign/unassign UI called POST/DELETE **************** but the Next.js proxy route was never created — so requests 404'd and surfaced as "Unkno...
Robust vision provider/model selection across vendors
Two-pass selectVisionProvider: prefer any org provider that has an active vision-capable model adapter already emits image_url content and reports supportsVisio...
Persist "display external images" server-side instead of localStorage
The choice now comes from the message's server-recorded remoteImagesAllowed flag and is saved via POST **************** so it's durable and consistent across de...
Parent options expose their sub-items instead of being single links
Mail, Docs, VoIP, Calculator and Support are nav options that open a sub-menu rather than navigating, so on the home launchpad they must not be a single link. E...
Persist OAuth provider selection immediately so the switch sticks
Selecting Microsoft 365 / Google Workspace / Zoho only navigated to the connect screen without saving, so leaving before completing OAuth reverted to the previo...
Scope KamoMail mailbox/domain listing to the org's own domains (cross-tenant leak)
SECURITY: **************** ran 'SELECT email FROM virtual_users' (and **************** 'SELECT name FROM virtual_domains') with no org scoping, so mailbox/domai...
Remember "display external images" per message
The unblock choice lived in the renderer's local state, but switching messages unmounts/remounts the iframe renderer (the reading pane shows a loader between me...
Treat ACTIVE status as connected in OAuth provider configs
The Microsoft 365 / Google Workspace / Zoho config views gated their connected state on providerStatus === 'CONNECTED', but the backend EmailProviderStatus enum...
Persist selected OAuth provider on callback so it stops reverting to KamoMail
Switching an org to Microsoft 365 (or Google Workspace / Zoho) never stuck: the OAuth callback stored tokens and only flipped status on a pre-existing provider ...
Resolve welcome-email logo from the org theme host, not the apex
Header/footer logos in system emails (welcome/verification) were built as **************** — an apex path that only exists on the Kamo marketing site, so for cu...
Source home from the nav registry, add nav cross-highlight, fix settings scroll
The home page was rendering a stale, separately-maintained feature list (Clubhouse, Feed, Reports, Tasks, Network) that isn't even in the nav registry, so it ex...
Rename Material ID field title to 'Marketing Material ID'; drop help tip
Suluhisho la wakati wa muda ni pamoja na madirisha ya SuperSEDED (masuluhisho ya kihistoria ya ufanisi)
All three effective-version resolvers (rate-sheet, guideline, lock-policy) queried only status=ACTIVE, then window-filtered. But supersession flips the prior ve...
Bounds-check assoc-type ordinal lookups (fixes Materials list 500)
DocsService was running a shared-lib built before ImageAssocType.MATERIALS (ordinal 11) was added, so listDocuments' ImageAssocType.values()[11] threw ArrayInde...
Move data dir off MinIO FUSE mount to local disk
rspamd's /var/lib/rspamd was hostPath-backed by the rclone FUSE mount of the MinIO shared-files bucket. Every hyperscan recompile / map refresh rewrote files th...
Endelea bendera zilizopangwa za kidole kupitia update iliyopangwa
Same detached-entity orphanRemoval issue as the conversion pipeline: the headless sweep held a detached ImgDat and save()/merge() cascaded into the images colle...
Persist thumb flags via targeted update, not detached save
Picha / video / PDF hatua thumbnail kuweka bendera thumb juu ya ImgDat detached na kuitwa kuokoa(), ambayo inaunganisha na cascades katika ukusanyaji wa picha z...
Kukataa mapato mabaya / mali / dhima kiasi katika sehemu ya kuokoa
Inaongeza ulinzi wa dharura (tayari kwa kiasi cha mkopo + thamani ya mali) Kwa pembejeo za msingi za DTI / Asset katika Huduma ya Kukopa: mapato ya ajira [TD="w...
Stop uploads hanging on 'Converting...' — route NATS progress + direct image thumbnails
The conversion-progress publish used NatsMessageService.publish(), which asserts expectedStream=<this service's stream>. The subject **************** resolves t...
Add Marketing to the security-model app editor
The model editor's app list (SERVICE_TYPES) is a hand-maintained mirror of ServiceType.java and was missing MARKETING — so Marketing had no row in the apps tab,...
Constant-time internal-auth secret compare (timing oracle)
Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...
Constant-time internal-auth secret compare (timing oracle)
Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...
Constant-time internal-auth secret compare (timing oracle)
Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...
Constant-time internal-auth secret compare (timing oracle)
Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...
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.