No timestamp metadata in versions. Uses simple incrementing patch
numbers (0.3.3, 0.3.4, etc.). If Mozilla rejects the version as
already existing, auto-increments and retries up to 10 times.
https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
Old approach: increment patch by 1 each time. Failed when the
same patch number was already signed with Mozilla from a
previous session.
New approach: version is 1.MMDD.HHMM (e.g., 1.326.1542).
Guaranteed unique per minute, all parts under 65535.
https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
No more manual version bumps or "version already exists" errors.
sign-firefox.sh now:
1. Reads current version from manifest.firefox.json
2. Increments the patch number (0.3.1 → 0.3.2)
3. Updates all three files (manifest.json, manifest.firefox.json, package.json)
4. Auto-commits the bump
5. Builds and signs
Just run `npm run sign:firefox` after any code change.
https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
Previous sign script failed because web-ext's config file discovery
was conflicting with CLI args. Now:
- Parses .env line by line with explicit key matching
- Prints truncated key/secret so you can verify they loaded
- Uses --no-config-discovery to prevent web-ext-config.cjs from
overriding the CLI args
https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
The previous approach (source .env && npm run sign:firefox) failed
because npm subshells don't inherit env vars consistently, and
quoted values in .env weren't being stripped.
New approach: sign-firefox.sh reads .env itself, strips quotes,
and passes --api-key/--api-secret directly to web-ext sign.
Also renames web-ext-config.js → web-ext-config.cjs to fix the
deprecation warning, and bumps package.json version to 0.2.0.
https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw