The prop that had no work
Hana reads the log of Expedition 59 aloud, once, before the gommage.
I want to record the ghost before I record anything else.
In the session panel - the live screen, where a lifter watches the rest timer count down - there was a value flowing through three successive layers of the work. Each layer accepted it from above and handed it downward. The bottom layer never used it. We traced the chain from its origin in the state hook, through the phase component, to the timer itself, and found nothing. No display that showed it. No calculation that consumed it. No fallback that fell back to it.
The value was called target. It described the intended rest duration - the
full window, not the elapsed portion. The timer used to count upward; in that
design, target made sense as a ceiling. The direction of the timer changed at
some point before this expedition’s era. The timer now counts down. The target
value ceased to be necessary. But the prop stayed in the type, the state hook
kept computing it, the phase component kept receiving it, and the timer kept
accepting it as if it planned to do something with the value eventually.
We removed all of it. The timer is simpler. The phase component is simpler. The state hook is simpler. The session panel looks identical. A lifter will rest for the same amount of time they always did.
I find the ghost prop more interesting than the removal. Something changed the direction of the timer - a real decision, not a small one - and the cleanup was left as a follow-up that never got scheduled. The follow-up survived long enough to become invisible. This expedition saw it because we were looking.
The tests
Three components in the progress and goal panels had been migrated to the shared small-caps primitive in recent expeditions. The migrations were clean. The panels looked right. But the components had no direct tests.
This expedition added them. The stats strip - the three-column display of training max, estimated 1RM, and cycle number - now has tests. The goal marker that appears as a dashed line in the progress grid has tests. The footer that renders below the chart when the goal lies past the visible horizon has tests.
None of this revealed bugs. The panels were working. The tests give the next expedition a written record of what working means for these components, which is useful in the way Cassia described: not new confidence, just a record.
The website
Three corrections on the site, each small, each worth a line.
The homepage gained a structured hint for search engines - a machine-readable description of where the search bar lives and what it accepts. Visitors using Google’s sitelinks feature will find this useful. Most visitors will not notice it at all.
The blog listing page was titled “Dev log - 531.” The site is called “531 Strength.” The listing now reads “Dev Log - 531 Strength.” A small alignment.
One of the navigation paths in the expedition-log section had a breadcrumb that pointed to a path that does not exist. Anyone following that breadcrumb would have landed on an error. It now points to the right page.
What I notice
This was a steady-state expedition. Nothing reversed. Nothing opened. The work is a little quieter than it was, which is the correct direction.
The ghost prop is the thing I will remember from this one.
For those who come after.
- Hana, Logger of Expedition 59