Mirror the three remote-monitoring rights and gate the RPM_ALERT kind
Mirror the honest default Live Support welcome
Matches kamo-shared-library a82f3c78: the team is notified only once the visitor sends a message, so the default no longer says someone will be with them shortl...
Send the chosen From even when it is the primary row
The default org alias domain (kamouniverse.com) is offered in the From picker as the member's primary, and the composer left any primary From off the request. W...
The lit Settings row follows the page's own tab
The rail lit the row the member last clicked, so switching tabs inside a settings page (Docs -> General from the page's tab strip) left the light on the old row...
Label nav and settings entries "Devices (IoT)" (owner, master R5) [skip ci]
Task 16 ledger completeness (both test orgs) and Task 17 Luna untouched
Task 16 (A15): sp00verify complete (gatedCalls 74 = eventsMatched 74; outsideToolPlane ESCALATE 12, SEND 7; 51 SI chat lines paired 1:1 with their events, 44 To...
Reopening a field shows the settings just saved
The stack's sorted field list was memoized on each field's id and order only, so a change from Save Field (Display on Intake, title, required…) never rebuilt it...
SP00 adopted-deviation rows (master §10 D8-D12, KamoAI §11 D4) and the execution ledger (IoT SP00)
The eight IoT kinds — gated like EmailService with the owner rule, one order, their own marks (IoT SP00)
The /api/iot BFF route; a guard that every notification kind has its label and hint (IoT SP00)
IotRights.ts, the browser mirror of IotRights, parity-checked against the Java set (IoT SP00)
The IoT Devices rights mirrored, their tree, and the IoT Devices permission group (IoT SP00)
TOUR_PENDING lets an app group exist before its tour ships; IOT until IoT SP05 (master SP05-D7)
IoT Devices in the app mirrors, Organization.isIot and its app icon (IoT SP00)
Sp00verify lane part 2 (T4 step 5, T9, T11, T12, T13): rulings and acceptance rows
A3 PASS (live reply a model limit), A5, A8 (Lab 2 + step 5 in sp00verify), A10, A12, A13 PASS; A4 row from the Lab 2 lane's T6; A11 NOT PASSED on one criterion ...
GD alone no longer grants every right on proxy routes
ksemHasRight treated GD (god-mode ELIGIBILITY) as an all-rights bypass, so every god-eligible operator held every right on the 18 proxy routes that use it, with...
Never relay a browser-set X-God-Mode-Active
God mode is SERVER-owned. The billing and LOS proxies copied the browser's X-God-Mode-Active onto the upstream call, and BillingService treated it plus users.is...
IoT Devices program — master spec, 15 sub-project specs and plans, runbook [skip ci]
Connected-ecosystems design decided by the owner 2026-09-27: Kamo links the ecosystems an org already uses (official APIs only), per-function grants, consent-ba...
Branch Types moves to Platform Administration
Branch Types (the security models child organizations are created under, with their default security roles, apps and home screens) was a tab on every organizati...
Sp00verify lane part 1 (T3, T8, T10, T5, T7): rulings and acceptance rows
A1, A2, A7, A14 PASS; A6 PASS with an environment note; A9 FAIL -> fixed (mcpgatewayservice c44ce1f, ruling CP97-T5-1 in CP12 §7) -> PASS.
@kamo/kamoai-core 0.2.1, the evaluation client (KamoCollab CP15 Task 18, ruling CP15-T16-4)
The tours really do start by themselves at sign-in
They never had, for anybody. The trigger waited for userInfo.tokenId, which the type declares but the web app's /api/user-info never sends — so it returned befo...
An image attachment that has not drawn holds a placeholder, and one that never answers fails over
An <img> reports load or error and nothing in between, so a request that never answered left an unsized element at 0x0 — a chat bubble with nothing in it. A mem...
A docked chess window is as wide as its board
The window opened at a fixed 560 while the row decided its height, so at the default 690 row the board was 346px square in a 540px column: 97px of empty table e...
Drag-selecting up or left out of a text field scrolls it
WebKit (Safari, DuckDuckGo on macOS — the reporter's browser) only autoscrolls a text field toward the END of its text during a drag-select: dragging up out of ...
CP07 Task 43 ruling T43-9 (an SI's own record with nothing behind it names nobody to ask)
The Settings rail keeps your place in its tree
Choosing a row in the expanded rail ran close(), which also emptied every expanded branch, so each click folded Settings back to its own row and the next sub-to...
A card taller than the room it has scrolls instead of running off the screen
Opened from a name low on a laptop screen (the Interaction Center's "..." on a roster row), the member card was placed below it at full height; once "More" open...
Tours start by themselves at sign-in, a tour controller steers them, and every app on the App Shelf starts its own
- Sign-in: the tours with something new now START on the launchpad, once per sign-in — no offer to click through. God mode no longer stops them (it did, for t...
Related-article rows open the article
The Related Articles list under an open article drew each link as a plain box with no href or click handler, so nothing happened when a reader clicked one. A re...
Tiles recover on their own, a manager's Watch shows the camera, cloud logins never stored in clear
From an independent review of the shipped Cameras screens. Viewer: - A Settings "Watch" of a camera not shared with the manager showed "unavailable": the windo...
CP07 Task 43 ruling T43-8 (an event run carries disclosure_request in full)
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
