Skip to content

v0.14.0

Choose a tag to compare

@tomtom87 tomtom87 released this 30 Sep 17:36
· 133 commits to main since this release

Portage keeps a local product catalogue: a SQLite index you can fill by crawling a store's public catalogue and search offline, with results agents can show as product cards.

  • portage-cli 0.11.0.
    • SQLite index. The local index is now ~/.portage/index/index.sqlite3 (mode 0600, WAL, FTS5), replacing stores.json and products.json. Those are imported once on first open and kept as *.json.migrated. portage doctor reports the database path, row counts and FTS5. Adds a sqlite3 ~> 2.9 dependency, which ships precompiled for macOS and Linux.
    • Storefront crawl. portage index add URL --crawl and portage index build --sources storefront_products read a Shopify store's public /products.json into the index. The crawl honours robots.txt, pauses between pages, backs off on 429, stops at a page cap, and never requests hand-off-only hosts. It never stores price or stock. portage check suggests the command but never crawls itself.
    • portage index search QUERY [--category ID] [--store HOST] [--limit N] [--json]. Ranked FTS5 search over the index. Hits are marked live: false, so re-fetch before quoting a price. index show --products now pages its output.
    • Product cards. find and shopify_catalog offers carry the store's UCP product wire hash next to the flat fields, which are unchanged. index search hits carry the price-free subset.
    • Category classifier. known-stores/categories.yml is generated by script/categories from Google's full product taxonomy (edition 2021-09-21), with a shipped stoplist and a few synonyms. Matches are ranked by repetition and rarity, and at most 3 ids come back. A 100-case golden set goes from 12% to 70% top-1 accuracy. Crawl a store again to re-classify what is already indexed.
    • Keeps portage-ucp ~> 0.11.
  • buy plugin 0.9.0.
    • Adds a section on showing offers as product cards and on treating index hits as seeds, never as a current price.
    • The skill frontmatter carries OpenClaw metadata (requires.bins: [portage], optional env vars, a brew install spec) and a version that a spec keeps equal to plugin.json.
    • The minimum portage-cli stays 0.9.0.
  • OpenClaw and Omarchy.
    • README gets an OpenClaw badge, plus install steps from ClawHub (openclaw skills install @tomtom87/portage-buy, the listing goes live with this release) or by copying the skill.
    • The Omarchy steps now use omarchy-mise-install gem:portage-cli portage, note the make a stock install needs, and list the skill directories.

No other gem changed. The docs-only notes in portage-ucp-client and portage-ucp-webmcp stay unreleased.