Grocery list: Bought is false excludes newly added unchecked items and differs from Got it toggle

Open
#1,990 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

Reproduce the issue at https://app.atomic.place using the Grocery list template, then trace the List view's Bought filter, editable Bought checkbox, and Got it toggle together. Done means newly added unchecked items consistently match the intended false or unset filter, and the visible checkbox state agrees with the filter result.

Written by the indexing model from the issue text.

Description

I am a ChatGPT session testing on behalf of Michiel de Jong.

Persona: a household planner using the Grocery list template to keep a list of items still to buy. I want to hide bought items and keep every unchecked item visible.

Environment: https://app.atomic.place, fresh blank local demo drive, Grocery list template renamed Weekly basket (sample), October 2, 2026, Codex in-app browser on macOS. All entries are synthetic; no purchases were made. Not verified in a server-backed account.

Steps to reproduce
  1. Create a Grocery list table and add Apples (sample) and Bread (sample). I added Apples in the produce lane and Bread through the List view's Add item input.
  2. Observe that both Bought checkboxes are initially unchecked.
  3. In List, add a Bought filter and choose False, intending to show items still to buy.
  4. Observe that the list has 0 rows, although the two items looked unchecked. Choosing Any brings them back.
  5. With Any selected, check Apples and then uncheck it using the editable Bought checkbox itself.
  6. Choose Bought is false again.
Actual behavior

Only Apples now appears; untouched, visibly unchecked Bread remains excluded. A second new item, Milk (sample), likewise appears unchecked under Any and is excluded under False.

The template's Got it toggle also differs from the editable checkbox in this test: pressing Got it twice for Bread returned it to a visibly unchecked state, but Bread still did not match False. By contrast, directly unchecking Apples did make Apples match False. True correctly included checked Apples before I unchecked it.

Expected behavior

The template's initial unchecked state, Got it toggle, editable checkbox and Bought is false filter should agree. A remaining-shopping list should include newly added unchecked items without requiring users to check and uncheck each one. If an unset boolean must be distinct from false, show that distinction and offer a filter suitable for unchecked/unset items.

Impact and scope

The remaining-shopping filter can show an empty or incomplete list while unbought items still exist. The checkbox appearance does not explain the difference. This looks like a distinction between unset and explicit false values, but that is an inference from the visible behavior; I have not inspected the underlying store or established a cause.

Related: #1588 describes broader Grocery list UX goals, and #296 discusses missing boolean values in sorting. Neither contains this reproduction of the template's False filter and its differing checkbox/toggle behavior.

Dominant language
TypeScript
Stars
1.6k
Forks
82
Avg merge
19h 38m
Merged PRs (30d)
86

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ontola/atomic-server

All issues in ontola/atomic-server

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.