SP00-T48 ruling — null-safe DataVolume check for the golden-image cleanup
SP00 preflight — contract check, conflict scan, 14 rulings
Pre-grant rt.org.> / email.notify.> in N1 (master §6.11), move kamo-internal's NATS login to N3, fix the §7.13 unforwarded-prefix rule for SP10's gateway routes...
AI Members + AI Provider Registry program — master spec, 15 sub-project specs and plans, runbook
Owner-approved 2026-09-23 (13 decisions, master spec §2). 15 sub-projects, 604 implementation tasks, cross-sub-project contracts in master §6 and the adopted de...
Kamo-internal's session-handle secret
kamo-internal 3e3c3e7a mounts **************** (SESSION_HANDLE_SECRET), which seals the per-tab session handles that replace the *** id in page script. Created ...
The member card spec, as built
Corrects what changed on the way — the card's layer is 1305 (over MUI modals), useHoverCard stayed where it was, the header wears the desktop wallpaper, calenda...
Page transitions — how a navigation is seen, the wave's timing, and the plan
House rules for UI work — layout, look, shared parts, live data [skip ci]
Pages fill their width, build from the shared components, colour only from the globals.css tokens, and take changing data over STOMP topics instead of loading o...
The opt-out design, and the client both surfaces will call
Settings -> Email -> Opt Out reads /api/email/opt-outs on EmailService; a lead's own address reads **************** on SecurityService. Long ids arrive as strin...
Kamo-careers picks up a branding change within a minute
The comment beside the Careers Logo Overlay said the careers site re-reads config.json hourly. It re-reads it every minute since kamo-careers 14c9ddb, which fix...
Why AssuranceLevel only ever reports SES
ESigService reports SES and only SES now. eIDAS Article 26 lets a signature call itself ADVANCED only if the signature creation data is something the signatory ...
The Labor Day crane is fifteen lines, not nine
The cost note counted the crane before it grew a two-leg lattice mast and a triangular jib section, which is the shape it needed to stop reading as a wobbling r...
Finish the spec's inventory, and add the order to check things in
The "where it lives" table was written before the setup service, the media handoff, the CARRIER_TO_PHONE_SERVER rail and the phone server's default text route e...
The two inbound shapes, and the rule that keeps the endpoint safe
Records what voipservice 9e9e814 and ea6d631 established, because the reasoning is not recoverable from the diff. A Telnyx messaging profile has exactly one we...
What the thread design got wrong, as built
Two schema faults that only appeared on deploy — the hand-applied column that was flagged and not applied, and a frozen ddl-auto CHECK on media_sessions that wo...
Design for the App Shelf launchpad widget
A system widget with no rights, locked to the first row of the launchpad by arithmetic rather than a band of its own, with a portalled flyout carrying each app'...
Say why this one cannot be scaled yet
McpServerManager runs each MCP server as a child process of THIS pod and tracks them in in-memory maps; McpHealthMonitor writes what it finds there into a SHARE...
Declare why this one stays on Recreate with no preStop
KlusterServices now audits every Deployment in kamo on each deploy and fails on Recreate, a missing preStop hook, a missing readiness probe or no minReadySecond...
Seeding is bounded by the JAR, not by the database — and rebuild
The lazy seedForOrg call in sendToUser reads as though a missing template always heals itself. It does not. The catalogue is CanonicalTemplateLoader's and lives...
Name the allow-list this PUT actually goes through, and rebuild on it
Two things, one of which is the point of the commit. The comment: patchOrganization is an ALLOW-LIST and it lives in the shared library, not here. This control...
Record what the Remote Terminal deploy actually taught
Three defects, all the same shape: present in the tree, absent from the thing that serves requests — an IngressRoute in a directory nothing applies, a client pa...
State why the 101 is read before anything is written
The agent parses the request with a buffered reader and then pumps the raw socket, so a byte sent ahead of the status line would be stranded in that buffer and ...
Pin the no-pipelining invariant on the PTY upgrade
self.rfile is a BUFFERED reader over the socket and pump reads the RAW socket, so a caller that sent bytes behind its request line would strand them in that buf...
The check constraint a fourth visibility would break
Hibernate wrote `check (visibility in **************** 'PLATFORM_ADMIN_ONLY'))` when it created report_catalog. ddl-auto adds columns and never rewrites a const...
Say that the status-label save is a whole set, not a patch
The endpoint's meaning changed underneath this client: a status left out of the list is now a deletion rather than a no-op, which is what lets a label be remove...
The Report Studio design — Java-defined reports, a generic renderer
Reports are defined as Java classes in kamo-shared-library and rendered by one capability-driven frontend, so adding a report is a new class and nothing else. ...
Design for the Help Center KB build, related articles, and public wiring
Covers the 248 source drafts under Documentation/, the tree they map to under the existing Help Center article, the new KB_ARTICLE_RELATIONS feature, and the th...
Say which subscription the launchpad pill's gate is about
"Not already paying" means the VIEWER's own seat — the same question the Plans & billing page answers when it decides whether to offer them one. Worth stating, ...
Say in the class contract that the gate can fall open
The header promised "a blocked app's endpoints all 403" without qualification, which is now true only while the entitlement tables can be read. The exception is...
Correct the note on the removed Create My Free Org rights
ab740dd3 claimed CREATE_FREE_ORG_WIDGET and its four policy children "never existed in RoleRightType.java at all". That is wrong. They were ids 288-292, and I r...
Design and implementation plan for the org launch and Getting Started wizard
Restores two commits dropped by a concurrent 'git reset --mixed origin/main' in this shared checkout; the files themselves survived in the working tree.
Record that Organization.YEAR_EST is optional and may be cleared
The column was always nullable and both server paths already handled null — CreateOrganizationPayloadParser maps an empty or unparseable value to null, and patc...
Plans for BL2 (the KAMO_NATIVE invoice) and SW8 (in-home contract compliance)
Check in the useUserInfo shared-store handoff
The "no .md in repos" rule is retired. This handoff doc had been kept local-only; it belongs next to the code it describes.
The FreeSWITCH crash was mod_kazoo's default config, not the event profile
The stub kazoo.conf.xml 2600Hz ship has no definitions, event-handlers or fetch-handlers sections. mod_kazoo says as much and then faults in its own config thre...
Record four more KamoPBX bring-up traps
- Community mod_kazoo (FreeSWITCH v1.10.11) connects to ecallmgr, reports "Connected", and then never answers a gen_server:call. Resolved by taking 2600Hz's...
The bug-report association holds video too
SYSTEM_BUG_SCREENSHOT now carries screen recordings alongside screenshots. The constant keeps its name and its id — id 17 is written into assoc_id on every row ...
The Traefik per-IP limit will 429 a QHIN invisibly
Comment only, in the file somebody opens when a partner complains. Traefik rate-limits per source IP across the whole api.* host, and a QHIN sits behind a sing...
Resolve the Kamailio question — SIP registration works end to end
Section 16 recommended a purpose-built config on stock Kamailio and recorded that "2600hz/kamailio does not exist". Both are corrected by evidence. Two further...
Close out SW6b
Eight departures. The one that mattered was in SW6a: PUT /{uid} accepted totals and sign-off verbatim, which made both of this plan's central rules decorative u...
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.
