Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

Każde ulepszenie platformy, jak to wysyła.

  1. · kamo-internal

    AI auto-tag + podpis UI; ustawienia poziomu kosztu / wizji dostawcy (P3)

    Ustawienia AI - Dostawcy: każdy dostawca zyskuje poziom kosztów (Light/Medium/Heavy) select i a Obsługuje przełącznik wizyjny (+ chipsy listy). Dostrajanie materiałów: "Wyprodukuj tagi z AI" (akceptuj chipy Aplikować) i „generuj opis za pomocą sztucznej inteligencji” – obaj wywołają skonfigurowanych dostawców org za pośrednictwem MediaService-AIService; nie zamknął się jasnym komunikatem, gdy nie jest skonfigurowany żaden dostawca wizji.

  2. · AIService

    Dostawca poziomu kosztowo-poziomu / wizji przepustowej + wewnętrzny punkt końcowy jednostrzałowy

    AiProviderStroller czyta/echa costTier + obsługujeVision. Wyzyskiwanie usługodawcyRoutingService selectVisionProvider(orgId, poziom). - biegnie jednostrzał Ukończenie wizji ponownie przy użyciu dostawcy/adapter orgii (bez sesji/RAG/narzędzia). Nowy AiInternalController POST /api/ai/internal/vision (X-Internal-Auth, OTK-wyjątek) dla rozmówców serwisowych.

  3. · MediaService

    AI auto-tag + podpis za pośrednictwem dostawców org (P3)

    MaterialAiController POST - weryfikuje własność, Mniszki krótkotrwały podpisany materialny adres URL i nazywa wewnętrzny punkt końcowy AIService (org's Własni dostawcy, LIGHT tier) przez AiVisionClient. Lenient tag parsing; nie zamknij się, jeśli nie ma wizji Dostawca skonfigurowany.

  4. · kamo-shared-library

    AiProvider koszt tier + flaga wizjonera (dwie osie możliwości ortogonalnych)

    Dodaje costTier (LIGHT/MEDIUM/HEAVY za pośrednictwem nowej AiProviderTier enum) i obsługuje kanolejan AiProvider, więc integracje mogą wybrać, jak drogi dostawca może korzystać i który wspiera wizję. Znalezisko Repo dla dostawców aktywnych wiz Wizjerów. Kolumny dodane do AI_PROVIDERS przez ALTER.

  5. · EmailService

    Zgoda po stronie serwera "Wyświetla zewnętrzne obrazy"

    Zastępuje klient-lokalny (lokalny (lokalStorage) zapamiętywanie wyboru na zewnątrz Z trwałym rekordem na członków. Nowy RemoteImageConsentService (fail-soft reads so-sojsza Komunikat nadal działa przed pojawieniem się tabeli) + POST /api/email/remote-image-Consent Do nagrywania zgody. Pełny odczyt DTO ma teraz remoteImagesAllowe (patrzone przez Członek + Message-ID), wypełniony w pojedynczym wątku, wątku i współdzielonej skrzynce pocztowej Przywip ścieżki, aby klient zasiał swoją bramę z serwera.

  6. · kamo-shared-library

    EmailRemoteImage Jednostka składowa + repozytorium

    Rekordowy rekord, który członek wybrał do wyświetlania obrazów zewnętrznych (zdalnych) dla konkretnej wiadomości, trafne przez member_id + znormalizowany identyfikator RFC Message-ID (upokat). Śledzie wzorzec email_metadata member-scoped (FilterRuleEntity). Wstecz: „Wschląc) Po stronie serwera preferencje "wyświetlaj obrazy zewnętrzne", więc wybór utrzymuje się na całym świecie Urządzenia i sesje. KamoInitializer tworzy stół w następnym biegu.

  7. · InitializerService

    Dodaj kolumnę INVESTOR_PRICE do rate_locks + pożycz_pricing_snapshots

    Nabożek(80) IDD COLUMN IF NIE WYJASTK, (DECIMAL(9,4), pasujący do ceny do 100 Siatki), więc MLOS RCE może rejestrować prawdziwą cenę wykonania dla inwestorów nieparzystych na Powiązanie blokady rekordu i jego wiązania zamiast par-by-pominięcia. Dodatek znieważalny; Lustra wiodki RecordingTranscriptMigration.

  8. · kamo-shared-library

    Zanotuj prawdziwą cenę inwestora nieparzającego na RateLock + LoanPricingSnapshot

    Wiążąca blokada stawek i jego wiążąca wycena przewoziły tylko stawki + lockDays; Punkty dyskontowe/pochodzenia zostały zerowe, więc podstawowe podmioty odczytyły PAR podczas Real price price-to-100 z pożyczkodawcą Margines wypiekany) żył tylko na bocznym MLOS MlosLockRecord.lockedPrice. Dodaj kolumnę INVESTOR_PRICE (DECIMAL(9,4), dopasowując doczekanej ceny do 100 siatek) do obu podmiotów + ich DTO + - To jest Cena wykonania INVESTOR, celowo NIE rozłożone na punkty kredytobiorców (którego Wartościowe wyrównają marżę i potrzebują modelu opłat – rozkład teraz byłby nikczemnym kredytobiorcą Punkty, błąd ujawnienia Reg-Z/ECOA). Punkty pozostają nieważne do momentu wylądowania modelu opłaty; Surowa cena jest teraz przechowywana na rekordowym zamka, a nie tylko w kieliszku. Po zaludnione przez RCE (MLOSCapitalMarketsService) z finalPrice; kolumna zmaterializowana przez KamoInitializer RateLockInvestorPriceMigration (ADD COLUMN IF NOT EXISTS).

  9. · kamo-internal

    Pozwól administratorom połączyć RingCentral w imieniu członka

    W przypadku ustawień telefonu innego członka, administrator z prawami do zarządzania VOIP (canManageVoipConfig) teraz widzi Connect/Reconnect/Disconnect dla członka Relacja RingCentral zamiast zwykłego „muszą je połączyć” Przesłanie — w powszechnym przypadku, gdy sysadmin posiada RingCentral członka Poświadczenia. Kopia połączenia wyjaśnia, że logujesz się z tym członkiem Poświadczenia, a docelowy identyfikator członka jest przekazywane (serwer wykonuje prawo).

  10. · VOIPService

    Zezwalaj administratorom na podłączenie RingCentral w imieniu członka

    Przepływ RingCentral był tylko samoobsługowy, więc administrator zarządzał Profil innego członka widział "muszą je połączyć". Sysadmins Zwykle utwórz konto RingCentral członka i potrzymaj ich poświadczenia, tak Powinni być w stanie połączyć się w imieniu członka. - Początk/status/odłączenie członka OAuthControllera teraz akceptuje opcjonalny cel Członek Id. Działanie na innym członku wymaga MANAGE_EXTENSIONS lub MANAGE_VOIP_SETTINGS (lustrza w bramkę profilową); self jest zawsze dozwolone. - start również weryfikuje, że docelowy członek jest faktycznie przypisany tej instancji (ang.). Instancja jest lubg-scoped, więc potwierdza to samo-org). - Ktokolwiek dopełnia login RingCentral, nadal określa tożsamość; Przydzielony z podłączonymi włącznikowymi strażnicy przedłużającej flaguje niedopasowanie.

  11. · kamo-internal

    Analityka użytkowania + Widok wglądu (P2)

    Zapisy - zdarzenia i dialog Insights z sumą org + Najczęściej żywane materiały (wg pobierania + podgląda).

  12. · MediaService

    MaterialAnalyticsController — zdarzenia rekordowe + agregaty

    POST (rekord) + GET /analityka (na materiałami według Typ + sumy org).

  13. · kamo-shared-library

    MaterialEvent byt + repo (analiza danych)

    Zdarzenia użycia tylko do Appendly z per-(imgId, typ) Zapytanie zagregowane. Tabela MATERIAL_EVENTS (ukierunkowane CRDB DDL; auto-skanuje KI).

  14. · kamo-internal

    Zatwierdzenie przepływu pracy UI + filtrowanie łagodzenie wszystkich (P2)

    Kontrola stanu w szufladzie - odznaka statusu na płytkach, a Filtr stanu na pasku narzędzi. Również ładuje wszystkie strony materialne z góry (oszłomowe), więc wyszukaj/tag/ Filtry kampanii/status obejmują całą bibliotekę, a nie tylko pierwszą stronę.

  15. · MediaService

    MaterialReviewController — mapa stanu + set-status

    GET /api/media/materiały/recenzje (mapa o szerokości ujrzystany imgId-status) + POST, aby ustawić status materiału (walidowane, recenzent-sst z wertykiem).

  16. · kamo-shared-library

    MaterialReview entity+repo (stajnia przystanowania przy przystającym)

    PROJEKT/PENDING/APPROOWOWANY/ARCHIVED na materiał, kluczowy przez imgId (smakowanie schematu nietkniętego). Tabela MATERIAL_REVIEWS (celowany CRDB DDL; auto-skany KI).

  17. · kamo-internal

    RingCentral connect + softphone web-phone v2 fixes

    Naprawki Softphone SDK (fontoń centralno-web-phone to v2.4.0, a nie v0.x adapter Celowo — stary wp.userAgent.Użycie rzuciło się na init): - Przepis RingCentralPhoneSdk dla v2 API: pojedynczy sipInfo obiekt, Start()/call()/dispose(), zdarzenia wywołane połączeniami/outboundCall, wczesne wyjeździe okablowanie, syntetyzowane wypust/trzymanie/zmutowane/niezmutowane oraz przyjęcie SDK Element audio per-ca-remote-audio, więc routing wolumin / urządzenia AV działa. - PhoneSdk.SipInfo: dodaj outboundProxyBackup + stunServers. - useSoftphone: wyczyść przyklejony baner dyżurny na zdalnym rozstaniu podczas Pierścień; nie zburzaj SDK w połowie dyluwania na odświeżeniu uwierzytelniania; ochraniacz przed Auto-odpowiedzi + call-for-ward double-accepting. Połączenie z RingCentral: - PhoneSettingsTab: samoobsługowa karta "Connect RingCentral" na własną rękę Profil (admins otrzymują status tylko do odczytu), obsługa przekierowania OAuth i a Ostrzeżenie przedłużonej. - voipApi: członek OAuth start/status/disconnect. - useSoftphone + SoftphonePanel: needsMemberConnection gating with a "Connect Twój monit konta RingCentral zamiast błędu rejestracji.

  18. · VOIPService

    Namember RingCentral OAuth identyfikacja + softphone SIP fixes

    Poprawki porównawcze Softphone SIP: - getSipCredentials: map outboundTyTyTySyTęp serwerach (web-phone v2 needs Te dla WSS failover + ICE / media); throw ProviderException (502) zamiast Obserwacja goły RuntimeException (500), że połów SipControllera przegapił; strzec przed Niewłaściwe rozszerzenie tożsamości SIP. Nagwiązany z Member RingCentral połączenie: - RingCentralTokenResolver: rozwiązanie/odśwież własny token członka z jednolotowe (RC obraca tokeny odświeżające), połączenie z potrzebami na martwym tokenze, I cofnięcie-na-disconnect. - OAuthController: - członek Id z sesji Tylko (samoobsługa), zakres wypisywania, PKCE; łącz rejestrowanie callback Podłączone rozszerzenie. - SipController + PhoneProviderFactory: softphone rejestruje się jako członek Rozszerzenie OWN; zwraca 200 dyskryktora ds. Połączenia w momencie niepołączenia. - MemberVoipConfig Administrator: ujawnić status połączenia; cofnięcie po przeniesieniu. - Nowa stoła czyta się z wdziękiem, jeśli członek_voip_oauth_token nie jest jeszcze migrowany.

  19. · kamo-shared-library

    Dodaj MemberVoipOAuthToken dla połączeń RingCentral naczłonkowy

    Per-member OAuth token toked (członek Id, dostawca, instanceId) - poparcie Przedłużeniu operacji RingCentral — softphone sip-provision plus the Dziennik rozmów osobisty członka / poczta głosowa / obecność. Wyraźnie od strony org/instancja OrgOAuthToken (account-scoped). Wymaga biegu KamoInitializer do Stwórz : )

  20. · kamo-internal

    Kolekcje/kampania UI (P2)

    Sekcja kolekcji napojowej (create/select/delete), filtr kampanii w widoku kolekcji, oraz edytor zbiorów w szufladzie detali (dodać / unieruchomać materiał, create-and-add). Przewodowy poprzez /api/materiały/kamania/ + materiałyCampaignsApi; miejsce pracy łączy mapę elementu Po stronie klienta, jak tagi.

  21. · MediaService

    MateriałCampaignController — CRUD + mapa elementów + add/usmoli

    /api/media/materiały/kamania: lista/create/update/delete, GET /items (okolistra imgId-campaignId Mapa), POST /add + / usuń z kontrolami org-ownership.

  22. · kamo-shared-library

    MateriałCampaign + jednostki/rezyd. (kolekcje)

    Pierwszej klasy kolekcje grupują materiały w folderach. Tabele MATERIAL_CAMPAIGNS + MATERIAL_CAMPAIGN_ITEMS (ukierunkowany CRDB DDL; auto-skanuje KI w następnym uruchomieniu).

  23. · kamo-internal

    Tagi UI + kontrola na poziomie dostępu (P2)

    Tagi (org-scoped, cross-ctting): chipsy znacznikowe na płytkach, pasek filtra tag (AND w poprzek wybranych), oraz edytor tagów w szufladzie detali (przypisz / unieruchomić istniejące, create-and-assign new). Przewodowy poprzez /api/materiały/tagi/o- proxies + materiałyTagsApi. Dodaj też widoczność (poziom dostępu) Kontrola szuflady przy użyciu istniejącego punktu końcowego na poziomie dostępu.

  24. · MediaService

    MaterialTagController — tag CRUD + przypis/niepodpis + mapa zadań

    /api/media/materiały/tagi: lista/utwórz/delete tagi, GET /assignments (obszeroko na cały uj. imgId-tagId Mapa obszaru roboczego łączy się ze stron klienta), POST /sign + /nieśznacz z kontrolami org-ownership.

  25. · kamo-shared-library

    MaterialTag + jednostki przydziału/repozycji (tagsy zorg)

    Płaska, wycinana oś znacznika nad folderami dla materiałów marketingowych. Tabele MATERIAL_TAGS i MATERIAL_TAG_ASSIGNMENTS (stworzone za pomocą ukierunkowanego CRDB DDL; auto-skanów KI w następnym uruchomie).

  26. · kamo-internal

    Zarządzane linki publiczne UI (P1) — create/expiry/revoke/view-count

    Szutrawka detaliczna zyskuje panel "Linki publiczne" (ShareLinkManager): utwórz trwałe łącze z Opcjonalna etykieta i wygasają (1h/1d/7d/30d/nid), kopiować ją, patrz, patrz jej liczba i cofaj ją. Wspierane przez nowe punkty końcowe rejestru MediaService za pośrednictwem /api/materiałów/links. Nat wt. w tym, w tym, że w tym, w tym, w tym, w tym, z w tym, w tym, z w tym, w tym, w tym, z w tym, w tym, w tym, w tym, w tym, z wt. w 1-strzałowy link szybkiej obsługi do szybkiego udostępniania społecznościowego / e-mail.

  27. · MediaService

    Zarządzane punkty końcowe w linkach publicznych (twórz/lista/revoke) + śledzony serw

    Dodaje POST/GET /api/media/materiały/materiały/linky i DELETE /links/A-powrócony przez MaterialShareLink, I determinuje najpierw zarządzane tokeny na publicznym GET (sprawdzanie cofniętych / wyważanie i uderzanie viewCount) przed powrotem do starszego weryfikatora HMAC. Losowe tokeny nieprzezronięte, lub g-scoped Kontrole własnościowe, TTL zamknął się do 1 y.

  28. · kamo-shared-library

    Podmiot rejestru materiałShareLink + repo (zarządzane / śledzące linki publiczne)

    Odnawiwalne, wygasające, liczone w widoki linki publiczne do materiałów marketingowych — przetrwały W ten sposób linki mogą być wymienione, cofnięte i liczone (w porównaniu z bezpaństwowymi tokenami HMAC). Automatycznie skanowane przez KI (EntityScan com.kamo) i MediaService; wymaga KI run, aby utworzyć Tabela MATERIAL_SHARE_LINKS.

  29. · kamo-internal

    Dodaj prawym przyciskiem myszy / menu kontekstowe long-press do wierszy widoku konwersacji

    Uzupełnia menu akcji listy w obu trybach widoku. Rozmowy już otwarte To samo wspólne menu na kliknięciu prawym przyciskiem myszy i dotknij długiego naciśnięcia z działaniami na poziomie wątków: Odpowiedz / Odpowiedz wszystkim / Napkom (działając na najnowszym przesłaniu wątku, naciągniętym Popyt i skomponowanie z aktywnej skrzynki pocztowej), Raport Spam / Nie Spam i Delete (własnoraz wszystkim wątek), Mark czytał, i Star / Unstar.

  30. · kamo-shared-library

    DecydeaG.appliedThreshold obnaża faktyczną poprzeczkę zaufania

    Brama wewnętrznie stosuje się maksymalnie (podrzędne nadpisy, bezpieczeństwoFloor, piętro na scenie) ale Wezmatorowie mieli tylko ścianę lokatorów przed bramą. Przyłożonej twierdza zwraca prawdziwą Tak więc decyzja o doniesieniu może utrzymać próg IN-EFFECT (egzaminator- Powtórne) zamiast wartości, którą brama po cichu podnosi. Additive; ocena() Niezmieniony. Przepustka DecytTest 14/14.

Twój wszechświat czeka.

Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.

Bezpłatne na zawsze — nie wymaga karty kredytowej