openvibers/openvibe.coupons CHANGELOG.md
CHANGELOG.md
Changelog
Unreleased
llms.txtlists the merchant lookup correctly (SEO-34):GET /api/v1/merchants/resolveneeds?host=, andcanonicalUrldrops a query string unless it is named, so the file advertised a URL that answers 400 to a plain GET. The link is now a worked example (?host=amazon.com) andtest/pages-discovery.test.jssweeps every URL the file lists for a non-error answer and pins the parameter.- The front page is curated (
server/render/home.js): a shop search and the site's numbers beside the hero, then codes reported working, ending soon and new as tickets that show the code itself (the list showed only deal headlines), the shops, the Companion, what every code tells you and six questions (FAQPage, ItemList and WebSite JSON-LD); the page is 1080 px wide. DealNews' feed terms are kept (server/domain/source-policy.js): its codes say "via DealNews" on every page and never reach a browser extension (extension origins and install tokens). Budgets: html 33.7 KB, css 21.8 KB. openvibe-contractsis pinned to v0.97.0 (andopenvibe-sharedto v2.9.0): all six Coupons capabilities are released there, so the local proposed-id fallback inserver/auth/capabilities.jsis gone andcheckCapabilityis the library's check. STATUS.json and the README pins now match package.json;test/capabilities.test.jslocks the released ids, the delegated check and the Coupons-local install scopes.- Every page is rendered through
openvibe-publishing/layout(v1.2.0, onopenvibe-shared/shellv2.6.0): the head, the Frame, the noscript navigation, the footer and its init come from the shared document; robots and the canonical still come from the indexability gate's decision. The shell addsweb-runtime.jsto every page; the home page's JS budget still holds (5 files, 239.1 KB, 56.3 KB brotli), so no budget was raised.