NFC tags: sticker filter, Erase, and rename writes the sticker - #135
Merged
Conversation
Every chore has a tag id in Supabase whether or not a sticker exists, so the only evidence the app has is its own: TagStickerStore records, on this phone, every id it writes to a sticker and every id it reads off one (a chore tap, a tag-alarm tap, a scan to link or identify). Settings > NFC tags gains an All / On a sticker / No sticker chip row over the chores, with counts, and marks rows that are on a sticker. A sticker made elsewhere counts once it is tapped. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016rWgRBgBaGjrH7iWGmUeSv
Settings > NFC tags gains Erase beside Scan on the Identify card. Behind a confirm, the next tag held to the phone has its NDEF message replaced with an empty record, so a read finds nothing and the sticker is ready for a new write; a never-formatted tag counts as already blank. The id it carried is read first and dropped from this phone's sticker record, and the write dialog says "Erase tag" / "Tag erased" for the run. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016rWgRBgBaGjrH7iWGmUeSv
Renaming changed what the memo answered to while the sticker kept the old name, so a tap matched nothing. Save on a renamed tag now reads "Save and write tag" and goes straight into the write dialog, with a note naming the old and new ids; the rename dialog warns up front. The write dialog gains an optional note line for that. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016rWgRBgBaGjrH7iWGmUeSv
mapgie
marked this pull request as ready for review
September 12, 2026 00:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Three related changes to NFC tag maintenance, one per commit.
1. Split chores by whether they are on a sticker. Settings > NFC tags gains a chip row over the Chores list: All · N, On a sticker · N, No sticker · N. Rows that are on a sticker say so in their subtitle. Every chore has a tag id in Supabase whether or not a sticker exists, so the only evidence the app has is its own: it wrote the id to a sticker, or it read the id off one. A sticker made elsewhere counts as soon as it is tapped once.
2. Erase a sticker. Erase beside Scan on the Identify card. Behind a confirm, the next tag held to the phone has its NDEF message replaced with an empty record, so a read finds nothing and it can be written for something else. The chore or tag-alarm it pointed at is untouched. The id it carried is read first and dropped from the sticker record. A never-formatted tag counts as already blank.
3. A renamed tag is written to its sticker on Save. Renaming changed what the memo answered to while the sticker kept the old name, so a tap matched nothing. Save on a renamed tag now reads "Save and write tag" and goes straight into the write dialog, with a note naming the old and new ids; the rename dialog warns up front.
How
TagStickerStore(DataStore, on-device, never synced) maps tag id to the last time this phone met it on a sticker;MainActivityrecords every successful write and every id read off a tag, and forgets an erased one.NfcWriteRequest.Kind.ERASE,NfcHandler.eraseTag/currentTagId;WriteTagDialoggainserasingandnote.TagsUiStategainsstickers,choreFilter,filteredChoreTagsand per-chip counts; tests inTagsUiStateTestpin the split and counts.Changelog
tags-sticker-filter.jsonanderase-tag.json(minor),rename-rewrites-tag.json(patch).🤖 Generated with Claude Code
https://claude.ai/code/session_016rWgRBgBaGjrH7iWGmUeSv