MaterialEvent chombo + repo (usage analytics)
Append-only usage events **************** with a per-(imgId,type) aggregate query. Table MATERIAL_EVENTS (targeted CRDB DDL; KI auto-scans).
Approval workflow UI + load-all filtering (P2)
Status control in the drawer **************** status badge on tiles, and a status filter in the toolbar. Also loads all material pages up-front (capped) so sear...
MaterialReviewController — status map + set-status
GET /api/media/materials/reviews (org-wide imgId→status map) + POST to set a material's status (validated, reviewer-stamped, upsert).
MaterialReview entity+repo (approval status side-table)
DRAFT/PENDING/APPROVED/ARCHIVED per material, keyed by imgId (imaging schema untouched). Table MATERIAL_REVIEWS (targeted CRDB DDL; KI auto-scans).
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 ...
Kwa mwanachama RingCentral kuunganisha + softphone mtandao v2 fixes
Softphone SDK fixes (ringcentral-web-phone ni v2.4.0, si v0.x adapter) Ililengwa - matumizi ya zamani ya wp.userAgent. * yalitupa init: Rewrite RingCentralPhone...
Kwa kila mwanachama RingCentral OAuth utambulisho + softphone SIP fixes
Softphone SIP karatasi za plastiki: - kupataSipCredentials: ramani outboundProxyBackup + stunServers (mtandao wa simu v2 mahitaji) Wao kwa WSS failover + ICE / ...
Kuongeza MemberVoipOAuthToken kwa kila mwanachama RingCentral connections
Kwa mwanachama wa OAuth ishara ya ufunguo (mwanachama, mtoa huduma, instanceId) msaada upanuzi-scoped RingCentral shughuli - softphone sip-provision pamoja na U...
UI au UI (P2)
Left-nav Collections section (create/select/delete), campaign filter on the collection view, and a collections editor in the detail drawer (add/remove material,...
MaterialCampaignController - CRUD + kipengee ramani + kuongeza / remove
/api/media/materials/campaigns: list/create/update/delete, GET /items (org-wide imgId↔campaignId map), POST /add + /remove with org-ownership checks.
MaterialCampaign + vyombo vya bidhaa / repos (makusanyiko)
First-class named collections grouping materials across folders. Tables MATERIAL_CAMPAIGNS + MATERIAL_CAMPAIGN_ITEMS (targeted CRDB DDL; KI auto-scans on next r...
Tags UI + udhibiti wa ngazi ya upatikanaji (P2)
Tags (org-scoped, cross-cutting): tag chips on tiles, a tag filter bar (AND across selected), and a tag editor in the detail drawer (assign/remove existing, cre...
MaterialTagController - tag CRUD + kugawa / saini + ramani ya kazi
/api/media/materials/tags: list/create/delete tags, GET /assignments (org-wide imgId↔tagId map the workspace joins client-side), POST /assign + /unassign with o...
MaterialTag + vyombo vya kazi / repos ( lebo za shirika)
Flat, cross-cutting tag mhimili juu ya folders kwa vifaa vya masoko. Picha zote na Wizara ya Mambo ya Ndani ya Nchi Material TAG ASSIGNMENTS (Iliyoundwa kupitia...
Managed public links UI (P1) — create/expiry/revoke/view-count
Mchoro wa kina hupata jopo la 'viungo vya Public' (ShareLinkManager): kuunda kiungo cha kudumu na Lebo ya hiari na expiry (1h / 1d / 7d / 30d / kamwe), nakala, ...
Endpoints za kiungo cha umma (unda / orodha / revoke) + huduma iliyofuatiliwa
Adds POST/GET /api/media/materials/links and DELETE /links/{id} backed by MaterialShareLink, and resolves managed tokens on the public GET first (checking revok...
MaterialShareLink registry entity + repo (managed/tracked public links)
Backs revocable, expiring, maoni-counted viungo vya umma kwa ajili ya vifaa vya masoko - kuendelea Kwa hivyo viungo vinaweza kuorodheshwa, kufutwa, na kuhesabiw...
Kuongeza kulia-click / short-press mazingira menu kwa majadiliano-view safu
Inakamilisha orodha ya hatua katika njia zote mbili za mtazamo. Mazungumzo ya sasa yafunguliwa Menyu hiyo iliyoshirikiwa kwenye bonyeza kulia na kugusa kwa muda...
DecisionGate.appliedThreshold exposes the actual confidence bar
The gate internally applies max(tenant override, safetyFloor, stage floor) but callers only had the pre-gate tenant wall. appliedThreshold returns the true bar ...
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...
Enterprise Materials workspace (P0) — folders, search, bulk, real preview, shared email composer
Inabadilisha gridi ya gorofa ya mita 200 na nafasi kamili ya kazi ya hati juu ya picha zilizopo backend (ambayo tayari inasaidia folda, takataka, kugawana, hist...
Overhaul /messages — iframe rendering, list context menu, threading, races, a11y
Implements the audit of the /messages page end-to-end. Reported issues: - Reply/Reply All/Forward buttons now show text labels; removed from the more-actions ...
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...
Weka vipengele tu ambavyo usanidi wake ulibadilika; kamwe usakinishe upya
huduma za kupeleka.yml ilitumia tena kila huduma na waendeshaji wa nguzo zilizosanikishwa (cert-manager, KubeVirt, CDI - na 600s kusubiri) juu ya kila kushiniki...
Instrument Panel redesign — accent families, masthead, section-index nav, unified glass card
Redesigns the two most-visited landings into a permission-shaped operator's console. Foundation - Turn on the already-bundled Geist Sans/Mono (were discarded b...
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...
**************** targeted update
Async uongofu (vipengele vya kawaida) na sweeps iliyopangwa kushikilia ImgDat ya detached; kuokoa () / merge () cascades katika orphanRemoval = ukusanyaji wa pi...
Ongeza majibu Yote kwa ujumbe kusoma pane na mtazamo thread
Reply All was advertised (keyboard-shortcut label + i18n key) but had no handler. Wire it up: new computeReplyAllRecipients helper puts the sender in To and eve...
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...
Partial-unique index enforcing one active closing package per loan (eClose double-close backstop)
CREQUE INDEX uk mlos closing pkg active loan Kuhusu mlos closing package (loan file uid) ambapo hali <> 'inawezekana'. Nyuma ya nyuma Ulinzi wa idempotency ya n...
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,...
Onyesha vitendo vya Canva tu wakati Canva inaweza kutumika
The page previously offered Create/Import/Generate-in-Canva next to a "Canva isn't set up" notice — incoherent. Now the toolbar reveals progressively by Canva s...
Thumbnail scheduled-generated materials in-process
A headless sweep can't drive ConversionService's OTK thumbnail pipeline, so generate a page-0 PNG thumbnail via ImageIO right after storing the export — schedul...
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...
Recurring generation schedules UI
ScheduleManager: create/list/delete schedules (recipe + daily/weekly/monthly + hour/day + optional auto-post targets + caption); launched from Materials, gated ...
Scheduled generation — sweep runs recipes on a cadence
- CanvaScheduleController: CRUD for org schedules (recipe + cadence + hour/day + optional social targets), computes nextRunAt - CanvaGenerationService: headle...
CanvaSchedule entity + repo (recurring generation)
Org-scoped recurring schedule (recipe + cadence + optional social targets) with an atomic-claim query so a MediaService sweep runs each due schedule once.
Inline expandable Whisper transcript on softphone voicemail + call-history rows
Kila mstari ulioandikwa (barua pepe na historia ya wito) hupata "Transcript" ili kuingiza hiyo. Kuingiza nakala ya sauti ya Whisper juu ya mahitaji na inaonyesh...
Save + reuse autofill recipes
TemplateAutofill: "Saved recipes" chips load a template + prefilled mapping; "Save as recipe" persists the current template + field values org-wide. + canvaApi ...
Je, unaona nini kuhusu usafiri?
Kila kitu kinaingia kwenye tovuti yako mwenyewe. Anza kwenye mpango wa bure na usome ukurasa huu tena katika mwezi mmoja.
