Repository navigation
v0.17.0
This release is mostly a cleanup: dead code removed, duplicated helpers shared, and one less system tool needed. It also fixes two bugs and removes the buy skill's raw-UCP direct-checkout fallback. Removing unused public methods and constants is breaking for anyone who called them, so the gems that lost one get a minor bump. Each removal is marked breaking in that gem's changelog.
- Security: the
buyskill no longer has a direct-checkout fallback. ClawHub's audit of theportage-buyskill 0.10.4 flagged its "No CLI available" section. Withportagemissing, that section had the agent create and pay a store's checkout over raw UCP itself, outside Portage's spending policy, approval and checkout-mismatch checks. Now the skill tells the agent to ask the user to install or upgradeportageand stop.references/raw-ucp.mdis gone. Buying over raw UCP stays in the standaloneshop-via-ucpskill. - portage-cli 0.13.0.
portage browser importno longer needs thesqlite3command-line tool. It reads the copied Chromium, Firefox and Safari history through thesqlite3gem, whichportage-clialready depends on.error: "reader_unavailable"now means a SQLite error reading the copy, or a missingplutilfor Safari bookmarks.- Fix:
payment enrollworks against your own adapter-backed store again. The fallback referenced a class that doesn't exist, and the error was swallowed, so it always reported no session. - Fix:
payment enrollfollows homepage redirects (for example apex towww), up to five, likebuydoes. Every hop stays on thepaymentproxy route. - Breaking: removed the unused
BrowserProfile::Cdp.close_tab, andBrowserImport::Sqlite.newno longer takescommand:. - Keeps
portage-ucp~> 0.11.
- portage-ucp 0.12.0.
- Fix: a trusted JWK whose
xoryisn't valid base64url now gets a 401invalid_signature. It used to raise a rawArgumentError, so the request failed with a 500. - Security hardening:
Content-Digestis compared withOpenSSL.fixed_length_secure_compareinstead of a hand-rolled byte loop. - Breaking: removed
CapabilityNegotiator(nothing called it),Dispatcher#call's ignoredagent_profile:keyword, andSchemaValidator#valid?(useerrors_for(...).empty?). The EC curve constants moved fromSecurity::SignatureandAp2::MandateSignatureto the newSecurity::EcJwk. - The unused
embedded.openrpc.jsonschema no longer ships in the gem.
- Fix: a trusted JWK whose
- Adapter gems, breaking removals only. The removed methods were unused public pass-throughs and client methods. Nothing changed for a store running the adapter.
portage-ucp-shopify0.6.0 andportage-ucp-wix0.2.0:Mapper.money.portage-ucp-bigcommerce0.2.0:Mapper.money,Client#v2_post,Client#v3_put.portage-ucp-magento0.2.0:Mapper.money,Client#admin_post.portage-ucp-woocommerce0.3.0:Client#admin_post,Client#store_delete.portage-ucp-instagram0.2.0: thesite_url:keyword onMapper.product.
- One shared
examples/portage_ucp.rb. It now lives once inportage-ucp/examples/, replacing seven identical copies in the adapter gems. The adapter exes and READMEs link to it. buyplugin and OpenClaw plugin@tomtom87/portage0.10.5. They carry the skill change above. The OpenClaw plugin also gets small internal tidy-ups, with no change in behaviour.
portage-ucp-client, portage-ucp-webmcp and portage-ucp-etsy changed only in docs, comments or internals, so they stay at 0.6.3, 0.2.0 and 0.1.5.