Repository navigation
v1.2.0 — Structured shopping tools and list-name selection
v1.2.0 — Structured shopping tools and list-name selection
This release resolves all five shopping-tool issues (#1–#5) together.
- Read lists safely (#1):
get_listacceptsformat: "json"andinclude_recent: false. JSON separates open items (purchase) from history (recently) and matches the list resource. Default text output still includes both sections. - Use list names (#2):
get_list,add_item,remove_item,complete_itemandbatch_updateaccept exactlist_nameas an alternative tolist_uuid. UUID takes precedence. Unknown names report available lists; ambiguous names require a UUID. - Track item changes (#3): single-item writes return readable text plus JSON metadata in a second text block and MCP
structuredContent. Responses includeitem_uuid;add_itemdistinguishescreatedfromupdatedbased on open-list membership before the write. Re-adding a recent item iscreated. - Show names on first read (#4): list names load lazily on a cache miss; cached names avoid an extra discovery request.
- Preserve dated attributes: item attributes with validity dates serialize as ISO 8601 strings in both tool JSON and resource JSON.
- Clarify operations (#5): tool descriptions and README consistently describe add/update, complete-to-Recently-Purchased and permanent removal.
Compatibility and operational details
Existing UUID selectors and item-name aliases remain supported. add_item retains legacy uuid, with item_uuid taking precedence. Default list text stays readable; mutation responses gain an additional JSON block.
Single-item writes now read the current list once to resolve UUIDs and determine status. Name matching uses exact localized display names from get_list; use item_uuid for another language or spelling. Ambiguous name-only writes fail with guidance to supply item_uuid; removing an unknown name fails rather than claiming a removal. Newly added/completed items receive a UUID. Status reflects the pre-write snapshot and is not atomic with simultaneous edits from other clients.
Standalone downloads continue to target macOS arm64/x86_64, Windows x86_64 and Linux x86_64. Each release target must pass source tests and an MCP smoke test before publication.
Validation
- 66 unit, protocol and packaging tests; CI on Python 3.11, 3.12 and 3.13.
- Two independent code reviews; the second identified a dated-attribute JSON issue that was fixed and independently rechecked.
- Standalone source tests and extracted-archive MCP smoke tests on all four release targets.
- Bring service calls are mocked; live account access was not exercised. CodeRabbit CLI was unavailable.
Implemented in PR #6. Issues #1, #2, #3, #4 and #5 are closed.