Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

17,989
Total Changes
4,649
Features
4,558
Fixes
32
Projects
Filter by project
All Projects17,989AIService112APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService386InitializerService302KBService74KlusterServices547MCPGatewayService43MediaService462RAGService61SecurityService1,529TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,601kamo-login319kamo-marketing588kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,328kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs231Feature4,649Fix4,558Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
August 28, 2026
FeatureSecurityService

Send To AI straight off the report form

A holder of MANAGE_SYSTEM_BUGS gets a SEND TO AI switch on the Report Bug window, and submitting with it on hands the report to a session without the triage dia...

Kamo·2w ago
Featurekamo-internal

Getting Started Configuration Wizard at /settings/wizard

Turns the nine moved wizard steps into an editor over the organization the member is already signed into. Each step now seeds its value from live org data (useO...

Kamo·2w ago
Refactorkamo-internal

Rename Copilot Mobile App to KamoMobile

The mobile app is KamoMobile now. This renames every reference to it in this repo — the strings members read, the route, the i18n namespace, the components, the...

Kamo·2w ago
Featurekamo-internal

The /copilot hero and both scan codes carry the chameleon mark too

were the last two sites, and neither could just take the new src unchanged, because the artwork is a transparent 127x102 silhouette where the raster was an opaq...

kamo·2w ago
Featurekamo-internal

Swap the mobile-app mark for the chameleon SVG in the rail and on home

raster. Both now draw the KamoMobileApp artwork as vector. Checked in as SVG because that is what the mark is: a single white silhouette with transparent knock...

kamo·2w ago
Featurekamo-internal

Create My Free Org widget

Ships the same CreateOrgForm the /network/create page renders, in its widget layout, as a home-launchpad widget (org.create) gated on CREATE_FREE_ORG_WIDGET. Re...

Kamo·2w ago
Fixkamo-internal

Inert, not aria-hidden + pointer-events-none, for gated sections

CreateOrgForm's section() helper hid the four sections gated on "no branch type chosen yet" with aria-hidden plus a pointer-events-none className. aria-hidden o...

Kamo·2w ago
FeatureKlusterServices

Open Send To AI in a VS Code session tab, not a Konsole window

A dispatch now starts a BACKGROUND session and hands VS Code its session id, instead of running the CLI in a terminal window: Passing the prompt to the URI in...

Kamo·2w ago
Docskamo-internal

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.

Kamo·2w ago
Fixkamo-internal

Dropping a gathered honeycomb in the goal removes every head in it

Jiggling mid-drag fires the gather gesture, which pulls every same-size head into the dragged head's cluster and anchors the honeycomb on the head under the poi...

Kamo·2w ago
Featurekamo-internal

/network/create is one page; the twelve steps move to /settings/wizard

CreateOrgForm.tsx is one component with two layouts (page/widget), built from Task 7/8's CreateOrgFields model, field groups and OrgBrandPreview. page.tsx is no...

Kamo·2w ago
Featurekamo-internal

Reusable field groups and the live brand preview

Extracts the inputs from BranchTypeStep, BasicsStep, LogoStep, ColorsStep, AppsStep and AgeRestrictionsStep into five controlled field components (OrgTypePicker...

Kamo·2w ago
Featurekamo-internal

Getting Started Configuration Wizard button with an attention border

Adds the launchpad's entry point into the setup wizard: an owner-only, rights-gated pill that reads "Getting Started Configuration Wizard (x/9 steps complete)",...

Kamo·2w ago
FixSecurityService

Require an open god-mode window, not eligibility alone, for CONFIGURE_SYSTEM

hasRight was granting the bypass on the raw GD session flag, which SessionPlatformFacts's own javadoc names as the exact anti-pattern it exists to prevent: GD i...

Kamo·2w ago
Fixkamo-internal

Gate the web-alias path on parent context, not model alone

withBranchType previously turned useWebAlias on whenever the SELECTED MODEL allowed ROOT or a custom alias, ignoring the three parent-org preconditions BasicsSt...

Kamo·2w ago
Featurekamo-internal

Getting Started wizard step model and client

Adds the client-side step model (app/lib/orgSetupWizard.ts), a thin API client for GET/PUT/DELETE /api/security/org-setup-wizard (app/lib/orgSetupWizardApi.ts),...

Kamo·2w ago
FeatureSecurityService

Add progress service and endpoints behind the Getting Started wizard

Org-scoped GET/PUT/DELETE under /api/security/org-setup-wizard track which of the nine Getting Started steps an organization has completed. A read never creates...

Kamo·2w ago
Featurekamo-internal

The maximized pane zooms into the conversation you picked

Switching conversations in the maximized view was an 8px nudge and a 180ms fade — close enough to nothing that the pane looked like it had simply repainted. It ...

Kamo·2w ago
Featurekamo-internal

Three-column widgets and per-widget minimum sizes

Widens WidgetWidth to 1 | 2 | 3 | 'full' and lets a WidgetDefinition declare minWidth/minHeight. widgetMinSize(definition) converts that into a PaneSize floor (...

Kamo·2w ago
Featurekamo-internal

Touch up a traced logo by hand, and download the converted file

Four things on the raster-to-vector converter and the simple logo slot. **The scroll bar on the raster options is three times wider.** 4px was a hard target to...

Kamo·2w ago
FixVectorService

Stop treating an already-transparent background as black, and remove the region not the colour

Two reported faults with one root cause: colour-based removal overwrote the alpha channel outright and never read the incoming one. An HTML canvas stores premu...

Kamo·2w ago
Featurekamo-internal

One-page field set and the defaults that replace the dropped steps

CreateOrgFields is what the new single-page /network/create form actually asks for: a branch type, name, alias, the app switches, and a handful of optional fiel...

Kamo·2w ago
Featurekamo-shared-library

Create My Free Org widget rights and Getting Started wizard progress

Adds RoleRightType 288-292 (CREATE_FREE_ORG_WIDGET and its four ADDED/OPTIONAL/ REQUIRED/MOVABLE policy children), hung off CREATE_CHILD_ORG (131). Adds OrgSetu...

Kamo·2w ago
Featurekamo-internal

Per-pane minimum size, applied on read as well as on drag

Threads an optional `min?: PaneSize | null` through clampPaneSize, the two resize-delta helpers, and the two preference read/write functions in the pure launchp...

Kamo·2w ago
Fixkamo-internal

Switching conversations no longer stacks windows behind the maximized pane

Takes @kamo/tool-core 0.1.5, where leaving the maximized pane became two gestures instead of one. A navigator row click hands the pane to another conversation a...

Kamo·2w ago
Fixkamo-register

Restore the verification screen's wallpaper, drop its ***, modernise its status plate

Three things wrong with /verification, all visible on one screen. The wallpaper never loaded. PostCompletionScreen called **************** but that parameter i...

Kamo·2w ago
FeatureSecurityService

Put a real time budget on resend-verification

The endpoint had no limit of any kind. The *** the register screen demanded before enabling its resend button was never read here — the request body is three fi...

Kamo·2w ago
Fixkamo-internal

Give the new tab a session, instead of one that bounces to login

"Open in new tab" was `window.open(location.href, '_blank', 'noopener,noreferrer')`. The session id is not in a cookie — it lives in sessionStorage, per tab, be...

Kamo·2w ago
FixInitializerService

Let a seeded org omit its year established

createOrg took the year as a primitive int, so every seed had to supply one even though YEAR_EST is nullable and the field is optional platform-wide. Integer, s...

Kamo·2w ago
Docskamo-shared-library

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...

Kamo·2w ago
Fixkamo-register

YearEst is optional on the org, so admit the null that arrives

Year established is nullable on the Organization entity and SecurityService serializes the null explicitly, so the declared `number` was never the whole wire sh...

Kamo·2w ago
Featurekamo-internal

The org's year established is optional, and unset renders as absent

Nothing on the server ever required it — the column is nullable, the create parser maps an empty value to null, and patchOrganization applies only the keys a PU...

Kamo·2w ago
Performancekamo-internal

A conversation outlives the window showing it

Opening a chat window cost seven requests before a message rendered — history, members, receipts, mark-read, the unread snapshot, the counterpart's avatar and t...

Kamo·2w ago
Featurekamo-internal

Show a member only the tabs that are theirs to see

Three member-settings surfaces were open to people they cannot mean anything for. Each gate is on the MEMBER TYPE or the org's apps, never on checkRight — check...

Kamo·2w ago
FixRAGService

KB audience tiers are cumulative, matching KbReaderScope

The retrieval filter matched a reader's tier exactly: a TEAM_MEMBER had to match aiVisibleToTeamMembers and nothing else. So an article an author had deliberate...

Kamo·2w ago
PerformanceMediaService

Serve a reopened window only what it missed, and audit a page in one write

Two costs, both paid on every single open of a chat window. ?since on GET /sessions/{guid}/messages. A window being reopened wants the messages after the one i...

Kamo·2w ago
Fixkamo-internal

Centre the launchpad tiles that are only an icon and a name

A leaf app pane in its compact form shows no sub-item rows and no description, so the icon/title row was heading a column with nothing in it — pinned to the top...

Kamo·2w ago
Featurekamo-internal

Offer a member only the kinds they can receive

The notification centre and its settings drew every kind to everybody. A member with no Leads app was shown a "Lead callback" filter that could only ever return...

Kamo·2w ago
FeatureEmailService

A member is only told about apps they have

A notification kind belongs to an app — a lead callback is Leads, a meeting reminder is Meetings — but raise() asked only whether the member had muted it. So a ...

Kamo·2w ago
Featurekamo-internal

The console shows a reader what they may have, and no more

Two things the /kb page reported to anyone holding VIEW_KB_ARTICLES. The corpus. The audience chips an author ticks in the composer — Members, Team Members, Pu...

Kamo·2w ago
FeatureKBService

Enforce the audience chips on every human read

The composer has always offered an author three chips under "Visible to" — Members, Team Members, Public. They were written to the row and indexed into Qdrant s...

Kamo·2w ago
Fixkamo-internal

Restore the image-proxy and wallpaper work 266357d0 reverted, and land the permissions change it was meant to carry

266357d0 was built with the wrong index. Its tree came from a stale local HEAD rather than from the staged one, so it carried none of the permissions work its m...

Kamo·2w ago
Featurekamo-internal

A group per app, a console to grant them, and master notes as widgets

Three changes that turned out to be one. THE HOME PAGE. "My Master Note" and "Our Master Note" were bespoke panes rendered straight out of page.tsx, gated on n...

Kamo·2w ago
FixKBService

GET /master takes VIEW_NOTES, like every other read here

It was the one read in this controller that took no right, deliberately: the two master notes were called fixtures of the home launchpad rather than the Notes a...

Kamo·2w ago
Chorekamo-login

Delete /api/auto-login, which no longer has a caller

The endpoint existed to turn an existing *** cookie into an OTK and a redirect so the login page could forward a signed-in member straight into their workspace....

Kamo·2w ago
FeatureSecurityService

Seed the master-note widgets from VIEW_NOTES

The two master-note panes shipped with no right at all — "My Master Note" and "Our Master Note" were on every member's launchpad unconditionally — and this is t...

Kamo·2w ago
Featurekamo-shared-library

A security group per app, and the master notes as widgets

Ten new rights, 278-287: NOTES_MASTER_MINE_WIDGET and NOTES_MASTER_OURS_WIDGET, each with the four policy children every home widget carries. Both hang off VIEW...

Kamo·2w ago
FeatureKlusterServices

Swap the voicemail greeting to KamoCRM-LeaveVM

24.9s, down from 27.9s. Uploaded alongside the previous recording rather than over it, so rolling back is a one-line change to KAMO_VOICEMAIL_GREETING plus a di...

Kamo·2w ago
FixInitializerService

The invoice takes REVOKE DELETE, not REVOKE UPDATE

attachPdf writes PDF_BLOB_ID after the finalize transaction commits, on purpose: rendering inside it would hold the document-counter row lock across a MinIO rou...

Kamo·2w ago

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing