Jobs: retire the 'step' noun and settle the unassigned names #179
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
eagraiclainne/app#179
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Part of the jobs flow redesign. The design handoff (
design_handoff_jobs_flow, held outside the repo) is the source; the facts it depends on are repeated here so this issue stands alone.The interface is to use no noun for a sub-job. Headings and counts carry it instead:
To do,7 left,1 of 3 ticked,Add another,Break this up,4 to do with Ali, Sam, Jo,Delete this and the 12 under it?. Engineering keeps saying sub-task and step; the user interface says neither.That is about 21 msgids in the web app alone (Add a step, Steps, {stepsDone}/{0} steps, Whose step is it?, and more), across six locales, plus the Android strings. Server-side domain error text is in scope too — for example "steps only go under an open standalone job" reaches the reader, because a failure names its reason.
The unassigned state has the same problem in reverse: the app already ships two names and the design was adding a third. One name per position:
AnyoneUp for grabsTake this job/Taking..., the strings already shippedNot assigned yet is retired, and it has nine call sites, three outside the jobs surface (
Rewards.tsx:303,598,Calendar.tsx:1169, and theMemberSelectsentinel). Sweep them all in one pass; a jobs-only sweep leaves the app with two names anyway.Update — retire
Overduein the same passThe word goes with the noun.
Latereplaces it: six letters, legible in adense row, and what a family says out loud. Irish needs its own pass, not a
literal translation.
The ladder, five bands, one sentence each, never a bare stamp:
Late — was due 09:45Late — was due yesterday4 days lateLate — was due 14 AugustlateWhat moves, and what must not:
notify.job_overdueininternal/notify/locales/*.json, six localesmessages.po:476)NOTIFICATION_KIND_JOB_OVERDUE = 13User.push_disabled_kindsand on notification rows; ADR-0035 forbids renaming an enum value, and a strict unmarshal would orphan every stored preference. Copy changes, the wire name does not.cmd/seed/data.go:340).Calendar.tsxThe label helper is shared, so web and Android move together. The marketing
site (
eagraiclainne/website) is a separate repo this repo's i18n gate cannotenforce — a follow-on, not an acceptance criterion.
Two requirements added after #213 shipped
The job sheet went out to the family's cluster three times before it was right.
Seven visual defects, none caught by a suite: pickers that unfolded forms
instead of opening, three Save buttons on a commit-on-blur screen,
(optional)labels, a reward's name used as a field label, an unstyled add row, checkboxes
with a ghosted tick, and a create form with a browser spinner. Every one had to
be found by a person looking at a screen.
What this means here
This ticket rewords rather than builds, so the goldens it touches are
re-recorded existing cases: they go in their own commit, and the code and
fixture changes go in another. AGENTS.md has the rule.
It also inherits half of the form-styling sweep.
(optional)is copy, and #213removed three instances from the job sheet — but the pattern lives on wherever
the shipped forms do. While you are sweeping
stepandOverdue, note (do notnecessarily fix) any
(optional)label, anySave changeson acommit-on-blur surface, and any disabled-and-grey control you pass, and list
them so they can be ticketed.