New artifact: C2PA Content Provenance (AI provenance), with signer certificate/signing time parsing added in phase 2, case-insensitive media path matching, and a Media State column grouping manifest rows per media file.
Complete context-form migration across the entire codebase: six sequential batches converting Garmin family (24 files), FCM family (8 files), browsers (17 files), and bulk artifacts A-Z (over 200 files), standardizing the parser architecture project-wide.
New Mister Skinnylegs artifact parser, alongside a Samsung Honeyboard clipboard rework (WAL recovery, SEFT support, dual-schema handling) and Samsung CMH now parsed from the files table.
Dependency and security hardening: Pillow bumped to 12.3.0 (July 2026 security fixes), protobuf upgraded to 5.29.6 (resolving 3 high-severity Dependabot alerts), an HTML report fix escaping evidence in report cells, and a fix for missing Tabler-icons resources in compiled binaries.
Large sample_data refresh from an updated 8-image Android test corpus plus 2 new Android 13 test images, with crash fixes surfaced during coverage testing and a memory leak fix for large dataset processing.
What's Changed
Update version number and specs files by @Johann-PLW in #944
Fix artifact crashes surfaced by the 8-image Android coverage run by @abrignoni in #945
Parse Samsung CMH from the files table; document modern Garmin storage by @abrignoni in #946
Update sample_data from the refreshed 8-image Android corpus by @abrignoni in #947
Fix googlemapaudioTemp crash on archives with file/directory name collisions by @abrignoni in #948
Populate sample_data from 2 new Android 13 test images by @abrignoni in #949
Add C2PA Content Provenance (AI provenance) artifact by @abrignoni in #950
C2PA phase 2: parse signer certificate and signing time by @abrignoni in #951
C2PA: case-insensitive media paths (catch uppercase iOS extensions) by @abrignoni in #952
C2PA: add Media State column (group manifest rows per media file) by @abrignoni in #953
fix: check for empty data and source files before msg by @JamesHabben in #954
Samsung Honeyboard clipboard: WAL recovery + SEFT + dual-schema (rework of #955) by @abrignoni in #956
Minor improvements and bug fixes by @djangofaiola in #959
Security: escape evidence in html_columns report cells by @abrignoni in #961
ALEAPP context-form migration — batch 1: Garmin family (24 files) by @abrignoni in #963
ALEAPP context-form migration — batch 2: FCM family (8 files) by @abrignoni in #964
ALEAPP context-form migration — batch 3: browsers (17 files) by @abrignoni in #965
ALEAPP context-form migration — batch 4: bulk A–M (110 files) by @abrignoni in #966
ALEAPP context-form migration — batch 5: bulk N–Z (104 files) by @abrignoni in #967
ALEAPP context-form migration — batch 6 (final): specials + tail (15 files) by @abrignoni in #968
Update report.py - Fix missing Tabler-icons ressources from binaries by @Johann-PLW in #970
chore: update module_info to level with ileapp by @JamesHabben in #971
airtagAndroid: fitting icons for the four Airtag Detection artifacts by @abrignoni in #972
Update version number to 2026.2.0 by @Johann-PLW in #973
Add Mister Skinnylegs by @AlexC-CCL in #969
Fix runtime-contract CI: reconcile NQ Vault path-security test with LAVA pipeline by @abrignoni in #976
chore: bump Pillow 12.1.1 -> 12.3.0 for July 2026 security fixes by @abrignoni in #974
chore: bump protobuf 3.10.0 -> 5.29.6, resolve 3 high Dependabot alerts by @abrignoni in #975
ci: guard against PyPI-style blackboxprotobuf imports by @abrignoni in #978
Memory Leak in Large Dataset Processing by @Johann-PLW in #979
New Contributors
@AlexC-CCL made their first contribution in #969
Full Changelog: v2026.1.0...v2026.2.0