KamoCRM

The nav option, the settings section, and the storage figure

Featurekamo-internal
Shipped
September 23, 2026 at 6:13 AM UTC
Author
Kamo
Commit
f49ed63

A member's own Linux computer, opened from the top bar. The app (ServiceType 37) and its three rights landed in the shared library; this is the half people see. THE NAV OPTION APPEARS EXACTLY WHEN THERE IS SOMETHING BEHIND IT Gated on the server's answer to "which computers may this member open", not on a right and not on god. The dev-machine option had to be taught this: it was god-gated once, which put an icon in front of people with no account on the machine and produced Guacamole's generic error when they clicked it. So a manager holding ACCESS_SUBORDINATE_COMPUTERS and no computer of their own still gets the icon — there is something behind it — and an administrator holding MANAGE and nothing assigned does not. The list is the server's, in the server's order: own first, then subordinates', then the organization's. Nothing here filters or reorders, for the reason /network's listing is server-decided — a client-side filter is a list that has already been sent, and the order carries information the client never sees because it does not have the manager chain. Each row expands to the sizes from DESKTOP_RESOLUTIONS, reused rather than restated so a size added there lands on the correct side of the rule under "Fit my window" without anybody moving a boundary. Every row wears its state, because "asleep" is the normal resting state of one of these computers rather than a fault, and a row that said nothing would leave somebody who waits a minute thinking it had failed. openHostedComputer is more than a fetch and a redirect for the same reason: a launch has three answers and two of them are not a link. Asleep means a wake has started and takes 30-90 seconds while the guest reads its memory back off a replicated volume, so the tab SAYS that — a blank tab for a minute is indistinguishable from a broken one, which openKamoDesktop had to be taught as well. No login yet means Kamo never stored the password and the member confirms it once; that is the design working, not a failure, so the tab closes and a dialog asks instead of leaving a page of explanation nobody wanted. THREE SETTINGS TABS. One was asked for; the other two are why it is usable Computers is the one: assign, resize, change storage, sleep, remove, live on useOrgChanges. Capacity answers "why will this not start?", which otherwise has no answer anywhere in the product — and the answer is counter-intuitive, so the bars say REQUESTS rather than usage, because a machine can look half idle and have no room. Defaults stops an organization re-choosing a size and a disk for every person, and every box there can be blank, where blank means "follow the platform" and not zero. The resize dialog warns and the storage dialog says it will not, which is the pair worth having: a size change restarts the computer because a sleep image is bound to the memory size it was written at, and a storage change expands the volume online and disturbs nothing. STORAGE ON THE STATS PAGE, AS ITS OWN PANEL HostedComputerUsagePanel sits directly after Storage on Settings → My Account → Stats & Costs. Not a row in that table: its rows come from the billing snapshot sweep walking storage RECORDS, and a computer's disk has none — what is on it is known only to the guest, which reports its own filesystem figure. Longhorn's number would be wrong in a way that matters, because it counts everything ever written and never falls when somebody deletes a file. The swap file is excluded: it is the size of the computer's memory and exists so the machine can sleep. Two things my own checks caught and fixed: the nav gate returned `undefined` rather than `false` for an organization with no flag set (`undefined && x`), and the storage column passed `number | null` into an ICU placeholder — the ceiling and "it grows" are the same fact, so it now reads the ceiling once and lets TypeScript follow the narrowing. Verified: tsc clean of everything but four pre-existing ReplyQuote errors in chat and support, present at the same lines on origin/main. 320 nav and lib tests pass. eslint clean on every new file and no new warning in the edited ones. All three image-build guards pass — check-i18n-keys clean over 4268 files against the dictionary head, which was pushed first and verified by ancestry.

All changes

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.

Start Free ForeverView Pricing