The extension workflow signed v1.0.1 successfully but the commit step failed because AMO renames signed XPIs to use its internal addon-id-safe-string (997017ca3e104e30a75a-1.0.1.xpi), not the gecko ID we set in manifest.json. The original glob fabledcurator-*.xpi never matched.
Fix: glob *.xpi in the artifacts dir (fresh CI runner = one XPI per run), parse version from extension/package.json, and copy under the canonical fabledcurator-${VERSION}.xpi name so the backend's whitelist (backend/app/frontend.py matches fabledcurator-*.xpi) keeps working. Also wipes prior fabledcurator-*.xpi files in the dir so it doesn't accumulate.
Trigger after merge
The workflow's path filter is extension/**, so this .forgejo/workflows/extension.yml change alone won't auto-trigger it. After merging:
Forgejo → Actions → extension → Run workflow on main (the workflow has workflow_dispatch wired).
AMO returns the cached signed XPI for v1.0.1 (no new signing required for the same version).
Commit step now succeeds → XPI lands on main as a side-commit.
Then cut v26.05.25.3 pointing at the post-XPI HEAD.
## Summary
The extension workflow signed v1.0.1 successfully but the commit step failed because AMO renames signed XPIs to use its internal addon-id-safe-string (`997017ca3e104e30a75a-1.0.1.xpi`), not the gecko ID we set in `manifest.json`. The original glob `fabledcurator-*.xpi` never matched.
Fix: glob `*.xpi` in the artifacts dir (fresh CI runner = one XPI per run), parse version from `extension/package.json`, and copy under the canonical `fabledcurator-${VERSION}.xpi` name so the backend's whitelist (`backend/app/frontend.py` matches `fabledcurator-*.xpi`) keeps working. Also wipes prior `fabledcurator-*.xpi` files in the dir so it doesn't accumulate.
## Trigger after merge
The workflow's path filter is `extension/**`, so this `.forgejo/workflows/extension.yml` change alone won't auto-trigger it. After merging:
1. Forgejo → Actions → extension → **Run workflow** on main (the workflow has `workflow_dispatch` wired).
2. AMO returns the cached signed XPI for v1.0.1 (no new signing required for the same version).
3. Commit step now succeeds → XPI lands on main as a side-commit.
4. Then cut `v26.05.25.3` pointing at the post-XPI HEAD.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The extension workflow signed v1.0.1 successfully but the commit step failed because AMO renames signed XPIs to use its internal addon-id-safe-string (
997017ca3e104e30a75a-1.0.1.xpi), not the gecko ID we set inmanifest.json. The original globfabledcurator-*.xpinever matched.Fix: glob
*.xpiin the artifacts dir (fresh CI runner = one XPI per run), parse version fromextension/package.json, and copy under the canonicalfabledcurator-${VERSION}.xpiname so the backend's whitelist (backend/app/frontend.pymatchesfabledcurator-*.xpi) keeps working. Also wipes priorfabledcurator-*.xpifiles in the dir so it doesn't accumulate.Trigger after merge
The workflow's path filter is
extension/**, so this.forgejo/workflows/extension.ymlchange alone won't auto-trigger it. After merging:workflow_dispatchwired).v26.05.25.3pointing at the post-XPI HEAD.🤖 Generated with Claude Code