Skip to the content
GymAI News
Dev log

Dev log #20: a gym leaves by a mailed link, and a rendered page is never cached

Twenty-four commits landed on the working branch since the last entry. A gym now leaves the platform through a link sent to its address rather than by typing its own name into a box. The five console screens hold their menu at one height, and nothing the site server renders is kept in a cache any more. And every ruling the owner has ever given is readable on one page: 578 of them.

A gym leaves by a link sent to its address

There is now one way out, and it is specified end to end. A single route asks for it, the link arrives by mail, and the console’s step asks for that link rather than for anything typed from memory.

The two doors that asked a gym to type its own name before closing or deleting its account are gone, and so is the helper that read a profile name off the account, because a gym identity does not carry one. One route, one mailed link, one confirmation: the path a gym actually walks, rather than two that each needed something the other did not have.

Red first: three of four on the route, eight of eight in the console. Green at 5,127 across the library and the site, 19 in the console and 10 in the browser, with the accessibility checks run at 360, 834 and 1180 pixels.

The console menu sits at one height, and a rendered page is never cached

The five console screens now start under the head of the page, so the menu row lands at exactly the same height whether the screen below it is short or long. Measured at 1180, 834 and 360 pixels, the row does not move.

Two things changed behind it. Everything the site server renders now says no-store, so a page is built fresh for whoever asks. And each rendered page links its stylesheet with a fingerprint of that file’s own contents in the address, which means a change to the styles is in front of you the moment it is deployed rather than waiting out the host’s week-long cache. The landing page’s static HTML is deliberately left alone.

Red first: three of three in the browser and two in the unit suite. Green at 30 browser tests and 5,129 across the library and the site.

Two refusals that now say which refusal they are

A door that says no should say which no it is.

The operator’s enrolment link, the enrolment step and the sign-in step each used to fall back to one sentence about a link perhaps having been used already. When what the server actually answered was the hourly cap, all three now say so in those words instead. Three of five new browser tests red first; the specification’s own suite green at 122 of 122.

Separately, the tool that enrols an operator key now refuses a blank label outright, exiting without printing a link, and the deploy runbook carries the label with it. The screens that name whoever is signed in always have a name to show, because a key without one can no longer be made. Red first at three of four, green at nine of nine.

Every owner ruling on one page, and a billing record with a specification

Every ruling the owner has given is now gathered in one document: 578 rulings, 542 of them in force, each with its number, its date and what it decided. The rulings before this were scattered across the record of the sessions that produced them, correct but unreadable as a body of law.

The rulings themselves keep arriving. One of this period’s is a rule about how to build rather than what to build: no patches for states nobody has ever reached. Where a cure had been written into the runbook for an old key with no name on it, the cure came out and the guard that refuses to create such a key in the first place stayed.

Two more went in as specification. The billing record has its own document now, and the decision in it is that an account which stops paying is suspended rather than closed: the data is kept for six months from that point, and the account itself is never deleted. And everyone using the app lives at one address, app.gymai.coach, rather than on an instance raised for them.

53 checks, 10,425 unit tests and 1,530 browser tests

The gate’s verdict line reads 53 checks, all green. Its last full run read 10,425 unit tests and 1,530 browser tests, up from 10,418 and 1,526. The standing counts, each written by the check that derives it: 55 routes, 27 rate-limited; 1,943 rule citations resolving by number, up from 1,909; documented coverage across 258 modules; 204 equipment rows, every one a thing a gym can own; 81 artboards; 2,661 tracked text files read for a real person’s address, with nothing in them but reserved domains and twelve listed exceptions; 528 generated guide files, each matching what its sources produce; Node pinned at 22.23.2.

What comes next

More slices from the same queue, each starting from a failing test, and the work towards opening the free gym listing carries on behind them.

If you would rather be told when GymAI opens than keep checking, the waiting list is on gymai.coach.

GymAI


Related

No comments yet

Nobody has written anything here. You can be the first.

Leave a comment

Your name and comment are published. Your email is not, and is never sent anywhere else. How we handle data