v0.5.1
Desktop tag UI layer on top of the v0.5.0 tag backend.
Added
- Tauri tag commands (
perima-desktop):list_tags,attach_tag,
detach_tag,list_files_with_tags. Two-query merge (metadata +
tags_for_hashes) with a WHY comment documenting the WAL race. TagPayload+FileWithTagsPayloadwire types inpayloads.rs;
FileWithTagsPayloadcomposes (not extends)FileWithMetadataPayload.- TS
Tag/FileWithTagstypes +api.tswrappers (listTags,
attachTag,detachTag,listFilesWithTags) following the existing
fromInvoke/ neverthrow pattern. TagChipcomponent — colored pill with optional remove button.
Color index computed via byte-sum mod 12 (blake3 not available in TS
bundle; intentional deviation from spec; WHY comment explains).TagSidebarcomponent — "All" + per-tag rows with attachment counts
andaria-pressedaccessibility.totalCountprop shows unfiltered
file count next to "All". Active-state count badge usestext-blue-200
for legibility on the blue background.FileTable/FileGridtag rendering — up to 3TagChipinstances
per row/tile with+Noverflow badge.App.tsxclient-side tag filter —selectedTagId: string | null
state;<TagSidebar>shown when tags list is non-empty;visibleFiles
filtersfilesby tag id. WHY comments explain single-select deferral
and 100-row cap effect on displayed counts.