Skip to content

v1.2.0 — Structured shopping tools and list-name selection

Choose a tag to compare

@github-actions github-actions released this 03 Nov 13:23
· 8 commits to main since this release
f8ec45f

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_list accepts format: "json" and include_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_item and batch_update accept exact list_name as an alternative to list_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 include item_uuid; add_item distinguishes created from updated based on open-list membership before the write. Re-adding a recent item is created.
  • 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.

Full changelog