[OCaml] High Intensity Training Online
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.
REQUESTS.org
@@ -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.