Mabadiliko ya Tabianchi

Kuona nini sisi ni kujenga katika muda halisi. Kila kipengele, kurekebisha, na kuboresha kusafirishwa kwenye jukwaa.

17,896
Mabadiliko ya Jumla
4,600
Features ya
4,522
Wa
32
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,896AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService364InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,565kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter ya aina
Aina zoteBuild24CI522Chore670Docs226Feature4,600Fix4,522Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
August 25, 2026
FeatureSecurityService

Start the 3-day trial when the org is created

The trial was seeded pending and started on the owner's first sign-in, because an org was unreachable until its DNS verified — starting the clock at creation wo...

Kamo·2w ago
FeatureKlusterServices

An access canary that actually logs in, and alerts that reach a person

Two gaps, both proven against the live cluster today. FIRST: every existing KamoDesktop alert measures whether a COMPONENT is alive. All four were green during...

Kamo·2w ago
FeatureMediaService

Deliver cluster alerts into a member's chat thread

Alertmanager webhook receiver at /api/internal/alerts/chat, so a KamoDesktop alert reaches a person instead of a dashboard. This is the BEST-EFFORT leg. Email ...

Kamo·2w ago
FeatureSecurityService

Internal probe endpoint so the access canary tests the real path

The KamoDesktop canary needs a link minted the way the icon mints one. It holds the same signing key, so it could build its own — and would then be testing itse...

Kamo·2w ago
FixMediaService

Build the search pattern outside the query, and parse the query in a test

likePattern turns an absent search term into '%' so no null parameter ever reaches a string expression, and escapes % and _ in the term so a search for a litera...

Kamo·2w ago
Fixkamo-shared-library

Stop the bug list 500ing on every unfiltered load

PostgreSQL cannot infer a type for a null parameter inside a string expression: LOWER(CONCAT('%', :search, '%')) with a null :search guessed bytea, and the list...

Kamo·2w ago
Featurekamo-shared-library

The FHIR read path — read, vread, history and ETag (SP3)

Completes the round trip: a resource can now be written, read back, read at a specific revision, and have its history walked. The JSON is SERVED rather than as...

Kamo·2w ago
Featurekamo-shared-library

The FHIR write path — projection and atomic writer (SP3)

A resource write is not one row: it is the domain rows, the canonical JSON, up to eight kinds of search-index row, a reference link per reference, and a securit...

Kamo·2w ago
FixKlusterServices

Run a dispatched session in the workspace's common parent

sage's VS Code is a multi-root workspace holding all 63 repositories, so taking the first workspace folder rooted a bug about the login site in aiservice — the ...

Kamo·2w ago
Featurekamo-shared-library

FHIR resource repositories, with the 40001-safe version claim

claimNextVersion is an UPDATE ... SET current_version_id = current_version_id + 1 and must be the FIRST statement of a write transaction. The obvious alternativ...

Kamo·2w ago
ChoreSecurityService

Rebuild now the shared library has AiDispatchRequest

The previous build failed on a class that had not been pushed to kamo-shared-library (fa243ae). Nothing to change here; this just re-runs the build against a li...

Kamo·2w ago
Fixkamo-shared-library

Add the AiDispatchRequest the pushed code already imports

SecurityService's SystemBugAiDispatchController and SystemBugAiDispatchService are on main and import **************** but the record itself was never committed...

Kamo·2w ago
Featurekamo-shared-library

The encounter spine (SP5)

The entity everything clinical hangs off — a note, an order, a diagnosis and a charge all point at the encounter they arose in. Planned and actual times are se...

Kamo·2w ago
Featurekamo-internal

Tell people a web alias is taken while they are typing it

The create wizard is eleven steps long and the alias was only validated for FORMAT locally — whether anyone already held it was discovered when the form was sub...

kamo·2w ago
FeatureInitializerService

Make orgs.alias unique platform-wide

The column was never constrained. Survivable while an alias was only resolved as (security_provider_id, alias) behind a host, since two orgs under different pro...

Kamo·2w ago
FeatureSecurityService

Answer whether a web alias is still free

The org-creation wizard is eleven steps long and the alias was only checked when the form was submitted, so someone who picked a name another organization alrea...

Kamo·2w ago
Featurekamo-shared-library

The Patient entity and its US Core satellites (SP5)

A new entity rather than a reuse, and each rejection is concrete rather than stylistic. Not Member: GET /api/security/members/names returns every member of an o...

Kamo·2w ago
Docskamo-internal

Correct what the KamoDesktop SSO token's lifetime actually is

The comment called the link "short-lived, single-use" and "5-minute", which is what caused the token expiry to be set as if it were a URL redemption window. It ...

kamo·2w ago
FixKlusterServices

Say what a dead KamoDesktop connection actually means

Guacamole's stock CLIENT.ERROR_TUNNEL_204 is "The requested connection does not exist. Please check the connection name and try again." There is no connection n...

Kamo·2w ago
FixSecurityService

Stop the SSO token expiry from emptying a live desktop session

"The requested connection does not exist. Please check the connection name and try again." on a KamoDesktop reconnect was not a missing connection. It was the S...

Kamo·2w ago
Featurekamo-shared-library

The disclosure ledger and patient restrictions (SP2)

DisclosureLedger is separate from phi_access_log on purpose. The access log records every READ, and most reads are a clinician opening a chart; deriving an acco...

Kamo·2w ago
Featurekamo-shared-library

Care relationships and break-glass, the facts behind the access basis (SP2)

PhiAccessBasis gained CARE_TEAM and BREAK_GLASS last commit; without these two tables those values are decorative. Nothing on the platform modelled a provider-p...

Kamo·2w ago
Fixkamo-meet

Retry npm ci, which is where this image actually fails

The build has failed on every push since 2026-08-15 and it is not the code. The log shows npm ci dying with ERR_SSL_CIPHER_OPERATION_FAILED and ossl_gcm_stream_...

Kamo·2w ago
FeatureInitializerService

Put tenant_id back at the front of the clinical resource keys

ddl-auto built PRIMARY KEY (logical_id, resource_type, tenant_id) on fhir_resource_current and fhir_resource_version, because Hibernate emits @EmbeddedId column...

Kamo·2w ago
Docskamo-shared-library

Record that Java field order does not control DDL key order

The composite-key assertion passed while ddl-auto actually built PRIMARY KEY (logical_id, resource_type, tenant_id) — Hibernate emits @EmbeddedId columns ALPHAB...

Kamo·2w ago
Featurekamo-internal

Add the System Bugs tab

Members report defects in the platform with screenshots and the sites they the dev machine. A tenant sees only its own organization's bugs and the platform org...

kamo·2w ago
Featurekamo-shared-library

DS4P security labels, applied at write time (SP2)

The indexed projection of a resource's meta.security labels, and the thing that has to exist before the first clinical read path rather than after the first beh...

Kamo·2w ago
Featurekamo-shared-library

Extend the audit spine for clinical accounting (SP2)

Four fields the clinical read paths cannot work without, and none of which can be backfilled — each records something only knowable at the moment of access. pu...

Kamo·2w ago
Featurekamo-shared-library

The eight typed search-index tables (SP3)

Search runs over explicit typed tables, not JSONB with GIN. That is forced by the database, not chosen: Yugabyte's own docs state a GIN index cannot use more th...

Kamo·2w ago
FeatureSecurityService

Send To AI, gated on MANAGE_SYSTEM_BUGS

The class carries @RequirePlatformRight, so the interceptor resolves the caller and refuses before any handler runs — a per-method check would have been one for...

Kamo·2w ago
FeatureMediaService

Bug CRUD, screenshots and the one visibility rule

A system bug crosses the tenancy line in one direction: the platform organization sees every tenant's, and no tenant sees another's. That rule lives in ********...

Kamo·2w ago
ChoreKlusterServices

Finish removing Roundcube webmail

The Roundcube deployment/service and the mail.kamocrm.com IngressRoute were already dropped from the CI deploy list, but the MySQL bootstrap still created and g...

Kamo·2w ago
Featurekamo-shared-library

FHIR resource versioning and the reference-link backbone (SP3)

Three tables that between them make read, vread, _history, ETag and every form of _include work. fhir_resource_current is a pointer, one row per resource forev...

Kamo·2w ago
Featurekamo-internal

Show a member's photo on the scoreboard, not their initials

The face now comes from the same directory index every other member list on the platform reads (useMemberProfiles), so a person's picture on the scoreboard is i...

kamo·2w ago
FeatureSecurityService

Turn the workspace picker on

A member of several organizations now chooses which one to open after their password, instead of it being chosen for them by the hostname. This is the switch th...

Kamo·2w ago
FixKlusterServices

Submit the bug report without simulating a keystroke

vscode:// URI handler and sent a synthetic Return. Measured on desktop-1, that cannot work: KDE's screen locker holds an exclusive X input grab whenever the scr...

Kamo·2w ago
Featurekamo-meet

Resolve the lobby's org from the room or ?org=, not the host

/api/config and /api/branding read the organization from the hostname. On the shared meet host that is the platform organization for every tenant, so each of th...

Kamo·2w ago
FixSecurityService

Send the member to the workspace host, not a relative path

SignInCompletionService returned a relative /validate?otk=. That resolves against the host that served the SIGN-IN — login.<apex> — and kamo-login has a /valida...

Kamo·2w ago
RevertSecurityService

Turn the workspace picker back off

The redirect is wrong. SignInCompletionService returns a relative /validate?otk=, which resolves against the host that served the sign-in -- login.<apex> -- and...

Kamo·2w ago
Docskamo-login

Close out the tenancy plan

Kamo·2w ago
FeatureSecurityService

Turn the workspace picker on

A member of several organizations now chooses which one to open after their password, instead of having it chosen for them by the hostname. This is the switch t...

Kamo·2w ago
Featurekamo-internal

Show Google's OAuth callback URL on its registration card

An operator filling in the Google Workspace registration had nothing telling them what to put in the Google Cloud console's Authorized redirect URIs, and the Re...

kamo·2w ago
FeatureSecurityService

Accept an explicit org, not only the host

Registration bound the account to whatever organization the host resolved to. On register.kamocrm.com — the signup page for every organization with no register ...

Kamo·2w ago
FeatureAPIService

Forward /api/email/oauth/callback to EmailService

Google's OAuth redirect target. Same shape as the email and meet provider callbacks beside it: public and sessionless, because the popup lands on this gateway o...

Kamo·2w ago
FeatureEmailService

Serve Google's OAuth callback on /api/email/oauth/callback

The platform console needs an address to show an operator setting up the Google Workspace registration, the way VOIP has /api/voip/oauth/callback. The only emai...

Kamo·2w ago
Featurekamo-register

Brand and scope signup with ?org=

register.kamocrm.com is the signup page for every organization that has no register host of its own, so the hostname cannot say which one a visitor is signing u...

Kamo·2w ago
Featurekamo-shared-library

The FHIR datatype layer and its discipline harness (SP3)

The foundation every clinical entity reuses, and the build gate that stops it drifting. Both land together on purpose: a harness written before there is anythin...

Kamo·2w ago
FixSecurityService

Delete the "first organization in the database" fallbacks

Seven blocks across five controllers ended their org-resolution with, in effect: if the server name is localhost or a bare IP, return whichever organization the...

Kamo·2w ago
FixSecurityService

Keep an alias unique platform-wide, on both write paths

Creation checked the alias only within one security provider, and PUT /org/{id} checked nothing at all — it applied whatever it was given. Both were reasonable ...

Kamo·2w ago
FeatureSecurityService

Refuse the AI training corpus exports for PHI tenants

ANALYTICS_EXPORT is blocked because exports leave the boundary with no de-identification. Both training exports already had a fail-closed audit — there IS a rec...

Kamo·2w ago

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei