Amazon removed the ability to archive or hide orders. This restores it: a Hide
button on every order card, a toggle to reveal what you have hidden, and a popup
to unhide. Hidden orders are tracked by the ID in each card's
data-csa-c-slot-id attribute.
Personal-use extension for Firefox and Chrome. Not published to either store.
chrome://extensions → Developer mode → Load unpacked → pick extension/.
Chrome installs from the directory; no packaging step is involved.
Firefox has no "load unpacked" equivalent, and it will not permanently install an add-on that is not signed. There are two routes:
Testing — unsigned, removed when the browser restarts:
about:debugging#/runtime/this-firefox → Load Temporary Add-on → pick
extension/manifest.json.
Permanent — requires signing:
npm run package # builds dist/*.xpi and dist/*-chrome.zip
npm run sign # signs via addons.mozilla.org, needs AMO API credentialsnpm run sign submits to AMO on the unlisted channel, which signs the add-on
for self-distribution without publishing it to the public directory. Get API
credentials at https://addons.mozilla.org/developers/addon/api/key/ and export
them as WEB_EXT_API_KEY and WEB_EXT_API_SECRET.
Do not build the archive by hand. Compressing the
extensionfolder — via Finder's "Compress" orzip -r ext.zip extension— nests every file under anextension/directory, somanifest.jsonis not at the archive root and Firefox rejects it with "appears to be corrupt".npm run packagezips from inside the directory and asserts the layout before it will emit an artifact.
Run npm run lint:ext to check the manifest with Mozilla's own linter.
Hiding works entirely offline. To share the hidden list between browsers and
machines, deploy the Worker in worker/ and enter its URL
and token in the extension's Settings page.
npm test # node --test, no dependencies, no build stepTwo module conventions live side by side:
extension/lib/*.js(exceptrules.js),background/,popup/,options/, andworker/src/are ES modules with named exports.extension/lib/rules.jsuses namespace assignment so it is valid both as a classic content script and as a side-effect ESM import. It must contain noimport/exportstatements.
Currently 0.0.0: written and unit-tested, but never loaded into a browser.
The version stays in 0.x until the manual verification
checklist passes end to end in both Chrome and
Firefox against a real order history page. Passing it is what earns 1.0.0 —
the unit tests cover the pure logic only, and say nothing about whether the
extension works.
package.json and extension/manifest.json carry the same number; bump both.
- Handoff — start here — current state, what is and isn't verified, next steps, and the traps
- Design spec
- Implementation plan