chore migrate requests to tagged stream

Flatten the topical containers (Dispatch, Core domain, Navigation, and the rest) into one newest-first stream of top-level headings. Apply kind, scope, and optional impact tags to each request. Content is unchanged; only structure and tags move.

Commit
70317a16329dac8bf34035f95c15f06db95795ca
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
REQUESTS.org
index fe7aaf10..5788c7a8 100644..100644
@@ -3,33 +3,137 @@
3 3 #+STARTUP: content
4 4 #+TODO: TODO IN-PROGRESS TESTING TESTED BLOCKED | CANCELLED DONE
5 5
6 Removed: * Dispatch
6 Added: * DONE Add a time graph of feedback elements to the logbook :feat:ui:
7 Added: CLOSED: [2026-09-06 Sun 14:23] SCHEDULED: [2026-09-06 Sun 13:43]
8 Added: :PROPERTIES:
9 Added: :ID: b7813f9d-931a-4993-ae08-ff1c661b9775
10 Added: :END:
11 Added: The logbook page should present a time graph of various feedback elements over time.
7 12
8 Removed: ** DONE Show feedback author and contribution count
9 Removed: CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:24]
13 Added: - result :: model=kiro-cli commit=71580da tests=246 pass
14 Added: * DONE Fix elapsed duration timer on workout logging page :fix:ui:
15 Added: CLOSED: [2026-09-06 Sun 13:58] SCHEDULED: [2026-09-06 Sun 13:42]
16 Added: :PROPERTIES:
17 Added: :ID: 8fcbf31c-92d4-4b9b-ab6f-b5e723f70312
18 Added: :END:
19 Added: Fix the elapsed duration timer in the current workout logging page.
10 20
11 Removed: feedback should display username that submitted it, alongside their total number of feedback contributions.
21 Added: - result :: model=kiro-cli commit=dbe2dda tests=241 pass; root cause js_of_ocaml 31-bit int overflow on epoch values, fixed with float arithmetic
22 Added: * DONE Move username and password editing into a modal :refactor:ui:
23 Added: CLOSED: [2026-09-06 Sun 14:30] SCHEDULED: [2026-09-06 Sun 13:39]
24 Added: :PROPERTIES:
25 Added: :ID: a68fba78-f707-4f57-b757-2ba1214d9876
26 Added: :END:
27 Added: On the profile page, username and password should not have dedicated input fields. We should only see username, then the value for the user's username, then the change username button affordance, not the input field. Editing username and password should pop open a modal menu.
12 28
13 Removed: Clarification:
14 Removed: - Users should see real usernames.
15 Removed: - Rank the feedback list by upvotes.
16 Removed: - Let users upvote feedback submitted by other users they think is valuable.
29 Added: - result :: model=kiro-cli commit=d38fd43 tests=247 pass
30 Added: * DONE Remove the black line after the masthead :refactor:ui:trivial:
31 Added: CLOSED: [2026-09-06 Sun 13:52] SCHEDULED: [2026-09-06 Sun 13:32]
32 Added: :PROPERTIES:
33 Added: :ID: fc45fee8-a8c9-4d8b-8403-5d3219926c63
34 Added: :END:
17 35
18 Removed: - result :: commit=98e5fb5 tests=215 pass
36 Added: Remove the black line after the masthead
19 37
20 Removed: ** CANCELLED Keep the routine as a table
21 Removed: CLOSED: [2026-09-05 Sat 22:02] SCHEDULED: [2026-09-05 Sat 21:24]
38 Added: - result :: model=kiro-cli commit=d6b3b97 tests=241 pass
39 Added: * BLOCKED Add profile dropdown actions :feat:app:
40 Added: SCHEDULED: [2026-09-06 Sun 13:09]
22 41 :PROPERTIES:
23 Removed: :ID: 6b126d4c-6058-4b7a-8c67-640ce6160ba7
42 Added: :ID: db8901b3-f932-4c88-8d0d-7ddadfb97f32
24 43 :END:
44 Added: Source: application feedback (VPS, trainee t1, sequence 5, submitted 2026-09-05T22:18:25Z)
25 45
26 Removed: - note :: Duplicate. The routine already renders as an HTML table (commit 4e4acac, "Replace routine accordions with an HTML table"). No new work.
27 Removed: routine must absolutely be a table.
46 Added: Make the profile control a drop-down with Profile, Settings, and Sign out actions.
28 47
29 Removed: Clarification:
30 Removed: - This is a duplicate request.
48 Added: - blocked :: No Settings page or /settings route exists; /profile already holds account settings (username, password). Awaiting decision: (1) point both Profile and Settings at /profile, (2) drop Settings for Profile + Sign out only, or (3) create a new /settings page (scope TBD).
31 49
32 Removed: ** DONE Use POST-redirect-GET for all forms
50 Added:
51 Added: * DONE Define five-point subjective feedback scores :feat:core:
52 Added: CLOSED: [2026-09-06 Sun 14:07] SCHEDULED: [2026-09-06 Sun 13:09]
53 Added: :PROPERTIES:
54 Added: :ID: 2b46d3fb-9cfc-43f3-958c-b348d1b7d58a
55 Added: :END:
56 Added: Source: application feedback (VPS, trainee t1, sequence 1, submitted 2026-09-05T22:13:05Z)
57 Added:
58 Added: Use exactly the scores 1 through 5 for subjective feedback. Score 1 means very poor. Score 5 means very good. Update the core domain as a consequence.
59 Added:
60 Added: - result :: model=kiro-cli commit=3051af0 tests=243 pass; level now Very_poor..Very_good (1..5); migration 6 drops legacy feedback
61 Added:
62 Added: * DONE Preserve partial subjective feedback :feat:core:
63 Added: CLOSED: [2026-09-06 Sun 14:19] SCHEDULED: [2026-09-06 Sun 13:09]
64 Added: :PROPERTIES:
65 Added: :ID: 50a8e1a2-d6a4-4aa9-8852-65afc15517ce
66 Added: :END:
67 Added: Source: application feedback (VPS, trainee t1, sequence 1, submitted 2026-09-05T22:13:05Z)
68 Added:
69 Added: Make Back and Skip preserve partial answers. Make Close cancel the feedback flow. Make Skip ignore the feedback event. Allow subjective feedback to be logged as a partial list.
70 Added:
71 Added: - result :: model=kiro-cli commit=6fde451 tests=245 pass
72 Added:
73 Added: * DONE Format page titles with an em dash :feat:ui:trivial:
74 Added: CLOSED: [2026-09-06 Sun 13:51] SCHEDULED: [2026-09-06 Sun 13:09]
75 Added: :PROPERTIES:
76 Added: :ID: 9800d7b7-552e-4ed1-9e96-587400ee9f7b
77 Added: :END:
78 Added: Source: application feedback (VPS, trainee t1, sequence 4, submitted 2026-09-05T22:16:53Z)
79 Added:
80 Added: Use a literal em dash in page titles, such as Hito — Home.
81 Added:
82 Added: - result :: model=kiro-cli commit=5e4236c tests=241 pass
83 Added:
84 Added: * DONE Standardize the global corner radius :refactor:ui:trivial:
85 Added: CLOSED: [2026-09-06 Sun 13:53] SCHEDULED: [2026-09-06 Sun 13:09]
86 Added: :PROPERTIES:
87 Added: :ID: 357455c5-a6a3-4dec-ad6b-5be098a11013
88 Added: :END:
89 Added: Source: application feedback (VPS, trainee t1, sequence 3, submitted 2026-09-05T22:15:29Z)
90 Added:
91 Added: Use one global border radius in relative units so that it scales across components.
92 Added:
93 Added: - result :: model=kiro-cli commit=a45027e tests=241 pass
94 Added:
95 Added: * DONE Animate modals with reduced-motion support :feat:ui:
96 Added: CLOSED: [2026-09-06 Sun 13:54] SCHEDULED: [2026-09-06 Sun 13:09]
97 Added: :PROPERTIES:
98 Added: :ID: 30266d78-2731-4306-a748-02e479d97867
99 Added: :END:
100 Added: Source: application feedback (VPS, trainee t1, sequence 6, submitted 2026-09-06T08:37:36Z)
101 Added:
102 Added: Apply a short, smooth modal animation to every modal. Disable modal animation when the user prefers reduced motion.
103 Added:
104 Added: - result :: model=kiro-cli commit=4b8df35 tests=241 pass
105 Added: * DONE Verify POST redirect GET for forms :feat:app:
106 Added: CLOSED: [2026-09-06 Sun 14:25] SCHEDULED: [2026-09-06 Sun 13:09]
107 Added: :PROPERTIES:
108 Added: :ID: 106b5917-48d9-423e-9ce9-11dc4c230603
109 Added: :END:
110 Added: Source: application feedback (VPS, trainee t1, sequence 2, submitted 2026-09-05T22:14:58Z)
111 Added:
112 Added: Redirect each form submission to the page that originated the form flow when practical. Decide whether a result type should persist success and error messages across the redirect.
113 Added:
114 Added: - result :: model=kiro-cli commit=0637e57 tests=247 pass; audit found all state-changing POSTs already redirect; decision: flash/query for success, inline 400 re-render for field validation
115 Added:
116 Added: * DONE Give each prescribed exercise its own routine sub-row :feat:web:
117 Added: CLOSED: [2026-09-06 Sun 14:01] SCHEDULED: [2026-09-05 Sat 23:10]
118 Added: :PROPERTIES:
119 Added: :ID: be3140eb-47d5-4391-9f05-7b8c3cd294f1
120 Added: :END:
121 Added: - Each prescribed exercise should exist in a separate sub-row.
122 Added: - Stimuli count column should not exist.
123 Added: - Each prescribed exercise should have specific sub-columns for exercise name, rep count.
124 Added:
125 Added: - result :: model=kiro-cli commit=28caa63 tests=241 pass
126 Added:
127 Added:
128 Added: * DONE Capture each prompt as its own request :chore:web:
129 Added: CLOSED: [2026-09-05 Sat 22:01] SCHEDULED: [2026-09-05 Sat 21:31]
130 Added: :PROPERTIES:
131 Added: :ID: cfdca5b4-80d3-448f-bf54-a365dd36a578
132 Added: :END:
133 Added:
134 Added: - result :: model=kiro-cli commit=d5553a2 tests=pass
135 Added: Edit the stream-of-thought SKILL so each individual prompt in a session becomes its own feature request, not the whole session as one request.
136 Added: * DONE Use POST-redirect-GET for all forms :feat:app:
33 137 CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:25]
34 138
35 139 Ensure proper POST redirect GET patter for all forms
@@ -40,14 +144,14 @@
40 144
41 145 - result :: commit=41a44ff tests=215 pass
42 146
43 Removed: ** DONE Standardize shared CRUD patterns
147 Added: * DONE Standardize shared CRUD patterns :refactor:app:
44 148 CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:25]
45 149
46 150 Rationalize shared CRUD pattern for domain objects, user data, and app feedback
47 151
48 152 - result :: commit=ea594ba tests=215 pass
49 153
50 Removed: ** DONE Use worse-same-better subjective feedback
154 Added: * DONE Use worse-same-better subjective feedback :feat:core:
51 155 CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:25]
52 156
53 157 Subjective Feedback evidence should be collected against the following pattern: Worse, Same, Better [than usual]
@@ -60,7 +164,7 @@
60 164
61 165 - result :: commit=f09fd5d tests=215 pass
62 166
63 Removed: ** DONE Make Write feedback the primary action
167 Added: * DONE Make Write feedback the primary action :feat:app:
64 168 CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:25]
65 169
66 170 "Write feedback" should be the single Primary action on the app-feedback page. Secondary actions are CRUD operations on previous feedback items.
@@ -71,7 +175,7 @@
71 175
72 176 - result :: commit=43da59d tests=215 pass
73 177
74 Removed: ** TODO Import Hevy CSV from profile
178 Added: * BLOCKED Import Hevy CSV from profile :feat:app:
75 179 SCHEDULED: [2026-09-05 Sat 21:25]
76 180 :PROPERTIES:
77 181 :ID: 2559dd31-18e1-4f62-8d16-92f96d782203
@@ -83,13 +187,13 @@
83 187 Clarification:
84 188 - Defer this feedback feature.
85 189
86 Removed: ** CANCELLED Fix workout cancellation flow
190 Added: * CANCELLED Fix workout cancellation flow :fix:app:
87 191 CLOSED: [2026-09-05 Sat 21:58] SCHEDULED: [2026-09-05 Sat 21:25]
88 192
89 193 workout cancellation flow still has bug
90 194
91 195 - note :: No remaining defect. Prior commits 7d9ee9e, 5aaa11f, and test ea1f211 fixed cancellation: CSRF-guarded discard, no stale record, 303 redirect to Home. test_web.ml cancellation cases pass (203 tests green).
92 Removed: ** CANCELLED Emphasize the secondary color
196 Added: * CANCELLED Emphasize the secondary color :feat:ui:
93 197 CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:25]
94 198
95 199 oxblood color is still too dominant; secondary color needs to be more emphasized
@@ -99,14 +203,14 @@
99 203
100 204 - note :: Already implemented by the existing brass secondary-button styling; no new work was required.
101 205
102 Removed: ** CANCELLED Use progressive subjective feedback buttons
206 Added: * CANCELLED Use progressive subjective feedback buttons :feat:ui:
103 207 CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:25]
104 208
105 209 subjective feedback affordances should be more progressive. not dropdowns, but button groups containing three buttons each for below, usual, and above.
106 210
107 211 - note :: Duplicate of the completed Worse/Same/Better inline controls proposal (commit f09fd5d).
108 212
109 Removed: ** DONE Store database timestamps as ISO 8601
213 Added: * DONE Store database timestamps as ISO 8601 :feat:core:
110 214 CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:25]
111 215
112 216 database timestamps should be stored as ISO8601 strings
@@ -118,328 +222,279 @@
118 222 - Existing data can be dropped safely.
119 223
120 224 - result :: commit=79bbbd7 tests=215 pass; migration 5 drops affected legacy evidence
121 Removed: ** TODO Give each prescribed exercise its own routine sub-row
122 Removed: SCHEDULED: [2026-09-05 Sat 23:10]
123 Removed: - Each prescribed exercise should exist in a separate sub-row.
124 Removed: - Stimuli count column should not exist.
125 Removed: - Each prescribed exercise should have specific sub-columns for exercise name, rep count.
225 Added: * DONE Remove spurious Page updated mention :fix:ui:trivial:
226 Added: CLOSED: [2026-09-05 Sat 21:57] SCHEDULED: [2026-09-05 Sat 21:25]
126 227
228 Added: Spurious "Page updated" mention in workout logging screen
127 229
128 Removed: ** TODO Define five-point subjective feedback scores
129 Removed: SCHEDULED: [2026-09-06 Sun 13:09]
130 Removed: Source: application feedback (VPS, trainee t1, sequence 1, submitted 2026-09-05T22:13:05Z)
230 Added: - result :: model=kiro-cli commit=dab53ca tests=pass
231 Added: * DONE Confirm workout override with a modal :feat:ui:
232 Added: CLOSED: [2026-09-05 Sat 22:23] SCHEDULED: [2026-09-05 Sat 21:25]
233 Added: :PROPERTIES:
234 Added: :ID: b9d05a7f-c8f9-4fb6-878f-a9d1f89ed45d
235 Added: :END:
131 236
132 Removed: Use exactly the scores 1 through 5 for subjective feedback. Score 1 means very poor. Score 5 means very good. Update the core domain as a consequence.
237 Added: - result :: model=kiro-cli commit=7c9f701 tests=pass
238 Added: Implement a modal confirmation when beginning a workout under override
133 239
134 Removed: ** TODO Preserve partial subjective feedback
135 Removed: SCHEDULED: [2026-09-06 Sun 13:09]
136 Removed: Source: application feedback (VPS, trainee t1, sequence 1, submitted 2026-09-05T22:13:05Z)
240 Added: Clarification:
241 Added: - The override condition is training before full rest has completed.
242 Added: - Show a confirmation modal menu before starting the workout.
137 243
138 Removed: Make Back and Skip preserve partial answers. Make Close cancel the feedback flow. Make Skip ignore the feedback event. Allow subjective feedback to be logged as a partial list.
244 Added: * DONE Show early workout notice as a toast :feat:ui:doctrine:
245 Added: CLOSED: [2026-09-05 Sat 22:26] SCHEDULED: [2026-09-05 Sat 21:25]
246 Added: :PROPERTIES:
247 Added: :ID: 8052f6e1-7281-4a57-a615-504476ca6c16
248 Added: :END:
139 249
140 Removed: ** TODO Verify POST redirect GET for forms
141 Removed: SCHEDULED: [2026-09-06 Sun 13:09]
142 Removed: Source: application feedback (VPS, trainee t1, sequence 2, submitted 2026-09-05T22:14:58Z)
250 Added: - result :: model=kiro-cli commit=9702a02 tests=pass
251 Added: "begin before recovery finished" should be a toast message rather than a component in the main content.
143 252
144 Removed: Redirect each form submission to the page that originated the form flow when practical. Decide whether a result type should persist success and error messages across the redirect.
253 Added: Clarification:
254 Added: - The toast is informational only because the modal already confirms the override.
255 Added: - Display it for 3 seconds, or for the duration recommended by WCAG.
145 256
146 Removed: ** TODO Standardize the global corner radius
147 Removed: SCHEDULED: [2026-09-06 Sun 13:09]
148 Removed: Source: application feedback (VPS, trainee t1, sequence 3, submitted 2026-09-05T22:15:29Z)
257 Added: * DONE Add custom error pages :feat:app:
258 Added: CLOSED: [2026-09-05 Sat 22:20] SCHEDULED: [2026-09-05 Sat 21:25]
259 Added: :PROPERTIES:
260 Added: :ID: 965d5284-a593-43ca-b8e4-202b093e6502
261 Added: :END:
149 262
150 Removed: Use one global border radius in relative units so that it scales across components.
263 Added: - result :: model=kiro-cli commit=34ab578 tests=pass
264 Added: Need custom 404 etc. pages
151 265
152 Removed: ** TODO Format page titles with an em dash
153 Removed: SCHEDULED: [2026-09-06 Sun 13:09]
154 Removed: Source: application feedback (VPS, trainee t1, sequence 4, submitted 2026-09-05T22:16:53Z)
266 Added: Clarification:
267 Added: - Add the most common 400 and 500 error pages.
268 Added: - Do not expose specific information from the server.
269 Added: - Keep the desktop top navigation affordance.
270 Added: - Keep the mobile bottom navigation affordance.
155 271
156 Removed: Use a literal em dash in page titles, such as Hito — Home.
272 Added: * DONE Show feedback author and contribution count :feat:web:
273 Added: CLOSED: [2026-09-05 Sat 22:54] SCHEDULED: [2026-09-05 Sat 21:24]
157 274
158 Removed: ** TODO Add profile dropdown actions
159 Removed: SCHEDULED: [2026-09-06 Sun 13:09]
160 Removed: Source: application feedback (VPS, trainee t1, sequence 5, submitted 2026-09-05T22:18:25Z)
275 Added: feedback should display username that submitted it, alongside their total number of feedback contributions.
161 276
162 Removed: Make the profile control a drop-down with Profile, Settings, and Sign out actions.
277 Added: Clarification:
278 Added: - Users should see real usernames.
279 Added: - Rank the feedback list by upvotes.
280 Added: - Let users upvote feedback submitted by other users they think is valuable.
163 281
164 Removed: ** TODO Animate modals with reduced-motion support
165 Removed: SCHEDULED: [2026-09-06 Sun 13:09]
166 Removed: Source: application feedback (VPS, trainee t1, sequence 6, submitted 2026-09-06T08:37:36Z)
282 Added: - result :: commit=98e5fb5 tests=215 pass
167 283
168 Removed: Apply a short, smooth modal animation to every modal. Disable modal animation when the user prefers reduced motion.
169 Removed: * Core domain
284 Added: * CANCELLED Keep the routine as a table :feat:ui:
285 Added: CLOSED: [2026-09-05 Sat 22:02] SCHEDULED: [2026-09-05 Sat 21:24]
286 Added: :PROPERTIES:
287 Added: :ID: 6b126d4c-6058-4b7a-8c67-640ce6160ba7
288 Added: :END:
170 289
171 Removed: * Navigation
290 Added: - note :: Duplicate. The routine already renders as an HTML table (commit 4e4acac, "Replace routine accordions with an HTML table"). No new work.
291 Added: routine must absolutely be a table.
172 292
173 Removed: ** DONE Use one desktop-to-mobile breakpoint
293 Added: Clarification:
294 Added: - This is a duplicate request.
174 295
296 Added: * DONE Fix workout log exercise selection :fix:ui:
297 Added: CLOSED: [2026-09-05 Sat 22:02] SCHEDULED: [2026-09-05 Sat 21:24]
298 Added: :PROPERTIES:
299 Added: :ID: 45453231-7ac9-444c-96c2-af387a34bb0c
300 Added: :END:
301 Added:
302 Added: - result :: model=kiro-cli commit=61bf45c tests=pass
303 Added: Broken workout log editing: exercise selection button.
304 Added:
305 Added: Clarification:
306 Added: - This concerns editing a previously logged workout on mobile.
307 Added: - The user must be able to select and switch the exercise correctly.
308 Added:
309 Added: * DONE Use one desktop-to-mobile breakpoint :feat:ui:
310 Added:
175 311 Desktop has top navigation. Mobile has an identical bottom navigation.
176 312
177 Removed: ** DONE Use three always-available navigation actions
313 Added: * DONE Use three always-available navigation actions :feat:ui:
178 314
179 315 Use `Home`, `Routine` when the user is not logging (changing to `Current Workout` while logging), and `<username>` for the workout log. Keep all three actions available in both modes.
180 316
181 Removed: ** DONE Simplify the top bar brand
317 Added: * DONE Simplify the top bar brand :refactor:ui:
182 318
183 319 Replace the top bar brand with `hito` in Work Sans, without a subtitle.
184 320
185 Removed: ** DONE Remove the mobile hamburger menu
321 Added: * DONE Remove the mobile hamburger menu :refactor:ui:trivial:
186 322
187 323 Do not show a hamburger menu on mobile.
188 324
189 Removed: ** DONE Increase the masthead brand size
325 Added: * DONE Increase the masthead brand size :feat:ui:trivial:
190 326
191 327 Make the masthead brand name appear much larger.
192 328
193 Removed: ** DONE Hide sign-out on mobile
329 Added: * DONE Hide sign-out on mobile :feat:ui:trivial:
194 330
195 331 Do not show the sign-out button on mobile.
196 332
197 Removed: ** DONE Remove thick black bars from mobile bottom navigation
333 Added: * DONE Remove thick black bars from mobile bottom navigation :refactor:ui:trivial:
198 334
199 335 Remove the thick black bars visible in the mobile bottom navigation.
200 336
201 Removed: ** DONE Fix active bottom-navigation state for current workout and logbook
337 Added: * DONE Fix active bottom-navigation state for current workout and logbook :fix:ui:
202 338
203 339 When a current workout is open, selecting the logbook tab marks both Current Workout and Logbook as active in the bottom navigation. Ensure only the selected page is highlighted.
204 340
205 Removed: ** DONE Increase bottom-navigation button text size
341 Added: * DONE Increase bottom-navigation button text size :feat:ui:trivial:
206 342
207 343 Increase the bottom-navigation button text font size to better support WCAG-aligned readability.
208 344
209 Removed: ** DONE Animate page transitions
345 Added: * DONE Animate page transitions :feat:ui:
210 346
211 347 Animate page transitions between Home, Current Workout, and Logbook.
212 348
213 Removed: ** DONE Standardize Logbook navigation and add a mobile profile button
349 Added: * DONE Standardize Logbook navigation and add a mobile profile button :refactor:ui:
214 350
215 351 Always label the logbook tab `Logbook`. Add a dedicated profile button for the user name in the mobile top navigation bar.
216 352
217 Removed: ** DONE Return the middle navigation tab to Routine after cancellation
353 Added: * DONE Return the middle navigation tab to Routine after cancellation :feat:ui:
218 354
219 355 After cancelling workout logging, change the middle navigation tab from Current Workout back to Routine.
220 356 - result :: model=kiro-cli commit=ea1f211 tests=pass
221 357
222 Removed: * Workout logging
358 Added: * DONE Add placeholders to load and reps fields :feat:ui:trivial:
223 359
224 Removed: ** DONE Add placeholders to load and reps fields
225 Removed:
226 360 Add placeholder values to the load and reps fields on the workout logging page.
227 361
228 Removed: ** DONE Remove the redundant fieldset legend
362 Added: * DONE Remove the redundant fieldset legend :refactor:ui:trivial:
229 363
230 364 Remove the redundant fieldset legend from workout logging.
231 365
232 Removed: ** DONE Show an in-progress workout card on Home
366 Added: * DONE Show an in-progress workout card on Home :feat:ui:
233 367
234 368 When the user is logging a current workout, show a Home card that indicates the workout is in progress and links to the Current Workout tab.
235 369
236 Removed: ** DONE Make workout cancellation unconditional
370 Added: * DONE Make workout cancellation unconditional :feat:app:
237 371
238 372 When cancelling a workout, always leave the current workout view without showing an invalid-form response. Save the workout log as-is for later editing, then redirect the user to Home.
239 373
240 Removed: ** DONE Add a sticky workout timer bar
374 Added: * DONE Add a sticky workout timer bar :feat:ui:
241 375
242 376 When logging a workout, show a sticky bar at the top of the screen with a workout timer.
243 377
244 Removed: ** DONE Replace the exercise button group with a dropdown
378 Added: * DONE Replace the exercise button group with a dropdown :refactor:ui:
245 379
246 380 Use a dropdown menu to select the exercise instead of the exercise button group.
247 381
248 Removed: ** DONE Remove the boulder top border from exercise logging cards
382 Added: * DONE Remove the boulder top border from exercise logging cards :refactor:ui:trivial:
249 383
250 384 Do not show a boulder top fieldset border on the exercise logging fieldset card.
251 385
252 Removed: ** DONE Confirm workout cancellation in a modal
386 Added: * DONE Confirm workout cancellation in a modal :feat:ui:
253 387
254 388 Show a modal menu that confirms workout logging cancellation before cancelling.
255 389
256 Removed: ** DONE Make workout logging fields compact on mobile
390 Added: * DONE Make workout logging fields compact on mobile :feat:ui:
257 391
258 392 Use a grid layout so the exercise name, load input, and reps input appear on one row on mobile.
259 393
260 Removed: ** DONE Preserve and navigate after modal workout cancellation
394 Added: * DONE Preserve and navigate after modal workout cancellation :feat:ui:
261 395
262 396 When cancellation is confirmed, return the Current Workout tab to the Routine tab, save the workout as a partial logbook entry, and keep it editable later.
263 397
264 Removed: ** DONE Use shared load and reps column headings
398 Added: * DONE Use shared load and reps column headings :feat:web:
265 399
266 400 In exercise logging fieldsets, show Load and Reps as column headings instead of repeating them above every input in a multi-exercise group.
267 401
268 Removed: ** DONE Hide exercise-selector submit buttons in SPA mode
402 Added: * DONE Hide exercise-selector submit buttons in SPA mode :feat:ui:trivial:
269 403
270 404 When JavaScript progressive enhancement is active, do not show the submit button for exercise selection.
271 405
272 Removed: ** DONE Fix workout cancellation persistence
406 Added: * DONE Fix workout cancellation persistence :fix:app:
273 407
274 408 Cancelling workout logging currently redirects without actually cancelling the workout. Make the cancellation operation take effect.
275 409 - result :: model=kiro-cli commit=5aaa11f tests=pass
276 410
277 Removed: ** DONE Make the entire logging fieldset a responsive grid
411 Added: * DONE Make the entire logging fieldset a responsive grid :feat:ui:
278 412
279 413 Use one responsive grid for the entire workout logging fieldset instead of separate exercise-field layouts.
280 414 - result :: model=kiro-cli commit=6b62f25 tests=pass
281 415
282 Removed: ** DONE Update the workout elapsed timer live
416 Added: * DONE Update the workout elapsed timer live :feat:ui:
283 417
284 418 Ensure the elapsed duration timer in the Current Workout view updates continuously while logging.
285 419 - result :: model=kiro-cli commit=f9cfb69 tests=pass
286 420
287 Removed: ** DONE Fix the workout cancel button
421 Added: * DONE Fix the workout cancel button :fix:app:
288 422
289 423 [2026-09-05 Sat 17:23]
290 424 Fix the workout cancel button bug. We are cancelling a workout does not properly cancel the workout and redirect to the home page
291 425
292 Removed: ** DONE Hide the exercise choice label
426 Added: * DONE Hide the exercise choice label :feat:ui:trivial:
293 427
294 428 [2026-09-05 Sat 17:26]
295 429 Make the exercise choice label invisible in the current workout logging page
296 430
297 Removed: ** DONE Remove spurious Page updated mention
298 Removed: CLOSED: [2026-09-05 Sat 21:57] SCHEDULED: [2026-09-05 Sat 21:25]
431 Added: * DONE Replace history with a logbook endpoint :refactor:app:
299 432
300 Removed: Spurious "Page updated" mention in workout logging screen
301 Removed:
302 Removed: - result :: model=kiro-cli commit=dab53ca tests=pass
303 Removed: ** DONE Fix workout log exercise selection
304 Removed: CLOSED: [2026-09-05 Sat 22:02] SCHEDULED: [2026-09-05 Sat 21:24]
305 Removed: :PROPERTIES:
306 Removed: :ID: 45453231-7ac9-444c-96c2-af387a34bb0c
307 Removed: :END:
308 Removed:
309 Removed: - result :: model=kiro-cli commit=61bf45c tests=pass
310 Removed: Broken workout log editing: exercise selection button.
311 Removed:
312 Removed: Clarification:
313 Removed: - This concerns editing a previously logged workout on mobile.
314 Removed: - The user must be able to select and switch the exercise correctly.
315 Removed:
316 Removed: ** DONE Confirm workout override with a modal
317 Removed: CLOSED: [2026-09-05 Sat 22:23] SCHEDULED: [2026-09-05 Sat 21:25]
318 Removed: :PROPERTIES:
319 Removed: :ID: b9d05a7f-c8f9-4fb6-878f-a9d1f89ed45d
320 Removed: :END:
321 Removed:
322 Removed: - result :: model=kiro-cli commit=7c9f701 tests=pass
323 Removed: Implement a modal confirmation when beginning a workout under override
324 Removed:
325 Removed: Clarification:
326 Removed: - The override condition is training before full rest has completed.
327 Removed: - Show a confirmation modal menu before starting the workout.
328 Removed:
329 Removed: ** DONE Show early workout notice as a toast
330 Removed: CLOSED: [2026-09-05 Sat 22:26] SCHEDULED: [2026-09-05 Sat 21:25]
331 Removed: :PROPERTIES:
332 Removed: :ID: 8052f6e1-7281-4a57-a615-504476ca6c16
333 Removed: :END:
334 Removed:
335 Removed: - result :: model=kiro-cli commit=9702a02 tests=pass
336 Removed: "begin before recovery finished" should be a toast message rather than a component in the main content.
337 Removed:
338 Removed: Clarification:
339 Removed: - The toast is informational only because the modal already confirms the override.
340 Removed: - Display it for 3 seconds, or for the duration recommended by WCAG.
341 Removed:
342 Removed: * Logbook and feedback
343 Removed:
344 Removed: ** DONE Replace history with a logbook endpoint
345 Removed:
346 433 Replace the history endpoint with a logbook endpoint that shows all recorded evidence for the user.
347 434
348 Removed: ** DONE Allow spontaneous logbook feedback
435 Added: * DONE Allow spontaneous logbook feedback :feat:web:
349 436
350 437 Allow users to submit subjective feedback at any time from the Logbook. Suggest this feedback flow at the end of each workout, while keeping it available independently.
351 438
352 Removed: ** DONE Gate logbook feedback form behind a button
439 Added: * DONE Gate logbook feedback form behind a button :feat:app:
353 440
354 441 The feedback form under the logbook tab should be accessed via a dedicated button not displayed outright in the logbook page
355 442 - result :: model=kiro-cli commit=6cc9062 tests=pass
356 443
357 Removed: ** DONE Add authenticated app feedback
444 Added: * DONE Add authenticated app feedback :feat:app:
358 445
359 446 [2026-09-05 Sat 17:45]
360 447 Next to the profile button in the top header, add an app feedback button which will insert app-specific feedback written by the user to an appropriate SQLite table on the server. On the user app feedback screen, the user should be able to type freeform feedback on the application in one tab and in a second tab view the list of feedback submitted
361 448
362 Removed: * Routine display
449 Added: * DONE Add animations to routine accordions :feat:ui:
363 450
364 Removed: ** DONE Add animations to routine accordions
365 Removed:
366 451 Add animations to the routine accordions.
367 452
368 Removed: ** DONE Style workout accordions with CSS
453 Added: * DONE Style workout accordions with CSS :feat:ui:
369 454
370 455 Style the workout accordions with CSS.
371 456
372 Removed: ** DONE Replace routine accordions with an HTML table
457 Added: * DONE Replace routine accordions with an HTML table :refactor:ui:
373 458
374 459 Replace the routine accordion interface with a basic HTML table.
375 460 - result :: model=kiro-cli commit=4e4acac tests=pass
376 461
377 Removed: * Styling and theme
462 Added: * DONE Remove all doctrine-note elements :refactor:web:trivial:doctrine:
378 463
379 Removed: ** DONE Remove all doctrine-note elements
464 Added: * DONE Use brass for secondary buttons :feat:ui:
380 465
381 Removed: ** DONE Use brass for secondary buttons
382 Removed:
383 466 Use a secondary brass color for secondary buttons.
384 467
385 Removed: ** DONE Style exercise names as headings
468 Added: * DONE Style exercise names as headings :feat:ui:
386 469
387 470 In the exercise fieldset, style the exercise name as a black Work Sans heading.
388 471
389 Removed: ** DONE Limit Courier Prime Mono usage
472 Added: * DONE Limit Courier Prime Mono usage :feat:web:
390 473
391 474 Use Courier Prime Mono only for numerical inputs and outputs, and eventually for tabular data.
392 475
393 Removed: ** DONE Harmonize UI corner radii
476 Added: * DONE Harmonize UI corner radii :refactor:ui:
394 477
395 478 Use uniformly rounded corners for all buttons, cards, and other UI elements.
396 479
397 Removed: ** DONE Harmonize keyboard-focus halo styling
480 Added: * DONE Harmonize keyboard-focus halo styling :refactor:ui:
398 481
399 482 Change the WCAG keyboard-navigation focus halo color so it follows the general UI theme and is less visually obtrusive.
400 483
401 Removed: ** DONE Style the cancellation modal to match the UI
484 Added: * DONE Style the cancellation modal to match the UI :feat:ui:
402 485
403 486 Style the modal cancellation menu so it matches the overall UI aesthetic.
404 487
405 Removed: ** DONE Style form dropdowns to match the UI
488 Added: * DONE Style form dropdowns to match the UI :feat:ui:
406 489
407 490 Style form dropdown menus so they match the overall UI aesthetic.
408 491
409 Removed: * Account and profile
492 Added: * DONE Add a dedicated profile page :feat:ui:
410 493
411 Removed: ** DONE Add a dedicated profile page
412 Removed:
413 494 Make the top-bar profile button open a dedicated profile page instead of the Logbook. Allow users to change their username and update their password.
414 495 - result :: model=kiro-cli commit=430a6ea tests=pass
415 496
416 Removed: * Errors
417 497
418 Removed: ** DONE Add custom error pages
419 Removed: CLOSED: [2026-09-05 Sat 22:20] SCHEDULED: [2026-09-05 Sat 21:25]
420 Removed: :PROPERTIES:
421 Removed: :ID: 965d5284-a593-43ca-b8e4-202b093e6502
422 Removed: :END:
423 Removed:
424 Removed: - result :: model=kiro-cli commit=34ab578 tests=pass
425 Removed: Need custom 404 etc. pages
426 Removed:
427 Removed: Clarification:
428 Removed: - Add the most common 400 and 500 error pages.
429 Removed: - Do not expose specific information from the server.
430 Removed: - Keep the desktop top navigation affordance.
431 Removed: - Keep the mobile bottom navigation affordance.
432 Removed:
433 Removed: * Miscellaneous
434 Removed:
435 498 # Local Variables:
436 499 # org-log-done: time
437 500 # End:
438 Removed: ** DONE Capture each prompt as its own request
439 Removed: CLOSED: [2026-09-05 Sat 22:01] SCHEDULED: [2026-09-05 Sat 21:31]
440 Removed: :PROPERTIES:
441 Removed: :ID: cfdca5b4-80d3-448f-bf54-a365dd36a578
442 Removed: :END:
443 Removed:
444 Removed: - result :: model=kiro-cli commit=d5553a2 tests=pass
445 Removed: Edit the stream-of-thought SKILL so each individual prompt in a session becomes its own feature request, not the whole session as one request.