Mabadiliko ya Tabianchi

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

17,876
Mabadiliko ya Jumla
4,587
Features ya
4,517
Wa
32
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,876AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService352InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,557kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter ya aina
Aina zoteBuild24CI522Chore670Docs226Feature4,587Fix4,517Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
August 11, 2026
Featurekamo-internal

Deliver the org timezone to the browser

The client Organization model had no timezone field, useFormatters and next-intl are both configured with no timeZone, and timezoneService's backend call 404'd ...

kamo·4w ago
Docskamo-internal

HR timecards design and plan series

Design grounded in a 25-agent cross-repo survey. Part II closes the twelve blocker-level gaps an enterprise feature-completeness review found between the punch ...

kamo·4w ago
FeatureSecurityService

GET ****************

timezoneService.ts has called this endpoint since it was written and it existed in no Java service; the client swallowed the 404 and resolved to UTC. Meanwhile ...

Kamo·4w ago
Featurekamo-shared-library

WorkSite, the jurisdiction anchor

Named WorkSite, not WorkLocation: TeamMember.workLocation is an existing office/remote enum and a second symbol by that name would collide in every grep. zoneI...

Kamo·4w ago
Featurekamo-shared-library

Employment and effective-dated assignment revisions

Punches will reference an ASSIGNMENT, not a member. That is what makes concurrent positions, the 29 CFR 778.115 weighted-average regular rate, multi-site jurisd...

Kamo·4w ago
Featurekamo-shared-library

Effective-dated, append-only pay rate

No employee compensation existed anywhere on this platform before this entity. It is required: overtime is computed against the FLSA regular rate, CA requires t...

Kamo·4w ago
Featurekamo-shared-library

Append-only punch log and audit event

Both served by NARROW Repository interfaces, not JpaRepository: deleteAllInBatch and bulk JPQL bypass entity callbacks, so the interface shape is what makes app...

Kamo·4w ago
Featurekamo-shared-library

Timezone-of-record resolver

Authority order work site -> member -> org -> UTC. The work site wins because wage-and-hour rules follow where the work is PERFORMED. A production census this ...

Kamo·4w ago
Featurekamo-shared-library

Shared WORM refusal guard

@Column(updatable=false) does NOT enforce immutability -- Hibernate silently omits the column from the UPDATE and the stale write looks like it succeeded. The o...

Kamo·4w ago
Featurekamo-shared-library

Domain enums and point-in-time version resolver

Enums are all @Enumerated(STRING) at the call site: ORDINAL emits a numeric range CHECK containing AND, which SchemaCleanupRunner's IN-list sweep deliberately s...

Kamo·4w ago
Fixkamo-internal

Put a person's own bill somewhere they can actually reach

The self-pay and seat-coverage panels were on /settings/account?tab=billing. That page redirects anyone without CONFIGURE_SYSTEM or a finance right back to /set...

kamo·4w ago
FixInitializerService

Retry a serialization conflict instead of aborting the whole initializer

Found by running it. YugabyteDB performs online schema change, so a CREATE UNIQUE INDEX issued while Hibernate's ddl-auto pass is still settling can lose the ra...

Kamo·4w ago
Featurekamo-internal

Show members who pays for their seat, and stop offering a second one

The coverage endpoint shipped with translation keys and no component, so the question it answers — who pays for my seat — still had nowhere to be asked. SeatCov...

kamo·4w ago
FeatureBillingService

Let a group's plan be cancelled, and stop double-paying for one person

Three gaps in what shipped last: A group with a plan could never be removed. delete() refuses while a live subscription exists — correct, since the group row i...

Kamo·4w ago
Featurekamo-internal

A group you can put people on and pay for

Creating a group produced a name and nothing else — no way to add anyone, no way for its manager to choose a plan, nowhere to pay. Opening a group now shows who...

kamo·4w ago
FeatureBillingService

Make billing groups work end to end, and stop self-pay charging for nothing

A group can now gather people, buy a plan on its manager's own card, and hand its seats out. None of that existed: the only operations were create, approve and ...

Kamo·4w ago
RefactorSecurityService

Follow the subscription finder rename

**************** is gone from the shared library. Its Optional return depended on a unique constraint that no longer exists, so once one account holds both a pe...

Kamo·4w ago
FeatureInitializerService

Schema for groups that can actually pay

Three runners: BillingGroupRosterMigration creates billing_pay_group_members — whom a group means to pay for, before it has bought anything. org_id is denormal...

Kamo·4w ago
Featurekamo-shared-library

Let a billing group be its own payer

A group could be named and nothing else. Its subscription was never set — nothing in the platform called setSubscription — so subscription_uid stayed null forev...

Kamo·4w ago
FixEmailService

The source half of 1b3553f, which committed only its tests

1b3553f staged its two new test files and nothing else, so it landed asserting a nullable FolderManager.setFlags that did not exist yet and cannot compile on it...

Kamo·4w ago
FixEmailService

Stop an unnamed IMAP flag from being overwritten

IMAP flags are independent, so "mark this read" must say nothing about the star. EmailImapService.setFlags has always taken nullable Booleans and skipped the nu...

Kamo·4w ago
Featurekamo-internal

The HR course editor, assignments grid and member course player

/hr/training replaces its placeholder with the two sub-tabs the brief asked for, and the member's Assigned Training grid gains the action column it was holding ...

kamo·4w ago
FeatureDaemonService

The hourly training reminder tick

HOURLY at :10, unlike the legal sweep's daily 13:00. Training reminds each org at its OWN local send hour, and Organization.timezone spans 21 hours (Pacific/Hon...

Kamo·4w ago
FeatureDocsService

The complete HR Training backend

Course authoring, publishing, assignment, the member player, server-side grading, WORM evidence and the reminder sweep — the whole module behind /api/docs/train...

Kamo·4w ago
Featurekamo-shared-library

The four training email templates

Same constant/dotted-key split as the HR legal family: the CONSTANT is the filename stem, the templateKey the platform SENDS is the dotted value inside each .js...

Kamo·4w ago
Featurekamo-internal

One member surface for both obligations, one badge for either

The member's compliance tab had two sub-tabs, Pending and Completed, for one kind of obligation. Those are a STATE, not a kind — so they collapse into a status ...

kamo·4w ago
FeatureDocsService

The member-facing Training API

Registers com.kamo.z.shared.hr.training in @EnableJpaRepositories — @EntityScan is broad so the entities are found either way, but repositories are not. Two au...

Kamo·4w ago
Fixkamo-internal

Let document uploads actually reach the 3 GiB backend ceiling

The backend now streams to 3 GiB, but three things in the browser and the BFF made that unreachable, each fatal on its own. The upload proxy did `await request...

kamo·4w ago
FixConversionService

Raise the document upload ceiling from 500MB to 3 GiB

Chat attachments have run at 3 GiB through this same imaging pipeline for a while; documents were capped at 500MB. The difference was not a policy, it was that ...

Kamo·4w ago
FeatureInitializerService

Create the HR Training schema

Registers com.kamo.z.shared.hr.training in the explicit @EnableJpaRepositories list — @EntityScan is broad so the entities are found either way, but repositorie...

Kamo·4w ago
Featurekamo-shared-library

Stream document uploads and add the HR Training schema

ImageService gains uploadDocumentStreaming, the streaming counterpart of uploadDocument. The buffered form cannot express a large upload at all: readInputStream...

Kamo·4w ago
ChoreEmailService

Rebuild against the shared-library JetStream consumer reconcile

Picks up kamo-shared-library f3a7283. Eight members hold an email-ws-<id> consumer still filtered on email.inbox.<addr> from before subscribeToNats moved to ema...

Kamo·4w ago
Fixkamo-shared-library

Recreate a durable consumer whose stored filter no longer matches

A durable JetStream consumer keeps the filter subject it was created with for the life of the stream. When the owning code later changes that subject, jnats ref...

Kamo·4w ago
Fixkamo-internal

Style the scrollbar on the element that actually scrolls

SettingsView declares an 8px primary-tinted scrollbar on the white card, but that card never overflows — every ancestor down to TabPanel is flex:1 with minHeigh...

kamo·4w ago
Fixkamo-internal

Give the Plans & billing tab its page gutter and section surfaces

The console rendered flush against the settings card on all four sides. Nothing in the container chain pads a tab child — SettingsView's card, its inner Box, Ta...

kamo·4w ago
Fixkamo-internal

Stop one failed call from blanking the whole console

Loading the console makes four calls, and any one of them throwing produced "Couldn't load your billing" with nothing else on screen. The subscription list is t...

kamo·4w ago
ChoreBillingService

Rebuild against the renamed pay-group table

The entity moved from billing_groups to billing_pay_groups after it turned out the former is a live legacy table with a different shape. This service still hold...

Kamo·4w ago
FeatureInitializerService

Create billing_pay_groups explicitly, and undo the legacy collision

Creating it in a migration rather than leaving it to ddl-auto, which produced a half-built table when the entity was pointed at the pre-existing billing_groups.

Kamo·4w ago
Fixkamo-shared-library

Stop the pay-group entity sitting on a legacy table

BillingGroup was mapped to billing_groups. That table already existed — one of a seven-table subsystem (billing_group_members, _subscriptions, _licenses, _invoi...

Kamo·4w ago
Fixkamo-internal

Declare the object-storage secret the ConfigMap no longer carries

MINIO_SECRET_KEY was moved into the minio-app-credentials secret, but the envFrom supplying it was only applied live and never committed, so a CI reconcile woul...

kamo·4w ago
FixSecurityService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
FixMediaService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
FixMCPGatewayService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
FixKBService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
FixESigService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
FixDocsService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
FixConversionService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
FixAIService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

Kamo·4w ago
Fixkamo-shared-library

Never let the quota service stop a service from starting

StorageQuotaService took its five repositories as required constructor arguments. Services in this estate component-scan com.kamo with a wildcard but declare an...

Kamo·4w ago
Fixkamo-internal

Stop shipping the shared credential in this repo

The object-storage key sat in k8s/configmap.yaml, which kubectl will hand to anyone who can read the namespace, and the same string was hardcoded as the SSH pas...

kamo·4w 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