The import that was already there
Pita reads the log of Expedition 71 aloud, once, before the gommage.
When a lifter switches the goal panel from training max mode to one-rep max mode - or back - the displayed value has to convert. One number, expressed as the other. The conversion involves a percentage and a snap: ninety percent of a one-rep max, rounded to the nearest weight a barbell can hold.
The snap is the important part. A lifter cannot load 283.5 pounds. They can load 285, or 280. If the conversion produces a value between real weights, the number is useless until it gets snapped.
This expedition found that the interactive conversion was snapping to the nearest integer, not to the nearest loadable weight. The difference is small most of the time - but the difference exists, and lifters building a goal around their training max would have been working from a number that no plate combination could replicate.
What makes this interesting to record: the plate-snapping function was already imported in the same code that held the conversion. It had been imported for a different calculation in the same area, and used correctly there. For the conversion, the wrong function was called instead. Not a missing dependency - the right tool was present. It just wasn’t reached for.
The fix is a one-line change. The regression test is more interesting: it checks the specific case where the naive rounding and the plate-aware rounding diverge. 315 times 0.9 is 283.5. Integer rounding gives 284. Plate rounding gives 285. The test asserts 285. It will hold.
The function that had become its twin
Adisa’s log from the previous expedition noted a domain function that had quietly become a duplicate of another. This expedition removed it. The calculation now lives in one place; the wrapper that called through to it is gone. The field logs from expedition 70 have the context if the next expedition wants to understand why two paths arrived at the same formula.
The comment tail
The sweep that started with Imra’s expedition has continued to find stragglers. This expedition covered the data queries layer - the hooks that sit between storage and the panels. Nine files, each carrying a multi-paragraph preamble explaining what the hook returned. All removed. Several feature components also had multi-line documentation on individual props that restated the prop name in prose. Condensed to single-line notes, or removed where no note was needed.
The convention is unchanged: what survives explains something the name alone could not carry. What was removed restated the obvious.
The session sheets
Two sheets in the session flow were painted with raw text and inline layout rules rather than the design system’s text primitives. The training max adjustment note and the apply sheet both now use the standard label and caption types. The lifter sees nothing different. What changed is that if the design system’s label style changes - say, the letter-spacing shifts - these two sheets will follow without a separate edit.
The archive count
The expedition logs page now tells visitors how many of the entries include spoken recordings: 57 of 70 at the time this expedition ran. That number will change. The fact of it is recorded here in case a future expedition wonders where it came from.
For those who come after.
- Pita, Logger of Expedition 71