You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/acceptance/tasks.md
-91Lines changed: 0 additions & 91 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,9 +12,6 @@ Use this guide to validate:
12
12
- deleting tasks and undoing deletions
13
13
- reordering tasks by drag and drop
14
14
- moving tasks to adjacent days
15
-
- Now mode — locking in on a single task
16
-
- navigating and completing tasks in Now mode
17
-
- editing a task description in Now mode
18
15
19
16
Do not use this guide to validate:
20
17
@@ -218,90 +215,6 @@ Pressing Ctrl+Meta+ArrowLeft moves the focused task to the previous calendar dat
218
215
219
216
---
220
217
221
-
## Scenario 10: Use Now Mode — Lock In On A Task
222
-
223
-
### UX
224
-
225
-
Now mode (`/now`) shows all of today's incomplete tasks. Selecting one locks the view to that single task, removing other distractions.
226
-
227
-
### Steps
228
-
229
-
1. Create at least two incomplete tasks for today.
230
-
2. Press `N` to navigate to `/now`.
231
-
3. Select a task from the available task list.
232
-
233
-
### Expected Results
234
-
235
-
- Now mode opens and displays all incomplete tasks for today.
236
-
- After selecting a task, the view focuses on that single task with a large title display.
237
-
- The other tasks are hidden from view.
238
-
239
-
---
240
-
241
-
## Scenario 11: Navigate Tasks In Now Mode (J/K)
242
-
243
-
### UX
244
-
245
-
In Now mode with a task focused, pressing `J` and `K` cycles through the available incomplete tasks without leaving the view.
246
-
247
-
### Steps
248
-
249
-
1. Enter Now mode with at least three incomplete tasks (see Scenario 10).
250
-
2. Select a task to focus it.
251
-
3. Press `K` to move to the next task.
252
-
4. Press `J` to move to the previous task.
253
-
254
-
### Expected Results
255
-
256
-
-`K` advances to the next incomplete task (wrapping around at the end).
257
-
-`J` goes back to the previous incomplete task (wrapping around at the start).
258
-
- The currently focused task is displayed prominently.
259
-
260
-
---
261
-
262
-
## Scenario 12: Complete A Task In Now Mode And Advance To Next
263
-
264
-
### UX
265
-
266
-
Pressing Enter in Now mode marks the focused task complete and automatically moves to the next incomplete task. When all tasks are done, a completion state is shown.
267
-
268
-
### Steps
269
-
270
-
1. Enter Now mode with exactly two incomplete tasks.
271
-
2. Select the first task.
272
-
3. Press Enter to mark it complete.
273
-
4. Press Enter again to mark the second task complete.
274
-
275
-
### Expected Results
276
-
277
-
- After the first Enter, the view advances to the second task automatically.
278
-
- After the second Enter, the "No tasks available" or all-done state is shown.
279
-
- Both tasks appear as completed in Day view.
280
-
281
-
---
282
-
283
-
## Scenario 13: Edit A Task Description In Now Mode
284
-
285
-
### UX
286
-
287
-
Pressing `E` while a task is focused in Now mode opens an inline description editor (max 255 characters). Pressing Cmd+Enter (Mac) or Ctrl+Enter (Windows/Linux) saves the description.
288
-
289
-
### Steps
290
-
291
-
1. Enter Now mode and select a task.
292
-
2. Press `E`.
293
-
3. Type a description (keep it under 255 characters).
294
-
4. Press Cmd+Enter (Mac) or Ctrl+Enter (Windows/Linux) to save.
295
-
296
-
### Expected Results
297
-
298
-
- An inline editor appears for the description.
299
-
- After saving, the description is displayed below the task title.
300
-
- The description persists after leaving and re-entering Now mode.
301
-
- Characters beyond 255 are not accepted.
302
-
303
-
---
304
-
305
218
## Focused Regression Checks
306
219
307
220
If time is limited, run these checks before shipping task-related changes:
@@ -313,7 +226,3 @@ If time is limited, run these checks before shipping task-related changes:
313
226
5. Cmd+Z / Ctrl+Z restores the deleted task with its original properties.
314
227
6. Drag-and-drop reordering persists after a page reload.
315
228
7. Ctrl+Meta+ArrowRight moves a task to the next day; Ctrl+Meta+ArrowLeft to the previous day.
316
-
8. Now mode shows all incomplete tasks for today and locks focus to a selected task.
317
-
9. J/K navigate between tasks in Now mode without leaving the view.
318
-
10. Enter in Now mode marks the task complete and auto-advances.
319
-
11. D opens the description editor; Cmd+Enter / Ctrl+Enter saves; max 255 characters is enforced.
- sidebar state is responsive-first: `useSidebarState` sets open/closed from `window.innerWidth >= 1280` (`xl`) and subscribes to `matchMedia("(min-width: 1280px)")`
182
-
- breakpoint transitions are authoritative: crossing the `xl` boundary re-syncs the sidebar state even if the user manually toggled it earlier
183
-
- users can toggle via:
184
-
- Now header sidebar button (`Header` tooltip + `SidebarIcon`)
185
-
-`[` keyboard shortcut in Now view
186
-
- the sidebar is desktop-only in layout (`hidden xl:flex`), so on sub-`xl` widths toggling updates state but the sidebar content remains visually hidden
187
-
-`ShortcutsSidebar` filters out empty sections and returns `null` when no section has shortcuts
188
-
189
-
Animation and visibility contract:
190
-
191
-
- opening uses `requestAnimationFrame` to set visible state so entry transition classes apply (`translate-x-0 opacity-100`)
192
-
- closing sets hidden classes (`-translate-x-4 opacity-0`) and unmounts when closed/not visible
193
-
194
-
Pitfalls:
195
-
196
-
-`useSidebarState` reads `window` during state initialization and uses `window.matchMedia`; browser-like globals must exist in tests/non-browser runtimes
197
-
- when adding shortcuts sidebar interactions, verify Now view because Day uses the Planner Sidebar instead
198
-
199
170
## State Systems
200
171
201
172
The web app uses multiple state layers:
@@ -350,4 +321,4 @@ Connect-later guardrail:
350
321
- Auth/session issue: read session provider, user provider, router loaders.
0 commit comments