Nenda kwenye maudhui
KAMOUniverse

Mabadiliko

Nini kipya.

Kila kuboresha jukwaa, kama ni meli.

  1. · kamo-internal

    Web Chat Integration tab — list, create, snippet (BFF + UI)

    Phase 2 core of the Web Chat Integration settings tab: BFF routes proxying to the Phase-1a MediaService CRUD, a typed client, and the /settings/features/chat tab where an org lists integrations, creates one (name + required website origins + AI/Support modes), and gets the raw site key + embeddable snippet once. Design customizer and readiness checklist are later phases.

  2. · kamo-register

    Usajili wa Kamo unaheshimu programu auth alama + jina

    DynamicMetaLoader: kusoma utambulisho wa programu + auth selectors kutoka kwa config.json, kutatua Jina la tab, endelea alama ya auth / jina la nchi kwa kikao - brand.ts + ThemeLogo: kujiandikisha alama auto-kufuata utambulisho auth-logo (reactive) - kutumiaAuthName: kujiandikisha jina maandiko (landing + mtiririko) ifuatavyo auth-jina utambulisho, Ufanisi juu ya mzigo wa usanidi wa mandhari; huanguka nyuma ya kampuni

  3. · kamo-login

    Kamo-login honors software auth logo + tab title

    DynamicMetaLoader: kusoma utambulisho wa programu + auth selectors kutoka config.json, kuweka tab kichwa kutoka jina kutatuliwa (authNameBrandSource), kuendelea auth-logo hali ya kikao - brand.ts + ThemeLogo: alama za kuingia auto-kufuata kitambulisho cha auth-logo (kampuni / programu), upya kwenye mzigo wa usanidi wa mandhari; hakuna mabadiliko ya tovuti ya simu zinazohitajika

  4. · kamo-internal

    LabelManager software identity UI + internal tab title

    - Company Info: software name/short-name + login/register name + tab-title selectors - Branding: software full/simple logo uploads, override toggles, and per-surface identity selectors (watermark, navpri, login/register logos) - forced-legal surfaces communicated as always-company (documents/email/invoices/etc.) - layout: internal browser tab title resolves via internalTabBrandSource

  5. · kamo-internal

    3 hatua org onboarding mwongozo (kuunda → kumaliza DNS kuingia)

    Kukusanya shujaa wa kwanza katika jopo moja la mwongozo wa hatua moja muhimu kwenye hesabu ya mwanachama inayomilikiwa na shirika + DNS (kutoka /api / usalama / shirika / mitandao yangu): Kujenga - kumiliki hakuna mtoto org | uzinduzi wa kwanza White-label org (mtandao / kuunda) dns - inamiliki 1, DNS haijathibitishwa → kumaliza kuanzisha kikoa (/setup / dns?orgId =.) Kuingia - inamiliki 1, DNS kamili → kuingia (kama OTK <domain>) Mara baada ya kumiliki org ya pili, hakuna jopo linaonyesha - wanajua kamba. Mtandao wa DNS Inaonyesha utawala wa ukurasa wa mtandao hasa (eneo la mteja & domainSetup=== = uongo; www.kamocrm.com hauhitaji DNS. Kila moja ya hatua hizo ina familia yake mwenyewe. (watu / kazi /crm), icon na nakala; CTA ni kiungo cha kuunda / dns na async Nenda hatua kwa hatua kwa hatua. Hakuna njia ya mkato ya kufanikiwa.

  6. · kamo-internal

    Kampuni mbili / ufumbuzi wa programu + utoaji + matumizi

    - Shirika.ts: kutoa utambulisho wa programu + kwa kila nyuso selectors kupitia OrgContext Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... (+ vitest, 8 kesi) ThemeLogo: logoSoftware/logoFullSoftware - NavPri: navpri alama + maandishi kufuata nembo ya programu ya ndani BackgroundWatermark + Backdrop: watermark inaheshimu utambulisho wa programu (njia zote)

  7. · SecurityService

    Software logo upload types + config.json bake

    - uploadLogo: explicit object-key switch **************** with rejecting default so a software upload can never clobber the company logo.svg - copyFolder: preserve uploaded software logos on template re-copy - config.json: bake software identity + auth-surface selectors for login/register - tests: UploadLogoObjectKeyTest, buildConfigJson software cases

  8. · kamo-shared-library

    Add software white-label branding columns to Organization

  9. · kamo-shared-library

    Persist software branding fields via patchOrganization whitelist

  10. · kamo-internal

    First-org CTA hero for members on the platform org

    Show an onboarding hero at the top of the home launchpad inviting a KamoCRM-platform member (not a team member) who hasn't yet created a child org to spin up their first white-label organization. A prominent CTA button and an inline 'click here' link both route to /network/create, and the copy points to the 'My {branches}' nav above. Gated on userInfo.memberType === MEMBER + organization.isTopLevel; stays hidden unless /api/security/org/my-networks confirms they own no child org, and fails safe (hidden) on any fetch error. Follows the Instrument Panel design language (people accent, kglass, operator-label, house easing, reduced-motion-gated). Strings under home.firstOrg.

  11. · VOIPService

    TURN-REST credentials endpoint for the mobile softphone

    GET /api/voip/turn/credentials mints ephemeral coturn creds (HMAC-SHA1 over "<expiry>:<memberId>" with the shared static-auth-secret) so native/cellular WebRTC can relay through 47.181.8.84:3478. Auth via the same X-***-Token the SIP endpoint uses; returns configured:false (STUN-only) when the secret is absent. Wires KAMO_TURN_SECRET from the existing *** (optional).

  12. · SecurityService

    Expose per-org primaryColor + logo URLs on /my-networks

    Each org row now carries primaryColor (Organization.colors.colorPri, '#'-prefixed to match config.json) and derived logoUrl/logoSimpleUrl (theme.<domain>/public/ logos and per-org hex-head border colors.

  13. · MediaService

    Snapshot mtandao-chat ushirikiano id juu ya msaada mgeni + tiketi

    Resolves the WebChatIntegration by creatingKeyHash (enabled-filtered, consistent with bootstrap()/AI-prompt resolution) once in createSupportSession and stamps its id onto both PublicChatVisitor and SupportTicket for per-website attribution. Null/blank keyHash or no matching enabled integration leaves the columns null.

  14. · AIService

    Kuunganishwa kwa umma AI haraka + kikao

    Upgrade the public-chat system-prompt waterfall from per-org to per-integration: PublicAiChatController now reads the X-Public-Chat-Key-Hash header (nullable) forwarded by APIService and passes it to **************** which resolves the WebChatIntegration by hash and prefers its aiSystemPrompt over the AiOrgSettings default, falling back to the generic prompt. The resolved AiChatSession is also stamped with webChatIntegrationId for stable attribution that survives key rotation. Extracted the waterfall into a static, unit-tested resolvePrompt helper (integration-wins / org-fallback / generic-fallback / blank handling).

  15. · APIService

    GET /api/public-chat/bootstrap gateway route

    Add bootstrap endpoint that reuses the existing proxyWithAuth pipeline (key validation + opt-in origin + PUBLIC_CHAT scope + rate-limit + X-Public-Chat-Key-Hash) and proxies to the MediaService bootstrap endpoint.

  16. · MediaService

    Chaguo la bootstrap config

    Adds an internal GET **************** that resolves a WebChatIntegration by X-Public-Chat-Key-Hash and returns its resolved design/behavior config (default-filled via WebChatDefaultConfig.merge so a key with no integration row still renders like today's widget). Falls back to the active PublicChatApiKey's org when no integration exists; 404s when the key hash doesn't resolve at all.

  17. · MediaService

    WebChatIntegration CRUD (mints key + integration, org-scoped)

    Org-facing management API for the Phase-2 web-chat settings tab. On create, mints the underlying PublicChatApiKey (same key-gen approach as PublicChatKeyController) alongside the WebChatIntegration row and returns the raw key once. list/get/update/delete are org-ownership checked; update busts the (Task-5) bootstrap cache when designConfig or enabled changes.

  18. · kamo-shared-library

    Add WEB_CHAT_INTEGRATION_ID attribution columns to visitor/ticket/ai-session

  19. · kamo-shared-library

    WebChatIntegration entity + repo + DTO + default design config

  20. · kamo-internal

    Add "Access Copilot Mobile App" entry points on home + NavPri

    Both surfaces dispatch an `open-interaction-center` event that NavTop listens for to open the Interaction Center on the Setup Mobile App tab. Home shows a labeled pill under the wallpaper controls; NavPri shows a logo icon below the trial pill (label when expanded, tooltip when collapsed). Both gated by the ALLOW_MOBILE_ACCESS right.

  21. · kamo-internal

    Password-gate QR, tab moja-line, logo-kushoto header, 10min code

    Mwanachama lazima aingizwe tena nywila yao (iliyothibitishwa kupitia / api / mobile-access-otk, Kabla ya kupanda, mmea lazima uwe wazi. kwenye kompyuta ambayo tayari imesajiliwa kwa ajili ya kuisajili. QR / OTK sasa inaishi dakika 10 (600s); kuhesabu tena. - Lebo ya Tab kulazimishwa kwa mstari mmoja; nembo ilihamishwa kushoto kwa kichwa ili kuokoa nafasi ya wima; Kuondoa "Configuring kwa ajili ya" kidonge.

  22. · SecurityService

    POST **************** — gate Mobile Copilot QR

    Verifies the caller's own password (passwordEncoder.matches against their session's user) without changing anything. Used by the mobile-access-otk BFF route so the setup QR is only minted after re-confirming the password.

  23. · kamo-internal

    Setup Mobile Access tab – QR kufunga + auto-configure Mkono Copilot

    Kichupo kipya cha 3rd katika NavTopPanel (iliyotolewa na ALLOW MOBILE ACCESS kulia): inaonyesha alama ya alama QR encoding kiungo kirefu cha muda mfupi cha OTK (kamocopilot://configure) ambacho kinaonyesha mwanachama katika simu zao na defaults programu kwa org sasa. Ukarabati wa magari Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... Kuongeza

  24. · kamo-shared-library

    Add ALLOW_MOBILE_ACCESS (167) general right for Mobile Copilot

    New RoleRightType (serviceType=null → General group) gating the 'Setup Mobile Access' interaction-center tab. RoleRightsSyncService backfills it to all roles on SecurityService restart; appears under General Permissions in the role editor.

  25. · AIService

    Per-org public prompt, human-handoff on no provider, anon daily message cap

  26. · kamo-shared-library

    Add anon usage count query for public web-chat quota

  27. · APIService

    Verify *** PoW at the edge on public session create (enforced when payload present)

  28. · MediaService

    Bust APIService key cache immediately on public-chat key toggle/delete

  29. · MediaService

    Persist creating key hash on public-chat visitor + ticket for attribution

  30. · kamo-shared-library

    Kuongeza publicDailyMessageCap kwa AiOrgSettings kwa anon web-chat upendeleo

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