Files
chore/specs/archive/bugs-1.0.6-02/bugs-1.0.6-set02.md
T
ryan 7f0326eff1
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 4m51s
feat: add child actions menu and achievements feature design
- Introduced a new feature specification for displaying a menu with actions (Award Certificate, Award Badge) when a child's card is clicked in ParentView.
- Created a detailed plan for an achievements system, outlining phases for implementation, including achievement taxonomy, MVP set, and UX considerations.
- Added a template for future feature specifications to standardize documentation.
2026-07-12 18:52:59 -04:00

2.2 KiB

Bug List for 1.0.6 Set 2

On mobile, the COMPLETED (and possible other banners) overflow it's bounding box

  • Fixed

alt text

We need the banner text to be a little smaller on mobile screens so it does not go outside the dark border box.

Fix: Added @media (max-width: 480px) CSS rule for .chore-stamp in both ChildView.vue and ParentView.vue. Reduces font-size to 0.82rem, letter-spacing to 1px, and padding to 0.3rem 0 on small screens.

Extending time on a chore that is too late causes task icons to disappear.

  • Fixed

When the user extends time on a chore that is TOO LATE, I think 2 identical calls are being made to the api /child/[id]/list-tasks. This is causing a condition where images no longer appear until the user refreshes.

Could SSE calls be causing this? Could also be a childChoreListRef.value?.refresh() is called in the UI too many times too quickly.

Root Cause: Two issues combined:

  1. doExtendTime in ParentView called childChoreListRef.value?.refresh() directly AND the SSE chore_time_extended event handler also called refresh(), causing two concurrent fetches.
  2. ScrollingList.fetchItems() had no protection against concurrent calls. When two fetches raced, items.value was set before images were resolved, and the second call's loading.value = false didn't trigger a re-render (already false), leaving images from the second fetch invisible.

Fix:

  • Removed the manual refresh() call from doExtendTime in ParentView — the SSE event handler already handles it.
  • Added a fetch generation counter to ScrollingList.fetchItems() that discards stale results from superseded fetches.
  • After image resolution, items.value is re-assigned ([...itemList]) to trigger Vue reactivity for image URLs set on raw objects.

When adding a schedule to a task and submitting, icons dissappear.

  • Fixed

This is related to the previous bug. API calls to /child[id]/list-tasks are called very quickly causing a problem.

Fix: The ScrollingList generation counter fix (described above) resolves this for all callers. Any concurrent refresh() calls — whether from SSE events, manual triggers, or timer-based refreshes — are now safely handled.