v0.4.0
🚀 Release @addon-core/inject-script v0.4.0 (2026-08-24)
💥 Breaking Changes
- replace flat tabId/frameId/documentId options with a
required nested target. Rename timeFallback to timeoutMs and make run()
resolve to InjectScriptResult[]. options() now accepts execution options
only. Callback arguments and results must be JSON-compatible, unsupported
capabilities throw typed package errors, and file arrays must be non-empty.
✨ Features
-
redesign the cross-manifest injection contract (938cf0d)
- require one explicit and mutually exclusive target
- normalize MV2 and MV3 execution into per-frame outcomes
- enforce JSON-compatible callback arguments and results
- expose typed delivery, validation, and timeout errors
- add runtime and compile-time contract coverage
- update @addon-core/browser and remove nanoid
🐛 Bug Fixed
- release: update
.release-it.cjswith public access and registry URL (34d7ddc)
📝 Documentation
-
refresh contribution and security guidance (9fe5645)
-
rewrite package documentation for the new API (4280e5c)
🤖 CI
-
release: keep breaking releases minor before 1.0 (750096c)
-
release: update workflows, package config, and .gitignore for npm improvements (010304d)
🧹 Chores
-
tooling: align local quality gates with CI (cca919f)
-
update configurations and scripts for consistency and accuracy (fd3f230)
- Remove
.prettierignoreas Biome replaces Prettier for linting and formatting. - Update
.mailmapwith enhanced contributor tracking fields. - Add emoji to
testin.release-it.cjsconfiguration for consistency. - Modify
testscript inpackage.jsonto include--bailand handle no tests gracefully. - Remove unused
test:relatedscript frompackage.json.
- Remove
🙌 Contributors
- Anjey Tsibylskij (@atldays) — 8 commits
- Addon Bone — 1 commits