Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
09b91a3
♻️[Refactor] Share image output helpers
maruson08 Aug 24, 2026
6a0f51c
✨[Feat] Add Image Resize
maruson08 Aug 24, 2026
ab8a3aa
✅[Test] Add Image Resize regression coverage
maruson08 Aug 24, 2026
f0f8d77
📄[Docs] Document image resizing support
maruson08 Aug 24, 2026
09625d2
🐛[Fix] Synchronize locked resize dimensions
maruson08 Aug 24, 2026
3f0a64c
✨[Feat] Merge Sprint 13 Image Resize
maruson08 Aug 24, 2026
b351e46
✨[Feat] Add Image Compressor
maruson08 Aug 24, 2026
1ff7637
🐛[Fix] Allow compression result names to wrap
maruson08 Aug 24, 2026
53755b6
✅[Test] Add Image Compressor regression coverage
maruson08 Aug 24, 2026
d849d78
📄[Docs] Document image compression support
maruson08 Aug 24, 2026
7e7c8f6
🐛[Fix] Release compression output state
maruson08 Aug 24, 2026
609c8f7
✅[Test] Cover compressor output cleanup
maruson08 Aug 24, 2026
e86be0a
✨[Feat] Merge Sprint 14 Image Compressor
maruson08 Aug 24, 2026
e46cabc
➕[Add] Vendor secure-metadata v0.1.0
maruson08 Aug 26, 2026
0298801
✨[Feat] Add image metadata processing foundation
maruson08 Aug 26, 2026
79a2d25
✨[Feat] Build image metadata inspector and cleaner
maruson08 Aug 26, 2026
4e4e8a0
🐛[Fix] Correct metadata categories and locale coverage
maruson08 Aug 26, 2026
79361ff
✅[Test] Cover image metadata integration and verification
maruson08 Aug 26, 2026
ade10eb
📄[Docs] Document image metadata privacy and provenance
maruson08 Aug 26, 2026
82f09e8
✨[Feat] Merge Sprint 15 Image Metadata Inspector & Cleaner
maruson08 Aug 26, 2026
6b3f052
🐛[Fix] Repair image category tool structure
maruson08 Aug 26, 2026
2c8fe40
✨[Feat] Promote privacy metadata tool hub
maruson08 Aug 26, 2026
801153d
✅[Test] Cover category routes and availability
maruson08 Aug 26, 2026
05a250e
📄[Docs] Document privacy hub and QA boundary
maruson08 Aug 26, 2026
2c44840
🐛[Fix] Merge Sprint 16 Privacy hub hardening
maruson08 Aug 26, 2026
44df95d
🐛[Fix] Correct canonical repository links
maruson08 Aug 26, 2026
8b18749
✅[Test] Harden v2 release invariants
maruson08 Aug 26, 2026
b66f29e
🔧[Config] Validate v2 integration pushes
maruson08 Aug 26, 2026
6077662
🐛[Fix] Bound release copy and accessible names
maruson08 Aug 26, 2026
dfd4309
📄[Docs] Define v2 promotion QA gate
maruson08 Aug 26, 2026
10f0c08
🐛[Fix] Merge Sprint 17 v2 release hardening
maruson08 Aug 26, 2026
19d47ca
🎀[Style] Unify metadata source cards
maruson08 Aug 26, 2026
b89aeba
✨[Feat] Refine metadata inspection and cleaning
maruson08 Aug 26, 2026
aff7467
📄[Docs] Record metadata UX validation
maruson08 Aug 26, 2026
1202d79
✨[Feat] Merge Sprint 18 Metadata UX refinement
maruson08 Aug 26, 2026
7501783
➕[Add] Vendor secure-metadata v0.1.1
maruson08 Aug 27, 2026
5845bde
✅[Test] Cover EXIF orientation preservation
maruson08 Aug 27, 2026
ba9d62d
🐛[Fix] Polish metadata actions and summaries
maruson08 Aug 27, 2026
5117a7b
📄[Docs] Record metadata orientation policy
maruson08 Aug 27, 2026
50cac48
🚨[Hotfix] Merge metadata orientation release polish
maruson08 Aug 27, 2026
b3869e0
📄[Docs] Record final v2 manual QA
maruson08 Aug 27, 2026
122df61
📄[Docs] Merge final v2 manual QA
maruson08 Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
push:
branches:
- main
- v2

permissions:
contents: read
Expand Down
4 changes: 2 additions & 2 deletions 404.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
</head>
<body class="page-shell" data-page="notFound">
<a class="skip-link" href="#main" data-i18n="common.skip">Skip to main content</a>
<header class="site-header"><div class="container header-inner"><a class="brand" href="./" aria-label="Secure Tools home"><span class="brand-mark" aria-hidden="true"></span><span>Secure Tools</span></a><div class="header-controls"><label class="control-label"><span data-i18n="common.language">Language</span><select class="control" data-language-select><option value="en">English</option><option value="ko">한국어</option><option value="ja">日本語</option><option value="es">Español</option><option value="de">Deutsch</option><option value="fr">Français</option></select></label><label class="control-label"><span data-i18n="common.theme">Theme</span><select class="control" data-theme-select><option value="system" data-i18n="common.themes.system">System</option><option value="light" data-i18n="common.themes.light">Light</option><option value="dark" data-i18n="common.themes.dark">Dark</option></select></label></div></div></header>
<header class="site-header"><div class="container header-inner"><a class="brand" href="./" aria-label="Secure Tools home" data-i18n-aria-label="common.aria.home"><span class="brand-mark" aria-hidden="true"></span><span>Secure Tools</span></a><div class="header-controls"><label class="control-label"><span data-i18n="common.language">Language</span><select class="control" data-language-select><option value="en">English</option><option value="ko">한국어</option><option value="ja">日本語</option><option value="es">Español</option><option value="de">Deutsch</option><option value="fr">Français</option></select></label><label class="control-label"><span data-i18n="common.theme">Theme</span><select class="control" data-theme-select><option value="system" data-i18n="common.themes.system">System</option><option value="light" data-i18n="common.themes.light">Light</option><option value="dark" data-i18n="common.themes.dark">Dark</option></select></label></div></div></header>
<main id="main" class="page-main not-found"><div class="container prose"><p class="eyebrow" data-i18n="notFound.eyebrow">404</p><h1 data-i18n="notFound.title">This page is not here.</h1><p data-i18n="notFound.description">The address may be outdated or mistyped.</p><a class="button button--primary" href="./" data-i18n="notFound.action">Return home</a></div></main>
<footer class="site-footer"><div class="container footer-inner"><div><a class="brand" href="./" aria-label="Secure Tools home"><span class="brand-mark" aria-hidden="true"></span><span>Secure Tools</span></a><p data-i18n="common.footerStatement">Your files stay on your device.</p></div><nav aria-label="Footer navigation"><a href="./#tools" data-i18n="common.nav.tools">Tools</a><a href="./privacy/" data-i18n="common.nav.privacy">Privacy</a><a href="./about/" data-i18n="common.nav.about">About</a><a href="https://github.com/maruson08/Secure_Tools" data-repository-link target="_blank" rel="noreferrer" data-i18n="common.nav.source">Source</a></nav></div></footer>
<footer class="site-footer"><div class="container footer-inner"><div><a class="brand" href="./" aria-label="Secure Tools home" data-i18n-aria-label="common.aria.home"><span class="brand-mark" aria-hidden="true"></span><span>Secure Tools</span></a><p data-i18n="common.footerStatement">Your files stay on your device.</p></div><nav aria-label="Footer navigation" data-i18n-aria-label="common.aria.footerNavigation"><a href="./#tools" data-i18n="common.nav.tools">Tools</a><a href="./privacy/" data-i18n="common.nav.privacy">Privacy</a><a href="./about/" data-i18n="common.nav.about">About</a><a href="https://github.com/SecureToolsProject/Secure_Tools" data-repository-link target="_blank" rel="noreferrer" data-i18n="common.nav.source">Source</a></nav></div></footer>
<script type="module" src="./js/main.js"></script>
</body>
</html>
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,29 @@
### Added

- Started the v2 cycle with a production Image category and local Image Converter.
- Added Image Resize with pixel and percentage modes, aspect-ratio preservation, optional enlargement, Original/JPEG/PNG/WebP output, and local batch ZIP saving.
- Added Image Compressor with Original/JPEG/PNG/WebP output, truthful format-specific quality behavior, unchanged dimensions, and local batch ZIP saving.
- Added the single-file Image Metadata Inspector & Cleaner for JPEG, PNG, and WebP with honest partial/opaque reporting, authoritative Privacy Clean, ICC preservation, and fail-closed verification before save.
- Pinned the immutable `secure-metadata v0.1.1` browser Release artifact as a same-origin dependency with exact provenance and SHA-256 release-gate coverage.
- Added per-file and aggregate compression metrics that distinguish byte savings from larger generated results.
- Added per-image output dimension/pixel checks and a 200-megapixel aggregate resize-output workload limit.
- Added JPEG, PNG, and WebP input/output, lossy quality controls for JPEG/WebP, deterministic white JPEG transparency, metadata-stripping canvas re-encoding, collision-safe Unicode names, and ZIP batch output.
- Added per-file, queue, dimension, decoded-pixel, and 200-megapixel aggregate-work protections with recoverable errors.

### Changed

- Hardened v2 promotion gates for all ten production tools, vendored-resource integrity, local-only network invariants, save failure paths, and resource boundaries.
- Upgraded secure-metadata to v0.1.1 so JPEG Privacy Clean preserves one valid rendering Orientation while removing other targeted EXIF/GPS data without decoding or re-encoding pixels.
- Aligned Image and PDF Metadata action panels and bounded their primary decoded summaries while retaining complete details.
- Corrected canonical repository links and extended integration CI to `v2` pushes.
- Narrowed homepage and category privacy copy to production file-content processing and localized shared navigation and summary accessible names across all six interface languages.
- Added a live v2 promotion QA matrix that keeps blocked browser evidence separate from passing automated checks.
- Recorded completed manual Chrome release QA and verified EXIF Orientation preservation, advancing the documented v2 status to READY FOR PROMOTION without creating a release.

- Removed the standalone planned Rotate PDF card; page rotation remains available as part of PDF Organizer.
- Moved shared browser image validation and decoding into `tools/shared/image.js` for PDF and Image tools.
- Promoted Privacy from generic planned placeholders to a production navigation hub for the existing Image and PDF metadata tools, with distinct supported-scope copy in all six locales.
- Repaired the Image category’s semantic tool list so all four available cards remain within the same list.

## 1.0.0

Expand Down
Loading
Loading