Changelog
Co nowego.
Każde ulepszenie platformy, jak to wysyła.
· kamo-internal
Filtry zakładki Zamówienia według własnych rynków organizacji
Chipy i etykiety rzędowe były według linii biznesowej, nazwanej po pierwszym Rynek detaliczny, więc dwa rynki detaliczne zawaliły się w jeden. Każdy wiersz pokazuje teraz Własny rynek (z serwera); starszy rekord bez rynku idzie Do jedynego rynku swojej linii, gdy jest jeden, inny do Grupa "<Linia> — Brak rynku". Zapamiętany filtr, którego rynek zniknął Wszystko wraca do normy.
· DocsService
DocsService wszędzie odrzuca zablokowane dokumenty i sprawdza zapisy edytora
- WOPI PutFile zapisuje raw MinIO, więc zapis przechodzi najpierw przez AntivirusUploadGuard: a harmful save nie zapisuje niczego, zachowuje ostatnią dobrą zawartość dokumentu i odpowiada edytorowi 422 ANTIVIRUS_BLOCKED (503 ANTIVIRUS_UNAVAILABLE więc próbuje ponownie); czyste zapisanie jest oznaczone GetFile odmawia zablokowania/sprawdzania zawartości z wartością 423. - Obrazowanie /download, /stream, konwertowane pliki PDF i miniatury stron wywołują bramkę odczytu przed 423 ANTIVIRUS_BLOCKED / ANTIVIRUS_CHECKING. UWAGA treść przechodzi, więc jej PDF jest niedostępny Eksport zbiorczy usuwa zablokowane dokumenty, podobnie jak inne wyłączenia. - Wersja do pobrania / pdf / miniatura ocenia własną zawartość wersji. - Kariery CV są sprawdzane jako kariery z kandydatem i aplikacji; kariery Kontrolery odpowiadają na odmowy antywirusowe w kształcie platformy zamiast 500. - Prawne: przesyłanie map odmawia do własnego 422/503, wstrzymane przesyłanie prosi o ponowną próbę (jego PDF Renderowanie byłoby wykonane z niesprawdzonych bajtów), wykonywane pakiety i próbki żądań są Binder albumy ze zdjęciami pozostawiają zablokowane zdjęcia. - Wiersze listy dokumentów/metadanych zawierają scanStatus / scanFamily / scanOutcome. - ConfigMap kamo.antivirus.* (włączone: false dopóki KamoAntivirus nie jest gotowy); Poprawiono błąd 0x0000000E w pliku mlos-internal-auth.
· SecurityService
Każdy wiersz zamówień ma własny rynek
Wiersze przenoszą marketId / marketTitle z ich zaangażowania (jedno zapytanie przez uid), więc organizacja z dwoma rynkami detalicznymi widzi, które Z jednego z nich pochodziło zamówienie zamiast z obu pod nazwą pierwszego rynku. Rekordy dokonane przed śledzeniem rynków pozostają null.
· KlusterServices
Ostrzeżenia antywirusowe (niedziałający skaner, przestarzałe sygnatury, awaria bramki lustrzanej, p95, wzrost liczby wykryć, zaległości)
Nakładany ręcznie (monitoring/ nie jest celem CI).
· kamo-shared-library
A rental needs a renter; market on the engagement; cancel, re-date, check out, return and cancel a booking
- createRentalRequest refuses a missing or foreign customer account, records the market (the asset's, else the chosen one) on the engagement, and validates dates and the rate type. Confirm refuses a request with no account. - setRentalRequestAccount / setBookingAccount move the renter to another account and never clear it; both answer the updated record. - Requests: cancel/decoder (IntentStatus.CANCELLED, reason kept) and new dates (with the availability check). Bookings: check out (the booking's FulfillmentOrder IN_PROGRESS), return or end (COMPLETED; CommitmentStatus.FULFILLED; late and damage fees added to the total; condition notes), cancel (VOIDED, before it goes out), and new dates (only the end while out), each checking the asset's other bookings under a row lock on the asset so two confirms cannot double-book. - EngagementLifecycle: a VOIDED commitment commits nothing; all voided and no order is CANCELLED. - A returned booking no longer holds its dates. The asset's held dates are readable (findRentalAssetBookings) for date pickers. - DTOs: marketId/marketTitle on requests, bookings and assets; booking -> rentalRequestUid, rateType, checkedOutAt, returnedAt, fees, notes, cancel reason; request -> cancelReason, bookingStatus. Lists filter by market and load assets, bookings and hand-overs in one query each instead of per row. - Rental assets: description column; market validated as the org's Rental market and movable on update; negative rates refused; duplicate codes refused on update; an asset with rentals on record cannot be deleted (switch it off instead). - Indexes: **************** by engagement, commitments by rental asset, fulfillments by commitment, rental assets by org and market (applied by hand).
· kamo-internal
Rynki — własne rynki organizacji, pod własnymi nazwami
Rynek jest tym, co definiują członkowie (tytuł + nazwa + nazwa użytkownika) Opis); jego Linia Biznesu jest tylko jego rodzaju. - Opcja nawigacji to Rynki. Z jednym rynkiem jest to rynek, według jego Tytuł (jak wcześniej); z dwoma lub więcej otwiera menu z wierszem na Rynek — jego tytuł, opis poniżej, ikona dla jego linii Każdy z nich otwiera zakładkę danego rynku. Jeden kanał z buforowanej listy Obie nawigacje, launchpad i etykieta, odświeżone na zmiany rynkowe. - Wiersze menu nawigacyjnego mają opcjonalny opis (popover, szyna, górny pasek). - Pole typu formularza rynkowego to "Linia biznesowa"; każdy wybór mówi Co to daje rynkowi, a zablokowany jeden nazywa aplikację, której potrzebuje Pomocnicy nazwy i opisu wyjaśniają, co oznacza nazwa i opis Członkowie zobacz w menu Rynki. - ACCESS_COMMERCE czyta "Dostęp do rynków"; strona pożyczkowa wskazuje na Ustawienia → Linie biznesowe.
· MediaService
MediaService sprawdza załączniki za pomocą antywirusa i odrzuca zablokowane pliki przy każdym odczycie
- Załączniki czatu (członek CHAT, web-chat gość PUBLIC), pliki systemowe-bug, obrazy Growth Hub Są sprawdzane wewnątrz storeContentAddressed z ich kontekstem (członek, konwersacja); Canva Odmowa dociera do klienta w momencie, gdy kształt platformy (422 ANTIVIRUS_BLOCKED {rodzina} / 503 ANTIVIRUS_UNAVAILABLE) zamiast być owinięty w 500. - Tła spotkań (raw MinIO, public bucket) przechodzą najpierw przez AntivirusUploadGuard. - /attachments/link (dedup by hash) odrzuca zawartość Antywirus zablokowany (422); zatrzymany plik może być Jest połączony i pozostaje nieczytelny dopóki nie zostanie zaznaczony. - Załączniki przenoszą skanowanie {status, rodzina, wynik} na odpowiedź upload, wiadomość na żywo Ramka i historia; Oczekiwanie podczas trzymania. - ImagingProxyController (oryginalny i podgląd), pobieranie odwiedzających, pliki systemowe, Obrazy, materiały i odczyty materiałów Canva z Growth Hub wywołują bramkę odczytu: 423 ANTIVIRUS_BLOCKED / ANTIVIRUS_CHECKING, sprawdzony przed brakującą zawartością 410, więc zatrzymany Serwer proxy sprawdza teraz członkostwo przed stanem zawartości. - ConfigMap kamo.antivirus.* (włączone: false dopóki KamoAntivirus nie jest gotowy); Poprawiono błąd 0x0000000E w pliku mlos-internal-auth.
· ConversionService
ConversionService sprawdza przesyłane pliki za pomocą antywirusa, uzupełnia zatrzymane pliki, ponownie sprawdza nowe podpisy
Zastępuje klienta clamd w usłudze (malware / pakiet, UploadScanGuard, QuarantineStore, Skanowanie wsteczne (retro-scan) z biblioteką współdzieloną - /upload, /replace, /templates/upload są sprawdzane wewnątrz ImageService przed każdym wierszem lub Obiekt jest zapisywany (HOLD dozwolone); odmowy używają kształtów platformy: 422 ANTIVIRUS_BLOCKED {family}, 503 ANTIVIRUS_UNAVAILABLE, 503 HASH_MISMATCH. MALWARE_DETECTED zniknął i nie można go znaleźć Odpowiedzi przenoszą skan {status, rodzina, wynik}; a zatrzymany skan {status, rodzina, wynik} Plik jest PENDING i konwertuje po przechowywaniu. Potok emituje etap 'skanowania'. - /register-existing (dedup przez odniesienie) odrzuca zawartość Antywirus zablokowany (422). - Efekty dźwiękowe (raw MinIO) przechodzą przez AntivirusUploadGuard (bez zatrzymania, 503 w dół). - QuarantineStore nie istnieje już, więc nic nie jest zapisywane do wiadra kwarantanny; nic W nim jest dotknięty. - antivirus.hold.verdict (kolejka antivirus-hold-completer) -> AntivirusHoldCompleter, a następnie Zwykła konwersja dla zwolnionych dokumentów; błąd przechowywania naks dla ponownego dostarczenia. - antivirus.signatures.promoted (kolejka antivirus-recheck) -> AntivirusRecheckService: co flagowany hash, którego bajty są przechowywane (raporty unlock + notify + AUTO_CLEARED) oraz CLEAN zawartość oglądana po raz pierwszy w ciągu ostatnich 14 dni (LOCKED_LATER + alerty), przesyłana z MinIO, Subskrybenci będą próbować ponownie, dopóki nie istnieje strumień ANTIVIRUS. - Mapa konfiguracji: kamo.antivirus.* (włączone: false dopóki KamoAntivirus nie jest gotowy); Poprawiono błąd 0x0000000E w pliku mlos-internal-auth.
· kamo-shared-library
Zaangażowanie należy do rynku zdefiniowanego przez członka
commerce_engagements.market_id (stosowane ręcznie, FK do commerce_markets, Zamówienia detaliczne, zlecenia serwisowe, wynajem i zaopatrzenie (indeksowane za pomocą org_id) Rekordy nie mają własnej kolumny rynkowej; odczytują ją ze swoich Zaangażowanie, w ten sam sposób, w jaki czytają swoje konto klienta.
· kamo-internal
The Antivirus UI — protection seals everywhere a file appears, the Antivirus Center, the platform tab, alerts and help
Design kit (app/components/antivirus): ProtectionSeal with five animated faces (Checking, Protected, Caution, Blocked, Couldn't Check; brand + --av-* tokens, reduced motion honoured), BlockedFileCard / LockedAttachment / LockedOverlay, CautionBanner with Open a Safe Copy, MessageAntivirusBanner, ShieldClip, FalseAlarmDialog ("I think this is a mistake"), AntivirusNotReady. Logic from @kamo/antivirus-core 0.1.0 (seal state, reason parser accepting ANTIVIRUS_BLOCKED / MALWARE_DETECTED / ANTIVIRUS_CHECKING / ANTIVIRUS_UNAVAILABLE / SCAN_UNAVAILABLE). Surfaces: mail reading pane (seals, removed parts locked under their original names, message banner, inline images withheld, Download All skips them, list-row shield clip, body cache v2), composer/chat/SMS/SI trays (Checking + blocked states), chat bubbles for recipients, documents (Checking stage, seals, locked actions, caution gate), and the refusal toast on every upload (KB, avatar, careers, system bugs, sounds, account/patient/application documents, logos). Antivirus Center at **************** (VIEW_ANTIVIRUS; policy needs MANAGE_ANTIVIRUS_POLICY): protection orb, count-up KPIs, trend/origin/family charts, live threat timeline, policy switches with help, false alarms. Platform tab (MANAGE_PLATFORM_ANTIVIRUS): scanner health, releases with refresh/rollback, review queue, allowlist, outbreaks, safety drill. Three notification kinds, the Antivirus guided tour, /api/antivirus BFF, mirrors for ServiceType ANTIVIRUS(41), rights 698-700 and MANAGE_PLATFORM_ANTIVIRUS (shared-lib 332f7275), and seven help center articles. The Protection home widget component is built but not registered: the launchpad needs an ANTIVIRUS_WIDGET right block that the shared library does not have yet.
· KlusterServices
Svc_antivirus logowanie + strumień ANTIVIRUS; konwersja / e-mail może zużywać antywirusa.>
- svc_antivirus: STREAM.INFO/CREATE ANTIVIRUS, publikuje antivirus.> i rt.org.>, Subskrybuj antivirus.> i _INBOX.> (Secret kamo/nats-user-antivirus, SECRETS.md). - svc_conversion: API konsumenckie ANTIVIRUS (zatrzymaj werdykty, ponownie sprawdź promocję), publish/subscribe antivirus.>, publish rt.org.> (zapisane werdykty odświeżają interfejs użytkownika). - svc_email: ANTIVIRUS consumer API (wykrywanie filtrów poczty), antywirus. Przepisy dotyczące zadania ANTIVIRUS (R1, 14d), dzięki czemu konsumenci mogą wiązać się w pierwszej kolejności. Sprawdzono za pomocą nats-server -t na serwerze live.
· kamo-shared-library
Biblioteka współdzielona połowa Antivirus — brama, klient, tabele, prawa, rodzaje, szablony, raport
- Podmioty / repozytoria dla sześciu ręcznie stosowanych tabel (content_scan_verdicts, antivirus_detections, W tym celu należy użyć następujących narzędzi: antivirus_allowlist, antivirus_org_settings, antivirus_daily_stats). - com.kamo.z.shared.antivirus: **************** Polityka antywirusowa (skrótowo §2), AntivirusClient (przesyłanie strumieniowe /v1/scan, zatrzymuje się przez pod, przerywacz, X-Internal-Auth), AntivirusGate (scanUpload / verdictFor / assertReadable / recordVerdict / applyRecheck / drill), Nagrywarka antywirusowa (REQUIRES_NEW zapisuje, upserts), AntivirusNotifier (dzwonek + e-mail za pośrednictwem EmailService, rt.org.<org>.antivirus), AntivirusUploadGuard (ścieżki raw-MinIO), AntivirusHoldCompleter, AntivirusExceptionAdvice (422/423/503). - ImageService: ekran przed dowolnym wierszem/obiektem w storeContentAddressed (wszystkie przeciążenia) i uploadDocument; held => is_missing dat, brak obiektu; odczyt bramki w downloadDocument + publiczny assertReadable. Skanowanie jest opcjonalne dla każdej usługi (kamo.antivirus.enabled); bramka odczytu jest zawsze włączona. - ServiceType ANTIVIRUS(41, core); prawa VIEW_ANTIVIRUS 698, MANAGE_ANTIVIRUS_POLICY 699, SHOW_TOUR_ANTIVIRUS 700; PlatformRightType Użytkownik nie ma uprawnień do przeglądania tego pliku **************** AccessLogEventType ANTIVIRUS_*; cztery kanoniczne Szablony; Report Studio compliance.antivirus.
· kamo-internal
Bezpieczeństwo i nadzór oraz Mózgi i narzędzia, premium — karty na żywo, Wydaj tempo, Zasady zatwierdzania, Połączone pokoje narzędziowe z testem przed zapisaniem (SIS9)
Bezpieczeństwo & nadzór - Wydatki: domyślne budżety na pasku zapisywania zestawu, wyjaśnione z zadaniem opis budżetów i dziennych limitów każdej z ról (wartości na żywo, wiersze połączone), Tempo wydawania: dotychczasowy miesiąc każdego SI w stosunku do jego własnego miesięcznego limitu, oraz Gdzie miesiąc kończy się w tym tempie. - Kto może korzystać z czego: polityki dostępu jako karty zwykłych słów z żetonów No Limit i nazwy ról; połączone wiersze z aktualnymi wartościami dla polityki IoT SI, Do Not Contact, Reguły kontaktu i polityka ujawniania, każdy dla kogo jego ekran wpuszcza. - Wymagane sformułowanie: karta Generał została przeniesiona z Kto może użyć czego do własnej Strona (domyślne instrukcje + wymagane otwieranie/zamykanie), pasek zapisywania zestawu. - Zasady zatwierdzania: zasady zatwierdzania opisu pracy w słowach (zmieniono w Approvals room) oraz Always Allowed — stałe uprawnienia każdego SI, który Jeśli zezwoliłeś im i kiedy, zapytaj mnie ponownie za potwierdzeniem (istniejący punkt końcowy). - Powiadomienia i On Call: jeden OnCallPanel, z żywej karty. - Kontrole jakości: okno dialogowe ustawień jakości stało się tą stroną (to samo API); Wyniki > Przycisk ustawień jakości otwiera go; Konfiguracja punktów krokowych podróży tutaj. - Kontrole ochrony: kiedy kontrole naprawdę działają, Uruchom Sprawdzić teraz, ostatnie kontrole, Link do wyników. Mózgi & narzędzia - Dostawcy / Dostawca Kamo / Co mogą zrobić: trzy widoki rejestru jako Trzy sekcje z żywych kart. - Wybór modelu na pasku zapisywania zestawu. - Połączone narzędzia: serwery jako karty; każdy serwer strona pod swoją nazwą z pokojami Połączenie (test przed zapisaniem), Narzędzia (nazwy, tylko do odczytu oddzielnie), Zdrowie (ostatnie Zaznaczone, Sprawdź teraz) i Kto może korzystać (przełącznik SI z Undo, polityki ludzi). Zestaw: RoomPills i PageSection; breadcrumb/brand ink mierzony na ciemnym papierze, A w ustawieniach ramki zadeklarowałem jasną powierzchnię (jego papier jest zawsze biały). Zwykłe słowa (glosariusz) w słowniku; zaktualizowane artykuły w Centrum pomocy.
· InitializerService
Zapisz sześć tabel antywirusowych (stosowane ręcznie 2026-11-07)
content_scan_verdicts, antywirusowe_wykrycia, antywirusowe_fałszywe_alarm_reports, antivirus_allowlist, antivirus_org_settings, antivirus_daily_stats - dokładna lista dozwolonych programów IF NOT EXISTS DDL stosowany jako właściciel kamo, @Order(0), indeksuje NONCONCURRENTLY.
· kamo-internal
Własne pokoje dla każdego SI — Workbench, Opis pracy, Głos i połączenia, Dostęp i narzędzia, Zatrudnianie (SIS10)
Jedna konfiguracja SI została podzielona między pokój SI, pokój tożsamości i pokój Jego profil wyświetla teraz listę własnych pokoi jako pierwsze, według nazwy w zakładce URL **************** - Workbench: dzisiejszy pokój SI, minus to co się przeniosło. - Opis stanowiska: MemberCharterCard (wersje, przebiegi testowe, szablony ról) przeniesiono z zakładki Uprawnienia dla SI; te same czytniki (MANAGE_MEMBER_SECURITY), Edycja pozostaje "edytowalna" na serwerze. Ludzie zachowują ją na uprawnieniach Podsumowanie operacyjne to najpierw zwykłe słowa, dokładny tekst za nimi Pokaż szczegóły. - Voice & Calls: cztery karty głosowe/połączeniowe (z Identity) plus własna SI Dźwięk w tle, wielkanocne jajka i raporty zmian z Set By, na SIS3 Do kontroli w zakresie MEMBER. - Dostęp i narzędzia: członkostwo / przełożony / status, podsumowanie praw, jego Stacja robocza (z Workbench) i Otwórz swój przechowalnię (/vault?owner=, tylko Dla przechowalni listy serwerów). - Wynajem: pokazany, gdy wynajem nie jest zakończony; po tym kroki składają się Przejdź do Access & Tools za Show Steps. Każdy link SI przechodzi przez siRoomHref(id, room) (pomocnik SIS4, rozszerzony): Centrum dowodzenia, skład, widok zespołu, ocena, Red Team, kto dostaje co, Próba, SI Calling, strojenie i zatwierdzenia (opis pracy), formularz zatrudnienia (Zatrudnianie), karta członkowska Zobacz profil, treść powiadomienia Również: szyna profilu przewija się w obrębie szerokości telefonu; Link członka otwiera profil (była to martwa ścieżka /profile) Artykuły są aktualizowane.
· kamo-internal
Prawdziwe ekrany wynajmu i zakupu, złożone pod kontem klienta
Ekrany potoków wynajmu i zamówień były fikcyjnymi danymi, a ich nowe Teraz odczytują one i zapisują SecurityService: - Czytanie list wniosków o wynajem, rezerwacji, wniosków o zakup i zamówień dostawców /pos/rental-requests, /bookings, /purchase-requests i /vendor-orders, z kolumną Konto, słowami statusu zamiast kodów i zwykłymi pustymi Zakupy przełącza się między żądaniami i zamówieniami dostawców. - /commerce/bookings/new tworzy zapytanie o wynajem (aktywa, daty, rodzaj stawki, Szacunki obliczane w taki sam sposób jak przez serwer, opcjonalne konto klienta); /commerce/procurement/new tworzy zlecenie zakupu (identyfikator dostawcy wysłany jako Obaj odczytują ?accountId, ?marketId i przenoszą ?back. - Strony rekordowe pokazują tylko to, co DTOs przenoszą, utrzymują Potwierdzenie rezerwacji i Zatwierdzić i pozwolić menedżerowi złożyć rekord pod kontem (PUT .../account) lub zdejmij jedną. - Lista otwartych rekordów z withReturn; każdy wynajem Nowy idzie do /commerce/bookings/new (stary /commerce/requests/new nigdy nie istniał). - typy posApi teraz pasują do RentalRequestDTO, BookingDTO, PurchaseRequestDTO i VendorOrderDTO, w tym accountUid / accountName.
· AIService
Przetestuj podłączony serwer narzędzi przed zapisaniem go (SIS9)
- POST /api/ai/mcp/test (MANAGE_AI_SETTINGS): treść zapisu (transport, url, Nagłówki, usunięte nagłówki) plus zapisany identyfikator serwera, więc nagłówek pozostaje jako maska Sprawdzanie poprawności jako zapis (STDIO, URL guard, nagłówek, itp.) Reguły); Płaszczyzna narzędzia sprawdza go i nic nie jest przechowywane. - Odpowiedzi testowe przekazywane są na toolDetails (nazwa, tytuł, tylko do odczytu każdego narzędzia).
· MCPGatewayService
Przetestuj podłączony serwer narzędzi przed jego zapisaniem i nazwij każde narzędzie tak, jak jego serwer (SIS9)
- POST /api/mcp/servers/probe?orgId= (wewnętrzne uwierzytelnienie, tylko AIService): wyświetla listę serwerów Narzędzia niezapisanego szkicu na własnym kliencie, zamknięte na raz. Nic nie jest Nie są przechowywane, gromadzone ani buforowane i nie jest zapisywany żaden stan; ten sam URL Reguły transportu jako zapisany serwer. - Odpowiedzi na testy i sondy przenoszą toolDetails [{nazwa, tytuł, readOnly}], więc Strona ustawień może wyświetlić listę narzędzi w słowach i powiedzieć, które z nich SI może używać.
· kamo-internal
Nowe menu dla rynku na karcie Zlecenia; filtry przetrwały otwarcie rekordu
- Samotny przycisk Utwórz zamówienie (tylko sprzedaż detaliczna, a nawet nigdy nie wypełnił customer in) staje się Nowy: jeden wpis na rynek, na którym działa organizacja a członek może tworzyć w — zamówienia, rezerwacje wynajmu, zlecenia pracy, Subskrypcja (kreator na miejscu, konto wstępnie wybrane), żądanie zakupu. Każdy zaczyna się od tego konta jako klienta i tutaj wraca. - Lista zamówień otwiera prośby o wynajem, rezerwacje, prośby o zakup i Zlecenia dostawców, teraz, że serwer wymienia je. - Retail New Order wybiera klienta z listy kont zamiast Pytanie o surowy identyfikator konta i honoruje ?accountId= / ?back=; Usługa Nowe zlecenie pracy robi to samo. - useRememberedState utrzymuje stan widoku ekranu w nawigacji: Potok kredytów hipotecznych (zakładka Handel i kredyty hipoteczne na koncie) zachowuje swoje filtrowanie, sortowanie, stronicowanie i otwieranie transakcji przy otwieraniu i zamykaniu pożyczki, Zakładka Zlecenia zachowuje swój filtr rynkowy.
· kamo-internal
Jak to działa, premium — karty na żywo, pokoje opisu stanowiska, Hear It, użycie stylu, szablony ról (SIS7)
- Hub: każda z pięciu kart odczytuje swój własny stan na żywo (useHubSummary) — wstążka narożna + zwykłe żetony (jeden `HubCard` hak na sekcję w siSections; powłoka TabHub go używa). - Organizacja Opis stanowiska: każda część karty z tym, co jest napisane, otwierając swój własny pokój w nazwie Adres **************** jedna strona w pokojach zachowuje niezapisane edycje; kit SaveBar. CharterEditor przestylizowany IN PLACE (szyna jako małe karty z ikonami i wstążką na otwartej części, Nagłówek panelu sekcji, opcjonalna sekcja host-held z przeglądem wszystkich części) — każdy opis zadania Redaktor to rozumie. - Style osobowości: "Used In N Places" na styl (organizacja, role, działy, stanowiska, zespoły, członkowie jako MemberChipById) z nowego użycia securityservice; Wstążka Użyj; pole tekstowe stylu Pokazuje {orgShortName} jako układ "Nazwa organizacji" (ProseTokenField), nigdy nie jako zwykły tekst. - Role Templates: galeria SIE6 jako strona (ten sam komponent, `variant="page"`, wybierz SI w szczegółach); SegmentedFilter zamiast podkreślonego paska kart. - Połączenia i spotkania: pokoje Co dzwoniący słyszą, dźwięk w tle, języki, wyraźna mowa i przekazywanie, dołączanie Hear It odtwarza otwarcie + powiadomienie własnym głosem wybranego SI (kamoai-service), przez jego własny telefon komórkowy Dźwięk w pomieszczeniu przez pasmo telefoniczne, w wybranym języku, z przebiegiem na żywo — ambiencePreview extended (playOpening), brak drugiego syntezatora, nikt nie wywołał. Połączone wiersze z wartościami na żywo: linia SI w e-mailu Podpisy, serwery telefoniczne przenoszące linie SI, dołączanie Zoom/Teams (kit LinkedSettingRow). - Easter Eggs: karta na żywo; kroki, rzeczy do wypróbowania i zabezpieczenia składają się w panelu Jak to działa. - Skonsolidowane: jedna karta ToggleCard (zawiadomienia + języki, z których każda miała swoją kopię).
· kamo-internal
Codzienna praca i osobisty asystent (SIS8)
- SI Twojej Organizacji jest wybierany w JEDNYM miejscu (Codzienna Praca) Strumienie automatyzacji pokazują go tylko do odczytu (chip członkowski ze zdjęciem) z linkiem Zmień; Przełącznik połączeń SI nie wysyła już SI. - SiFloorSettings podzielony na swoje strony: SI Twojej organizacji, Briefingi (karty + Przewodnik pięciostopniowy edytor z własnymi ograniczeniami liczbowymi usługi i kontrolami a Przechwytywanie skrzynki odbiorczej (ograniczone, wczesne ostrzeganie przed limitem). - Kanały: połączone wiersze z wartościami na żywo dla Email Triage, SI Calls, hipoteki Przełączniki SI (tylko do odczytu; dostęp wypożyczalni tylko dla właścicieli), strony internetowe i odpowiedzi SI oraz Polityka IoT SI, każda widoczna tylko dla tych, którzy mogą otworzyć jej ekran. - Web Chat Personas: jedna nazwa wszędzie; lista jako karty, galeria i studio przeniesione pod **************** — nazwy, nigdy identyfikatory; Usunięto stare trasy /settings/ai/sales-agents, zaktualizowano linki, nie ma przekierowań. - Żywe podsumowania hub-karty dla każdej codziennej pracy i karty osobistego asystenta. - Osobisty asystent: Ustawienia początkowe / Limity / Kto dostaje co drill-ins na Zestaw (lepki pasek zapisu), obszary narzędzi pogrupowane pod prostymi nagłówkami z wyszukiwaniem. - Wskazówki pomocy, artykuły Help Center, testy.
· SecurityService
Wyświetl rekordy wynajmu i zakupów na karcie Zamówienia konta
Zapytania o wynajem, rezerwacje, zapytania o zakup i zamówienia dostawców teraz Dotarcie do konta poprzez ich zaangażowanie, więc lista zamówień zawiera (Access Commerce, podobnie jak ich własne ekrany). Żądanie, które zostało już przekształcone Wpisanie do rezerwacji lub zamówienia dostawcy jest wymienione raz. PUT **************** vendor-orders}/{id}/account pliki istniejący rekord w ramach konta (Zarządzanie wynajmami / Tworzenie wniosków o zakup).
· kamo-shared-library
Archiwizuj rekordy wynajmu i zakupów pod kontem klienta
Żądanie wynajmu, rezerwacji, żądania zakupu i zamówienia dostawcy nie miało Konto zostało zablokowane przez klienta, więc strona konta nie mogła ich wyświetlić Żyje na ich zaręczyny **************** stosowane przez ręka), więc każdy rekord jednego kawałka biznesu dzieli go. - tworzenie zleceń wynajmu / zakupu z opcjonalnym accountUid - setIntentAccount / setCommitmentAccount do zgłoszenia lub odrzucenia istniejącego rekordu - wyszukiwarki oparte na koncie dla otwartych zapytań, rezerwacji i zamówień dostawców - cztery DTO przenoszą accountUid i accountName
· kamo-internal
Zwrócony podpisany dokument pokazuje znaki HR obok wstępnie wypełnionej kopii
Kiedy HR zwraca podpisany dokument, krok podpisywania członka ma teraz Panel obok niego: co HR poprosił ich o naprawę, kto poprosił, ponumerowane piny dopasowane do swoich notatek (najedź, aby pulsować znak), przypomnienie, że ich Wcześniejsze odpowiedzi są już wypełnione, a kopia podpisana ostatnim razem Z każdym znakiem narysowanym nad nim tylko do odczytu przez ten sam MarkupLayer Szerokie ekrany pokazują ją jako składaną kolumnę; wąskie pokazują ją jako kolumnę Przesuń go po stronie na żądanie. Zmniejszony ruch jest respektowany. Podpisana kopia poprzedniej rundy jest odczytywana przez nowy przekaźnik tylko dla członków, ****************
· DocsService
Zwrócony podpisany dokument jest wstępnie wypełniony, a członek może zobaczyć, co zostało oznaczone
Kiedy HR zwraca podpisany dokument, świeża koperta zawiera teraz Wcześniejsze odpowiedzi członka (odczytane z nowych wewnętrznych wartości pól ESigService) Podpisy, inicjały i daty podpisów są przechowywane w pliku Członek podpisuje się ponownie. Czytanie odpowiedzi jest najlepszym wysiłkiem: Każda awaria powoduje wyświetlenie pustej koperty i nigdy nie blokuje zwrotu Przepustka naprawcza jest wypełniana w ten sam sposób z historii kopert dokumentu. GET **************** dostarcza członkowi WŁASNĄ podpisaną kopię, tak jak została ona przejrzana (własność-gated, Ostatnia recenzja dokumentu ma teraz swój adres pdfUrl, więc Widok korekty może położyć na nim znaki recenzenta.
· ESigService
Czytaj odpowiedzi odbiorcy wewnętrznie i nigdy nie wypełniaj wstępnie podpisu
GET **************** zwraca to, co jeden odbiorca wpisał, wybrał i zaznaczył (wewnętrzny auth + X-Org-Id, org re-checked), więc wywołujący może ponownie wydać ten sam szablon wstępnie wypełniony przez Istniejąca ścieżka mergeFields -> prefilledValues. Podpisy, inicjały, Daty podpisu, pola tylko do odczytu i wszystko poza miejscem odbiorcy Sesja również odmawia wstępnego wypełnienia jakiegokolwiek podpisu, inicjałów lub nazwiska Pole signature-date, niezależnie od tego, co mówią pola scalania.
· kamo-internal
Przegląd — Konfiguracja podróży, Zdrowie na pierwszy rzut oka, Potrzebuję Cię, skróty i eksplorator Kto dostaje co (SIS6)
- Setup Journey rozszerza zatrzask Pierwsze kroki: sześć kroków czytać na żywo (mózg podłączony i odpowiadający, SI zatrudniony, opis stanowiska napisany, ktoś na wezwanie, co dzwoniący słyszą sprawdzone, kontrole jakości na żywo), każdy otwierając swoją stronę; Pierwsza wizyta, która widzi, że każdy krok został wykonany, blokuje go raz na SecurityService (/org-setup-wizard/si-journey). - Zdrowie na pierwszy rzut oka z SI Status API poprzez @kamo / kamoai-core; Potrzebuje Cię z otwartych incydentów, Wstrzymaj wszystko, Dostawcy, których sprawdzenie nie powiodło się, zatwierdzenia oczekujące (-> /workforce/approvals) i kroki konfiguracji pozostałe. - Kto dostaje co **************** każdy SI lub osoba, każde ustawienie, które dociera do nich z jego źródło - warstwy opisu pracy (charter resolver), dźwięk w tle, easter eggs, raporty zmian (silnik o zasięgu Ustaw przez), osobisty asystent (podgląd warstw). Brak nowego punktu końcowego. - SKONSOLIDOWANE: tabela podglądu asystenta i słowa wartości (AssistantPreviewTable, używane przez Ustawienia początkowe i explorer), słowa dźwięku tła (useAmbienceWords), obliczenia dostępu powłoki (useSiAccess).
· SecurityService
Gdzie każdy styl osobowości jest używany w organizacji (SIS7)
GET **************** answers {usage: {ref: {count, places[{level, id}]}}}: Każda warstwa organizacji dzwoniącego, którego własny opis stanowiska wybiera styl, wbudowany lub organizacji Sześć odczytów, po jednym dla każdej tabeli warstwy, z częściowego indeksu archetype_ref każdej tabeli, przechowywanego do końca Odczytywane przez każdego z członków organizacji, np. przez administratora, przez właściciela; maksymalnie 50 miejsc na styl Test analizy JPQL w stosunku do mapowania biblioteki współdzielonej.
· SecurityService
Zatrzask Super Intelligence Setup Journey (SIS6)
GET **************** (każdy z prawem do ustawień Super Intelligence lub właściciel) i PUT .../si-journey/complete (MANAGE_AI_SETTINGS, MANAGE_AI_WORKFORCE lub CONFIGURE_SYSTEM, lub właściciel): Podróż konfiguracyjna przeglądu odczytuje swoje kroki na żywo i blokuje "zakończone" tutaj raz, obok blokady Getting Started, Zgodnie z tymi samymi regułami (odczyt nigdy nie zapisuje; nic go nie usuwa). DDL zastosowano do produkcji 2026-11-07.
· kamo-shared-library
Zatrzask Super Intelligence Setup Journey obok Getting Started (SIS6)
OrgSetupWizardProgress uzyskuje **************** przechowywany, nigdy nie wyczyszczony zamek SI Setup Journey w Ustawienia > Super Intelligence > Przegląd. DDL: securityservice **************** (stosowane do produkcji 2026-11-07).

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