Rebrand to MetaScrub + upstream attribution #95
No reviewers
Labels
No labels
bug
documentation
duplicate
e-copy
e-features
e-mobile
enhancement
f-coverage
f-forensic
f-perf
f-privacy
forensic
good first issue
help wanted
infra
invalid
phase-a
phase-b
phase-c
phase-d
phase-e
phase-f
phase-g
phase-h
priority-1
priority-2
priority-3
privacy
question
v5
v6
video-hardening
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: forgejo_admin/exifcleaner-web#95
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/rebrand-metascrub"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #93 (Phase G). The "ExifCleaner" name no longer reflects what the project does — v5 strips PDF Info dicts, Office docProps, MP4 atoms, and JPEG/PNG markers, not just EXIF. The "wraps ExifTool" framing died in Phase D; Phase G drove the last nail. This PR renames the user-facing surface to MetaScrub and adds prominent attribution to the szTheory/exifcleaner upstream.
What changed
Brand surfaces renamed:
package.json—name,productName,description(dropped the no-longer-controlledexifcleaner.comauthor URL)src/web/index.html— page titlepublic/manifest.webmanifest— PWA name / short_name / description.resources/strings.json— unsupported-RAW copy + zip filename templatesrc/infrastructure/web/batch_output.ts— zip filenameREADME.md,CLAUDE.md,CHANGELOG.md,docs/architecture.md,docs/PRIVACY_GAPS.md,docs/android-apk.md,docs/animation-principles.md,docs/deploying.md)Attribution:
## Creditssection at the bottom of the README walks through the lineage v3.6 → v4 (modernization) → v5 Phase A–G (WASM strategies, web-only, Electron retirement) → MetaScrub.CLAUDE.mdanddocs/architecture.mdhistory note also link to upstream.localStorage migration (no data loss):
metascrub-settings-v1exifcleaner-settings-v1on first launch and copies it forward, then clears the legacy key. Existing PWA users keep their toggles. Covered by 4 new tests intests/renderer/infrastructure/web_api.test.ts.Stale-URL cleanup bundled in:
https://github.com/obuvuyoviz26-lab/exifcleaner-web/issues/Nlinks across docs with bare#Nrefs (Forgejo auto-links these locally; the old GitHub URLs were dead since the May-12 migration).http://localhost:3000/forgejo_admin/exifcleaner-web/issues/48, which is a private dev URL useless to end users.https://exifcleaner.app/comment invite.config.web.ts.Forensic-scanner update:
tools/forensic/{png,office}.tsstray-marker regexes now also catch/metascrub/i. Theexifcleanerpattern is kept alongside so any pre-rebrand fingerprint regression also fails. See the §"Forensic verification" rationale informat-strategy-workflow.md.Deliberately NOT renamed
ExifErrortype,formatExifError,src/domain/exif/, CSS--ec-*tokens. Not user-facing brand surfaces; renaming would be pervasive cosmetic churn.docs/superpowers/specs/*anddocs/superpowers/plans/*: same rationale — historical snapshots of design / planning work.exifcleaner-webin.github/workflows/deploy-web.yml+ the corresponding lines indocs/deploying.md): tied to a live Cloudflare resource. Renaming would orphan the existing deploy URL. Inline comment in deploying.md notes the legacy name + that renaming is a CF-dashboard operation.Verification
yarn lint✓yarn typecheck✓yarn test✓ (318 tests, +4 for the migration shim, all passing)yarn check:deps✓yarn build:web✓yarn build:web:standalone✓Test plan
Rollback
Single PR, squash-merge.
git revert <merge-sha>restores the ExifCleaner brand. localStorage migration is one-way (legacy key is removed after copy), so a revert would leave new users without their settings on the next visit; existing users who never opened the app between PR merge and revert would be unaffected. Low-impact in practice.Renames the project from ExifCleaner to MetaScrub to reflect that coverage has grown well beyond EXIF (PDF Info dicts, Office docProps, MP4 atoms, JPEG/PNG markers). Adds prominent upstream attribution to szTheory/exifcleaner in README + CLAUDE.md + architecture.md. User-facing surfaces renamed: - package.json (name, productName, description) - src/web/index.html title - public/manifest.webmanifest name/short_name/description - .resources/strings.json (unsupported-RAW copy + zip filename template) - src/infrastructure/web/batch_output.ts zip filename - CLAUDE.md, README.md, CHANGELOG.md, docs/architecture.md - docs/PRIVACY_GAPS.md, docs/android-apk.md, docs/animation-principles.md - docs/deploying.md (Docker image name, Caddy/nginx placeholders, tunnel name — Cloudflare Pages project name kept as exifcleaner-web to avoid orphaning the live deploy) localStorage migration: - New key: metascrub-settings-v1 - One-time migration shim reads the legacy exifcleaner-settings-v1 key on first launch and copies it forward. Test coverage added in tests/renderer/infrastructure/web_api.test.ts. Cleanup bundled in: - Replace dead obuvuyoviz26-lab/exifcleaner-web/issues/* URLs with bare #N refs (Forgejo auto-links these to the local repo). - Drop the in-app HEIC link to a localhost Forgejo URL — it was leaking a private dev URL to end users on the deployed PWA. - Drop "exifcleaner.com" author URL (project no longer controls it). - Drop "exifcleaner.app" stale comment in vite.config.web.ts. - Forensic stray-marker scanners in tools/forensic/{png,office}.ts now also match /metascrub/i so a future regression that stamped the new brand name into output bytes would fail the recovery battery. Internal identifiers (ExifError type, formatExifError, src/domain/exif/, CSS --ec-* tokens) are intentionally kept — they're not user-facing brand surfaces and renaming them would be cosmetic churn. Refs #80 (Phase G; this is the post-Phase-G rebrand).