Changelog
Was ist neu?
Jede Verbesserung an der Plattform, wie sie geliefert wird.
· kamo-shared-library
Shared AusEngineClassifier - eine Quelle der Wahrheit für die Agentur-Mapping von 8,2
Die Programm-Engine, Run-Engine und Entscheidungs-Gate-Mappings waren lokal zu ************ Die Kapitalmärkte Lock-Bühne AUS Hard-Stop benötigt die identische Klassifizierung, und ein Fair-Lending-Gate darf nicht zwei haben Kopien, die driften können. Die drei reinen Mappings extrahieren ************ (statische, erschöpfende Schalter = kompilierte Vollständigkeit / 8,2 Drift Guard). Preislöser delegiert jetzt Dazu; das LockStageAusGate der Kapitalmärkte verwendet dasselbe. Additive, kein Schema.
· kamo-internal
AI auto-tag + beschriftet UI; Anbieter Cost-Tier/Vision-Einstellungen (P3)
Einstellungen - KI - Provider: Jeder Anbieter erhält eine Kostenstufe (Leicht/Medium/Heavy) und Unterstützt Vision toggle (+ Listenchips). Material Schublade: 'Sonden Sie Tags mit KI' (akzeptieren Sie Chips zu bewerben) und 'Beschreibung mit KI zu beurigen' - beide rufen die org eigenen konfigurierten Anbieter über MediaService-AIService; ausfallend mit einer klaren Nachricht, wenn kein Vision-Anbieter eingerichtet ist.
· AIService
Provider Cost-Tier/Vision Passthrough + interner One-Shot-Vision-Endpunkt
AiProviderController liest KostenTier + unterstütztVision. ProviderRoutingService Gewinne selectVisionProvider(orgId, tier). **************** läuft einen One-Shot Vision-Vervollständigung Wiederverwendung des Providers/Adapters der org (keine Sitzung/RAG/Tools). Neuer AiInternalController POST /api/ai/internal/vision (X-Internal-Auth, OTK-freiung) für Service-zu-Service-Anrufer.
· MediaService
AI auto-tag + Bildunterschrift über org's Provider (P3)
MaterialAiController POST **************** überprüft Eigentum, prägt eine kurzlebige signierte Material-URL und ruft den internen Vision-Endpunkt von AIService auf (org's eigene Provider, LIGHT tier) über AiVisionClient. Lenient Tag Parsing; scheitern-geschlossen, wenn keine Vision Provider konfiguriert.
· kamo-shared-library
AiProvider cost tier + vision flag (zwei orthogonale Fähigkeit Achsen)
Fügt costTier hinzu (LIGHT/MEDIUM/HEAVY via neue AiProviderTier enum) und unterstütztVision boolean zu AiProvider, so Integrationen können sich aussuchen, wie teuer ein Anbieter zu bedienen und welche unterstützen Vision. Repo-Funder für Anbieter aktiver Vision. Spalten, die AI_PROVIDERS über ALTER hinzugefügt wurden.
· EmailService
Serverseitige "Anzeige externe Bilder anzeigen" Einwilligung
Ersetzt die Client-lokale (localStorage) Erinnerung an die externe Bildwahl mit einer dauerhaften Aufzeichnung pro Person. Neuer RemoteImageConsentService (fail-soft liest so message fetch funktioniert noch, bevor die Tabelle existiert) + POST /api/email/remote-image-consent um die Zustimmung zu protokollieren. Die Full-Message DTO trägt jetzt remoteImagesGebot (aufgeschaut von member + Message-ID), in der Single-Nachricht, Thread und Shared-Mailbox bestückt holen Sie Pfade, damit der Client sein Gate vom Server platzt.
· kamo-shared-library
EmailRemoteImageConsent Entität + Projektarchiv
Mitgliederaufzeichnung, die ein Mitglied gewählt hat, um externe (ferne) Bilder anzuzeigen für eine bestimmte Nachricht, die von member_id + normalisierter RFC Message-ID (unique) eingegeben wird. Befolgt das email_metadata member-scoped pattern (FilterRuleEntity). Backs the serverseitige "Anzeige externe Bilder"-Voreinstellung, so dass die Wahl über bleibt Geräte und Sitzungen. KamoInitializer erstellt den Tisch auf seinem nächsten Lauf.
· InitializerService
INVESTOR_PRICE Spalte zu rate_locks + loan_pricing_snapshots hinzufügen
@Bestellung(80) idempotent ADD COLUMN IF NOT EXISTS (DECIMAL(9,4), passend zum Preis-zu-100 Grids) so dass der MLOS RCE kann die wahre nicht-par Anleger Ausführung Preis auf der Bindungssperre und gebundenes Zitat statt par-by-omission. Additive annullierbar; Spiegel RecordingTranscriptMigration.
· kamo-shared-library
Nehmen Sie den echten Non-Par-Investorpreis auf RateLock + LoanPricingSnapshot
Die verbindliche Rate-Lock-of-Record und ihre gebundene Anleihe trugen nur Rate + lockDays; Rabatt/Riginationspunkte wurden null gelassen, so dass die Kernunternehmen PAR lesen, während die reale Preis-Zahl ************ Preis-zu-100 mit Verleiher Marge eingebacken) lebte nur auf der MLOS Side-Leader MlosLockRecord.lockedPrice. Fügen Sie eine INVESTOR_PRICE-Kolumne hinzu (DECIMAL(9,4), passend zu den ausgelieferten Preis-zu-100-Grasten) an beide Entitäten + ihre DTOs + **************** Es ist der INVESTOR Ausführungspreis, absichtlich NICHT in Krediterpunkte zerlegt (das Netze aus Marge und braucht die Gebühr Modell - Zerlegung jetzt würde falsch bestbilligen Kreditnehmer Punkte, ein Reg-Z/ECOA-Offenlegungsfehler). Punkte bleiben null, bis das Gebührenmodell landet; der Rohpreis ist jetzt auf der Sperre von Rekord erhalten, nicht nur das Nebendarle. Populiert von der RCE (MLOSCapitalMarketsService) von finalPrice; Spalte materialisiert von KamoInitializer RateLockInvestorPriceMigration (ADD COLUMN IF NOT EXISTS).
· kamo-internal
Lassen Sie Admins RingCentral im Auftrag eines Mitglieds verbinden
Auf den Handy-Einstellungen eines anderen Mitglieds, ein Admin mit verwalten-VOIP-Rechten (canManageVoipConfig) sieht jetzt Connect/Reconnect/Disconnect für das Mitglied RingZentral-Account statt eines Nur-Lese-Kontos "sie müssen es selbst verbinden" Nachricht - für den häufigen Fall, in dem ein Systemadministrator den RingCentral des Mitglieds hält Referenzen. Die Verbindungskopie macht deutlich, dass Sie sich bei DAS Mitglied anmelden Anmeldeinformationen, und die Ziel-Mitglieds-ID wird durchgereicht (Server erzwingt das Recht).
· VOIPService
Erlauben Sie Administratoren, RingCentral im Namen eines Mitglieds zu verbinden
Der pro-Mitglieder RingCentral Flow war nur eigennützig, also ein Admin-Verwalten Das Profil eines anderen Mitglieds sah "sie müssen es selbst verbinden". Sysadmins häufig erstellen Sie das RingCentral-Konto des Mitglieds und halten ihre Anmeldeinformationen, so sie sollten in der Lage sein, sich im Namen des Mitglieds zu verbinden. - OAuthController Mitglied start/status/disconnect akzeptiert jetzt ein optionales Ziel memberId. Die Tätigkeit auf ein anderes Mitglied erfordert MANAGE_EXTENSIONS oder MANAGE_VOIP_SETTINGS (spiegelt das Profil-edit-Gate); selbst ist immer erlaubt. - Start auch überprüft das Zielmitglied ist tatsächlich diese Instanz zugewiesen (die Instanz ist org-scoped, so bestätigt dies gleich-org). - Wer das RingCentral-Login abschließt, bestimmt noch die Identität; zugewiesen-vs-verbundene Verlängerungswache markiert ein Missverhältnis.
· kamo-internal
Usage Analytics + Insights Ansicht (P2)
Aufzeichnungen ************ Veranstaltungen und ein Insights Dialog mit org totals + die die meisten verwendeten Materialien (durch Downloads + Vorschauen).
· MediaService
MaterialAnalyticsController - Aufzeichnungsereignisse + Aggregate
POST ************ (Rekord) + GET /analytics (Promaterial zählt durch Typ + org Summen).
· kamo-shared-library
MaterialEvent Entity+repo (Verwendungsanalyse)
Nur anbewerbeungsveranstaltungen ************ mit einem per-(imgId,type) aggregierte Abfrage. Tabelle MATERIAL_EVENTS (gezielte CRDB DDL; KI Auto-Scans).
· kamo-internal
Approval Workflow UI + Load-all Filterung (P2)
Statuskontrolle in der Schublade ************ Statusplakette auf Fliesen und Statusfilter in der Toolbar. Auch lädt alle Materialseiten im Voraus (gedeckelt) so suchen/tag/ Kampagnen/Statusfilter decken die gesamte Bibliothek ab, nicht nur die erste Seite.
· MediaService
MaterialReviewController - Statuskarte + Set-Status
GET /api/media/materials/reviews (org-wide imgId-Status map) + POST zur Satzung des Materialstatus (besordent, Rezensenten-getempt, upsert).
· kamo-shared-library
MaterialReview entity+Repo (Zulassung Status Side-Tablet)
DRAFT/PENDING/APPROVED/ARCHIVD pro Material, von imgId (Imaging Schema unberührt). Tabelle MATERIAL_REVIEWS (gezielte CRDB DDL; KI Auto-Scans).
· kamo-internal
Per-Mitglied RingCentral connect + Softphone Web-Telefon v2 fixes
Softphone SDK-Fixes (ringzentrales Netzwerk-Telefon ist v2.4.0, nicht der v0.x der Adapter gezielt - der alte wp.userAgent.* Verwendung warf auf init): - RingCentralPhoneSdk für die v2 API umschreiben: einzelne sipInfo-Objekte, start()/call()/dispose(), inboundCall/outboundCall-Ereignisse, frühe Hin- und Rückgabe Verdrahtung, synthetisiertes Maut/Hold/muted/unmuted, und Annahme der SDK's pro-call Audio-Element als #rc-remote-audio so AV-Lautstärke/Gerät Routing funktioniert. - PhoneSdk.SipInfo: OutboundProxyBackup + beununServer hinzufügen. - verwendenSoftphone: löschen Sie die steckenden eingehenden Anrufbanner auf einem entfernten Hangup während Ring; nicht abreißen Sie das SDK Mitte des Anrufs auf Anmelde-Refresh; schützen Sie sich vor auto-Antwort + Call-Forward Double-Adcepting. Per-Mitglied RingCentral-Verbindung: - PhoneSettingsTab: Self-Serve "Connect RingCentral"-Karte auf der eigenen -profil (Admins erhalten Nur-Lese-Status), OAuth-Redirect-Handhabung und ein Verlängerung-Missverhältnis Warnung. - voipApi: Mitglied OAuth start/status/disconnect. -Softphone + SoftphonePanel: needs memberConnection gating with a "Connect Ihr RingCentral-Konto"-Prompt anstelle eines Registrierungsfehlers.
· VOIPService
Pro-Mitglied RingCentral OAuth Identität + softphone SIP fixes
Softphone SIP Anmeldedaten-Fixes: - getSipCredentials: OutboundProxyBackup + stunServers (web-phone v2 needs map outbound sie für WSS failover + ICE/media); werfen ProviderException (502) statt einer nackte RuntimeException (500), dass SipController Fang verpasst; Vorsicht gegen eine falsche SIP-Identität. Pro-Mitglied RingCentral-Verbindung: - RingCentralTokenResolver: das eigene Token eines Mitglieds mit Single-Flight (RC rotiert refresh Tokens), needs-reconnect on a dead token, und widerrufen-auf-disconnect. - OAuthController: ************ - Mitglied der Sitzung nur (self-serve), VoipCalling-Fernbedienungs-Fernbedienungs-Fernbedienungs-Server, PKCE; connect-Callback verbundene Erweiterung. - SipController + PhoneProviderFactory: Das Softphone registriert sich als Mitglied OWN-Erweiterung; gibt einen 200 needsMemberConnection Diskriminator zurück, wenn nicht verbunden. - MemberVoipConfigController: Verbindungsstatus aussetzen; bei Umwidmung widerrufen. - New-Table liest anmutig absenken, wenn member_voip_oauth_token noch nicht migriert wird.
· kamo-shared-library
MitgliedVoipOAuthToken für die ständigen RingCentral-Verbindungen hinzufügen
Pro-Mitglied OAuth Token Keyed (memberId, Anbieter, instanceId) Unterstützung Verlängerungs-kopierte RingCentral-Operationen - Softphone-Sip-Provision plus die Der persönliche Anruf-Log / Voicemail / Präsenz des Mitglieds. Distinct from the org/instance OrgOAuthToken (account-scoped). Benötigt einen KamoInitializer-Lauf zu erstellen ************
· kamo-internal
Sammlungen/Kampagnen UI (P2)
Links-nav Sammlungen (erschaffen/auswählen/löschen), Kampagnenfilter auf der Sammlungsansicht, und ein Sammlungseditor in der Detailschubladen (Material, erstellen und erstellen). Wired durch /api/materials/campaigns/* + materialsCampaignsApi; workspace verbindet die Artikelkarte Client-seitige wie Tags.
· MediaService
MaterialKampaignController - CRUD + Artikelkarte + Add/Entfernung
/api/media/materials/campaigns: list/create/update/delete, GET /items (org-wide imgId-campaignId Karte), POST /add + /remove mit Org-Eigentum Kontrollen.
· kamo-shared-library
MaterialKampagne + item entities/repos (Sammeln)
First-Class-Gener bezeichnete Sammlungen gruppieren Materialien über Ordner. Tabellen MATERIAL_CAMPAIGNS + MATERIAL_CAMPAIGN_ITEMS (gezielte CRDB DDL; KI Auto-Scans auf nächstem Lauf).
· kamo-internal
Tags UI + Access-Level-Steuerung (P2)
Tags (Ort-scoped, Cross-cutting): Tag-Chips auf Kacheln, eine Tag-Filterleiste (AND über ausgewählte), und ein Tag-Editor in der Detailschubladene (bestehendes, erstellen-and-assign new). Wired durch /api/materials/tags/* Proxys + materialsTagsApi. Auch fügt eine Sichtbarkeit (Zugang-Ebene) die Schublade mit dem vorhandenen Endpunkt auf Access-Level steuern.
· MediaService
MaterialTagController - Tag CRUD + assign/unassign + assignment map
/api/media/materials/tags: list/create/delete tags, GET /zuweisen (org-wide imgId-tagId Karte der Arbeitsbereich verbindet Client-Seite), POST /assign + /unassign mit org-ownership Kontrollen.
· kamo-shared-library
MaterialTag + Zuordnung Entsorger/repos (org-scoped tags)
Flache, schneidende Tagachse über Ordner für Marketingmaterialien. Tabellen MATERIAL_TAGS und MATERIAL_TAG_ASSIGNMENTS (erzeugt über gezielte CRDB DDL; KI-Auto-Scans bei nächster Laufzeit).
· kamo-internal
Verwaltete öffentliche Links UI (P1) - erstellen/expiry/revoke/view-count
Detailschubträger erhält ein 'Public Links'-Panel (ShareLinkManager): Erstellen Sie eine dauerhafte Verbindung mit ein optionales Label und Ablauf (1h/1d/7d/30d/never), kopieren Sie es, sehen Sie die Ansichtszahl und widerrufen Sie es. Unterstützt durch die neue MediaService Registry Endpunkte via /api/materials/links proxies. Die One-Shot-Schnellkoped-Link bleibt für schnelle Social / E-Mail-Sharing.
· MediaService
Verwaltete Public-Link-Endpunkte (erschaffen/list/revoke) + verfolgter Dienst
Fügt POST/GET /api/media/materials/links und DELETE /links/{id' mit MaterialShareLink, und löst verwaltet Tokens auf der öffentlichen GET zuerst (Kontrolle widerrufen / Abtreibung und Stoßen vor dem Rückgriff auf den Vermächtnis HMAC Prüfer. Zufällige undurchsichtige Tokens, org-scoped Eigentumsprüfungen, TTL eingeklemmt auf <=1y.
· kamo-shared-library
MaterialShareLink Registry-Einheit + Repo (veran-/getrackte öffentliche Links)
Backs widerrufbar, auslaufende, Ansicht gezählt öffentlichen Links für Marketing-Materialien - bestanden so können Links aufgelistet, widerrufen und gezählt werden (vs. die staatenlosen HMAC One-Shot-Token). Auto-Scanned by KI (@EntityScan com.kamo) und MediaService; benötigt einen KI-Lauf, um die MATERIAL_SHARE_LINKS Tabelle.
· kamo-internal
Rechtsklick / Long-Press-Kontextmenü zu Gesprächsreihen hinzufügen
Schließt das Listen-Action-Menü über beide Ansichtsmodi hinweg aus. Gesprächsreihen nun offen das gleiche freigegebene Menü auf der rechten Maustaste und berühren Sie Long-Press mit Thread-Level-Aktionen: Antwort / Antwort Alle / Vorwärts (Betrieb auf der neuesten Nachricht des Threads, geholt auf aus dem aktiven Postfachen zu verlangen und zusammengesetzt), Spam / Nicht Spam und Löschen (über den ganzen Thread), Mark lesen, und Star / Unstar.

Euer Universum wartet.
Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.
Für immer kostenlos – keine Kreditkarte erforderlich