KamoCRM

Mabadiliko ya Tabianchi

Kila kipengele, kurekebisha na kuboresha, posted kama meli. Hakuna kitu kilichofichwa kwa ajili ya uzinduzi.

17,500
Mabadiliko ya Jumla
5,986
Features ya
5,284
Wa
30
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter ya aina
Aina zoteBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
August 29, 2026
Fixkamo-internal

Show Getting Started to the System Member too

The button asked for organization ownership AND CONFIGURE_SYSTEM. The System Member is provisioned as an Administrator in every organization — all 34 of its mem...

Kamo·1mo ago
Featurekamo-internal

Download the app from a URL that says KamoMobile

the phone showed while downloading was the old one. The same bytes now also sit at **************** and the QR points there. A copy, not a move: the old object ...

Kamo·1mo ago
Fixkamo-internal

The Getting Started API had no route to answer it

The launchpad button never appeared, and neither did any progress: the Java controller existed, the client existed, and the Next route between them was never wr...

Kamo·1mo ago
Featurekamo-internal

The rail's brand row reads "Back to Desktop"

Names the destination in the platform's own vocabulary rather than the generic "Go Home". The expanded row's aria-label follows the visible text, so the accessi...

Kamo·1mo ago
Featurekamo-internal

Say "Go Home" under the org name in the expanded rail

The expanded rail's brand row has always navigated home, but the org name alone reads as a label, so the destination was invisible. The name now sits above a se...

Kamo·1mo ago
Featurekamo-internal

Title the tab "{Org} - {role} Portal", painted before first frame

A member is named by the organization's own word for one — "Harmony - Borrower Portal" for a lender that calls them Borrowers. A team member is named by their D...

Kamo·1mo ago
FeatureSecurityService

Carry the team member's department in the session

The browser tab is being retitled "{Org} - {role} Portal", and a team member's role is their department — the specific thing they identify with day to day ("Sal...

Kamo·1mo ago
FixKlusterServices

Probe the bridge's real health, not a port that is always open

kamo-meet let one person into a meeting and then ended it the moment a second joined. The bridge had been hard-unhealthy for 41 hours: an in-place container res...

Kamo·1mo ago
Fixkamo-internal

The logo caption sits under the logo, and says the domain is not reserved

Two unrelated symptoms, both in the brand band. **The caption printed over the logo when the slots stacked.** The preview was clamped with `max-h-full`, and th...

Kamo·1mo ago
Fixkamo-internal

Stop the server asserting a tab title it cannot know

An org with no domain of its own still ended up titled "KamoCRM" after a refresh, briefly showing its real name first. generateMetadata resolves the tab's org ...

Kamo·1mo ago
FixSecurityService

Stop refusing a domain because somebody else typed it first

Creating an organization 409'd on any existing row for the domain, which meant the first organization to enter "acme.com" locked out every other one — including...

Kamo·1mo ago
FeatureInitializerService

Keep every live domain routing once verification becomes mandatory

Host to organization resolution is about to require ownership_verified on the top-level domain row, so that a domain several organizations have merely named rou...

Kamo·1mo ago
Featurekamo-shared-library

A domain is claimed by proving it, not by typing it

Three rules, and they only make sense together. **Naming a domain claims nothing.** An FQDN was globally unique here, so the first organization to enter "acme....

Kamo·1mo ago
Fixkamo-internal

Upload the compact logo that was previewed, not the file that was picked

The compact ("simple") logo slot is SVG-only — the backend writes whatever lands in it to a fixed <theme>/img/logo.svg key regardless of the file's real type, a...

Kamo·1mo ago
Fixkamo-internal

Stop the attention flasher reverting an org's tab title to the platform's

A child org with no domain of its own showed "KamoCRM", flashed to its real name, then flashed back to "KamoCRM" and stayed there. TabAttention wrote `document...

Kamo·1mo ago
Fixkamo-internal

Let the tab icon follow a simple-logo change instead of pinning the one captured at mount

TabAttention badges the browser tab, and it read the favicon ONCE in a mount effect. That effect runs before DynamicMetaLoader's config.json fetch has resolved,...

Kamo·1mo ago
FixSecurityService

Give the generated favicons the same revalidation requirement as every other theme asset

Replacing an org's simple logo updated every surface that reads img/logo.svg and left the browser tab on the old mark. Generation was never the problem: provisi...

Kamo·1mo ago
August 28, 2026
Fixkamo-internal

Enter the new organization here, not on a domain with no DNS

Creating an organization handed the creator a button pointing at `https://internal.<the domain they typed>/`. That host does not resolve: the domain is one they...

Kamo·1mo ago
Fixkamo-internal

The scan's colours, the colour window, and the stacked slots

Five reports from the brand section, and the first two turn out to be the same bug wearing two faces. **Colours were never adopted.** The rule latched a `color...

Kamo·1mo ago
DocsSecurityService

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

Kamo·1mo ago
FixSecurityService

A transient database fault must not 500 the request

The lead Communications tab reported "We couldn't load this lead's communications" for org 1168485648209608710 on 2026-08-28. The endpoint returned 500 five tim...

Kamo·1mo ago
FeatureSecurityService

Carry the per-member-type home-screen defaults

Read on POST/PUT /security-models and PUT /master-model, and emitted from /applied-model's settings so the shell can decide where a member lands on "/". A sepa...

Kamo·1mo ago
Featurekamo-shared-library

A security model says where each member type lands on "/"

Three columns on ChildOrgSecurityModel — DEFAULT_MEMBER_HOME_SCREEN, **************** DEFAULT_ORG_OWNER_HOME_SCREEN. Each holds HOME_SCREEN_DEFAULT or REQUIRES_...

Kamo·1mo ago
FeatureInitializerService

The three per-member-type home-screen columns on a security model

CHILD_ORG_SECURITY_MODELS gains DEFAULT_MEMBER_HOME_SCREEN, DEFAULT_TEAM_MEMBER_HOME_SCREEN and DEFAULT_ORG_OWNER_HOME_SCREEN. Each holds HOME_SCREEN_DEFAULT (t...

Kamo·1mo ago
Featurekamo-internal

One list of what the scan found, beside what you are using

The brand section of /network/create becomes three bands with the same shape: what your website has on the left, what your organization is using on the right. ...

Kamo·1mo ago
Featurekamo-internal

A per-member-type default home screen

A security model now says where each of its three member types lands when they open "/". Two values: HOME_SCREEN_DEFAULT is the launchpad everybody has always h...

Kamo·1mo ago
Docskamo-internal

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

Kamo·1mo ago
Chorekamo-shared-library

Remove the CREATE_FREE_ORG_WIDGET block with its widget

The Create My Free Org launchpad widget was removed (kamo-internal ab740dd3), so its five rights go with it: CREATE_FREE_ORG_WIDGET (288) and the four policy ch...

Kamo·1mo ago
Chorekamo-internal

Remove the Create My Free Org widget

Removed on request, including its rights. /network/create is untouched and remains the way an organization is created. Gone: the widget and its three step comp...

Kamo·1mo ago
Fixkamo-internal

The document must not scroll behind the workspace

The authed shell is a full-viewport layout — nav fixed, content absolutely positioned to exactly 100vh — with one scroller inside it (.kamo-page-scroll). <body>...

Kamo·1mo ago
Fixkamo-internal

Fill the content box exactly, scroll inside it

The pages grew to their content and pushed past the box the chrome gives them, so the document scrolled behind the shell and left dead background below the form...

Kamo·1mo ago
Chorekamo-internal

Withhold the Create My Free Org widget for now

Taken off the launchpad on request. A false registry gate rather than deleting the entry: `available` in useHomeWidgets is the single source for BOTH the launch...

Kamo·1mo ago
Fixkamo-internal

Stop the form column stretching to the grid row height

The two-column layout gave the form column no align-self, so it stretched to the row height — and the row is as tall as the TALLER column. Once the form flows i...

Kamo·1mo ago
Featurekamo-internal

Create My Free Org becomes a three-step widget

The widget embedded the whole of CreateOrgForm — five sections, the brand preview, the readiness meter — which is roughly 1,400px inside a pane of about 756px. ...

Kamo·1mo ago
Fixkamo-internal

One scrollbar, and actually use the full content width

AuthedChrome already owns the ONE scroll container for a page (.kamo-page-scroll, overflow:auto; height:100%), and PageWrapper exists specifically to stop a pag...

Kamo·1mo ago
Fixkamo-internal

Next/link for Back to home, not a raw anchor

check-client-navigation fails the image build on a raw <a> to an internal route: a hard navigation tears down every open tool popup window and any unsent email ...

Kamo·1mo ago
Fixkamo-internal

Whole-branch review fixes — provisioning, reachability, label data loss, a11y, dead code, org-context race, hex case

Seven findings from the final whole-branch review of the org-launch and Getting Started wizard feature, fixed together since several interact: - B1: **********...

Kamo·1mo ago
Fixkamo-internal

Resolve the shared "skip" string against its full key

Six step components called t("skip") against an unscoped useTranslations(), which requests a top-level "skip" key that doesn't exist — next-intl then renders th...

Kamo·1mo ago
Featurekamo-internal

Getting Started card on the Settings landing page

Adds an essential-group card linking to /settings/wizard, matching the makeCard idiom used by its siblings. Dictionary keys already pushed ****************

Kamo·1mo ago
Fixkamo-internal

Close the wizard Save-without-validation hole (review round 1)

Four findings from spec/code review, addressed: 1. CRITICAL - nothing gated the shell's Save button on step validity, so a member could blank the organizati...

Kamo·2mo ago
Featurekamo-internal

A SEND TO AI switch on the report form

Right-aligned on the "What are you reporting?" row, off every time the window opens — it starts a session on a machine holding cluster credentials, and a switch...

Kamo·2mo ago
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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo ago

Je, unaona nini kuhusu usafiri?

Kila kitu kinaingia kwenye tovuti yako mwenyewe. Anza kwenye mpango wa bure na usome ukurasa huu tena katika mwezi mmoja.

Kuwa Huru MileleMtazamo wa bei