fix(jobs): widen the title clamp and restore the waiting progress bar #227
No reviewers
Labels
No labels
adr
android
area/calendar
area/design-system
area/i18n
area/jobs
area/offline
area/server
area/testing
bug
ci
duplicate
enhancement
help wanted
invalid
notifications
question
reliability
security
severity/low
severity/medium
tracking
web
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
eagraiclainne/app!227
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/job-card-title-progress"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two divergences found by putting the deployed card beside the design's own
reference panel.
The waiting card lost its progress block. The gate read
hasSteps && !waiting; it is nowhasStepsalone, which is every rung butWHAT TO DO. The waiting panel's own 107px floor went with it — with theindicator back above it, the panel no longer has to carry that budget alone.
The title was 1.05rem where the design says Fredoka 600 at 1.2rem, clamped to
two lines. The avatar was already right at 28px. The header row moved to top
alignment so the avatar and the repeat glyph sit correctly once a title can
wrap.
312px survived, which was not a foregone conclusion: the title grows every
card and the bar grows the waiting one. Dropping the panel's floor supplied
exactly the slack they spent. Measured 312 / 359 / 415 across the three text
scales, uniform across every state including the worst case — a two-line title
above a restored bar on a waiting card — with no clipping anywhere.
One testing note worth keeping: the first Android clamp test passed against both
the old and the new code, because Robolectric's default LEGACY graphics mode
fakes text measurement. It was rewritten under
@GraphicsMode(NATIVE)beforebeing trusted — a test that cannot fail is worse than no test.
🤖 Generated with Claude Code
Two build defects, both found by checking the deployed card against the design's own reference panels (job-card-explorations.dc.html 9a-9c, build-review-01): - The waiting panel (§4c) was built to REPLACE the progress block, but spec-4h-rulings.md §1 folded WAITING ON into the same panel-filler ladder as ONE TO DO and ALL TICKED — all three stand UNDER the indicator, none replace it. Panels 3b and 9b both draw the bar above the waiting panel. Suppressing it left a non-owner on the Everyone board with no read at all on how someone else's job is going, since the panel itself is keyed on the reader, not the owner's progress. The waiting panel's own 5.9556rem/107dp floor is dropped with it — that floor existed only because it used to carry the WHOLE indicator-and-panel budget alone; standing under the indicator now, it needs no floor of its own, same as the ONE TO DO/ALL TICKED panels. - The header title was 1.05rem with no explicit face (falling through to the body font) and a single-line ellipsis. build-review-01's slot 1 is explicit: "title (Fredoka 600, 1.2rem, clamp 2 lines)". Taken to spec on both surfaces; the header row also moves from centred to top-aligned so the avatar and repeat glyph sit against the title's first line instead of its vertical middle, which only read the same while every title was one line. The clamp-to-two-lines call: build-review-01 states it plainly, and neither README §4 nor spec-4h-rulings.md say otherwise anywhere in the actual text — the single-line-ellipsis rule the build shipped with was the previous engineer's own code comment, not a citation to any design document, so there is no real conflict to escalate. Both changes add height (the title on every card, the bar on the waiting one). Re-measured tests/gallery/heights.spec.ts at 1x/1.15x/ 1.33x against every render-job.json case, including the combined worst case (a wrapped two-line title AND the restored bar, both on the "waiting on others" fixture): every state still lands on exactly 312/359/415px with zero clipped content. 312 holds; the waiting panel's floor removal supplies exactly the slack the other two additions spend. conformance/render-job.json: the two waiting fixtures move their progress caption ("N of M done", the percentage) from `absent` into `expect` — both surfaces read the same JSON. Android's title got a NATIVE-graphics Roborazzi test (JobCardTitleClampTest.kt) rather than a Robolectric semantics-bounds assertion in JobCardTest.kt: LEGACY graphics mode fakes text measurement (every glyph run comes back a few px regardless of content), so an absolute-height assertion there passed against BOTH the old and new code for the wrong reason. NATIVE mode gives real geometry, the same reason JobDueWorthLayoutTest.kt already needs it. Form-fragment sweep run over every touched file (JobCard.tsx, Jobs.kt, app.css): no hits — nothing here is row-grammar markup.Android test report
Coverage:
Updated by the android workflow · commit
63e0efc053Test report
Coverage: 27.0%
Updated by the check workflow · commit
63e0efc0531ce597b57463e0efc053