Repository navigation
Prepare the first (alpha) release: docs, screenshots, release zip - #235
Merged
Sebastian Hölscher (HoelShare) merged 4 commits intoOct 9, 2026
Merged
Conversation
The Plugin Zip workflow now also runs on `release: published`. A release build is stamped with the tag's version (`v0.1.0` -> `0.1.0`) and a separate job, the only one holding `contents: write`, attaches it to the release as MerchantQuoteAgentPlugin.zip, the file the README links to. The tag must be plain MAJOR.MINOR.PATCH and the workflow refuses anything else: a shop's `minimum-stability: stable` cannot resolve `0.1.0-alpha1` with a bare `composer require`, and Shopware's VersionSanitizer turns `0.1.0-alpha.1` into `0.1.0-alpha`, so the admin upload's own require matches nothing. Builds of main move from `1.0.<run>+<sha>` to `<latest tag's major.minor>.<run>+<sha>` (`0.0.<run>` until the first tag), so a main build sorts above the release it follows and below the next one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every guide was checked claim by claim against src/ before the first (alpha) release. The notable corrections: - The settings live under Extensions -> My extensions -> Quote Agent -> Configure. "Settings -> Extensions -> Merchant Quote Agent" never existed, and the extension is listed as "Quote Agent". - Agentic Commerce 1.3 and 1.4 are released. The SDK floor (>=0.0.6) pairs this plugin with AC 1.3 or newer; 1.2 fails the container build. - The quote value ceiling is one admin number in the quote's currency, not one per currency; volume asks are answered, not escalated; the editor role beside viewer and deleter; the strategy assignment ladder; the seeded escalation flow; the export and forget commands. - Install now downloads MerchantQuoteAgentPlugin.zip from the latest GitHub release. The README carries an alpha notice that links there. New: which AI providers work (Chat Completions with structured outputs; Claude and Gemini through OpenRouter, Azure only via /openai/v1), and configuration from the environment (MQA_LLM_API_KEY, plus Shopware's static system config with %env()% for the base URL and model, verified on the local shop). Setup screenshots in docs/images/, taken from the local test shop with example values typed in and never saved. docs/ is excluded from the zip. config.xml: Draft Mode's help text names the menu entry as it is now labelled (Orders > Quote Agent Dashboard), and the base URL help names the OpenRouter and Azure addresses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
First release, so nobody upgrades from anything: the "Custom strategy" migration note, the "after this measure shipped" caveat, the per-line original-prices exception and the "same key as before" note are gone. Workers are framed as what most production shops already run, with the one real trap named: the admin worker only runs while the Administration is open. The install docs now say why a developer may be needed: the zip carries no libraries, so the upload runs Composer in the web request, which a host may forbid, and in a repository-deployed shop the next deployment removes an upload. The `rm -f config/packages/ai_generic_platform.yaml` step is removed from the README, end-to-end §9 and the workflow summary. It guarded against the Generic bridge's Flex recipe, and the plugin has not depended on that bridge since ffb2d9c; composer.lock no longer contains it. The dashboard list opens on "Needs review"; the record section and the "agent seems to do nothing" checklist now say so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- end-to-end §9: drop the paragraph about a dependency the plugin does not use. Nobody reading it knew that dependency existed. - for-merchants: no "most shops will not want it" or "probably not". The Agentic Commerce section now says what the extension adds and leaves the decision to the merchant. - end-to-end §1: the class_exists() pitfall is described as a pitfall, not as history. - The plugin class docblock loses the matching Flex sentence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sebastian Hölscher (HoelShare)
deleted the
claude/alpha-release-prep-6388fd
branch
October 9, 2026 11:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Gets the repo ready for the first GitHub release,
v0.1.0(alpha).Release zip (
plugin-zip.yml)MerchantQuoteAgentPlugin.zip. The upload runs in a separate job, the only one withcontents: write.MAJOR.MINOR.PATCH, and the workflow fails on anything else:-alpha1, a barecomposer requirefails onminimum-stability: stableshops.-alpha.1, Shopware shortens the version to-alpha, so the admin upload's owncomposer requirematches nothing.<latest tag's major.minor>.<run>+<sha>(0.0.<run>until the first tag), so they stay above the release they follow.Docs
src/:/releases/latest. The Actions artifact is kept as the way to get an unreleasedmainbuild.MQA_LLM_API_KEY, plus Shopware's static system config with%env()%, checked on the local shop.rm -f config/packages/ai_generic_platform.yamlis gone from the README, end-to-end §9 and the workflow summary. It guarded against the Generic bridge's Flex recipe, and the plugin dropped that dependency in ffb2d9c (it's not incomposer.lock).docs/images/from the local test shop. Example values were typed in and never saved, the API key field is empty, anddocs/is not in the zip.config.xml: help text only. Draft Mode names the current menu label; the base URL help names the OpenRouter and Azure addresses.
After merge: creating the release
v0.1.0and title it "0.1.0 (alpha)"./releases/latest, which the README links to, skips pre-releases.Test shops on a
1.0.xmain build must reinstall: Shopware sees 0.1.0 as older.Not in this PR (found during the audit)
quote.spec.htmltells agents to readconfig.endpointfrom the capability descriptor, which the code never publishes. It also promises 501 where the route is simply absent (404).tests/Unit/ReleaseCapabilityMatrixTest.php:25hardcodes a personal path, so that test always skips for others./openai/v1with structured outputs. OpenRouter is the only provider used on the test shops.Test plan
composer run qualitypassescomposer run test: 1923 tests passv0.1.0and0.1.0are accepted,-alpha1and-alpha.1are rejected, and a main build without a tag becomes0.0.<run>%env()%inshopware.system_configresolves on the local 6.7.13 shop (probe key, removed afterwards)MerchantQuoteAgentPlugin.zip🤖 Generated with Claude Code