Live-sync audit: compare metadata.json without its last-edited stamp #12
Loading…
Reference in a new issue
No description provided.
Delete branch "oss-oo/audit-metadata-stamp"
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?
Owner request (Claudiu, 2026-10-28): the audits of all three applets compare
metadata.jsonwithout Cinnamon's"last-edited"stamp, each through its repository's PR flow."last-edited"is Cinnamon's metadata key. On the station the Spices Update applet (SpicesUpdate@claudiux7.12.0, hourly) writesMath.ceil(Date.now() / 1000)into the livemetadata.jsonof every applet it guards and saves the file withJSON.stringify(data, null, 2)(no final newline). On 2026-10-28 at 04:21:01 it stamped all 16 live applets with1793157662. The live-sync audit compared every manifest file byte for byte, so a stamped folder failed withFAIL metadata.json: hash mismatchuntil the next install.Change
audit_deployment.py: when the bytes ofmetadata.jsondiffer (this destination only), the installed file passes if it is a JSON object whose"last-edited"is an integer and whose other content equals the payload. The comparison is done as JSON text, sotrueis not1and key order doesn't count. The audit then printsOK metadata.json (last-edited stamp). Anything else staysFAIL metadata.json: hash mismatch:null,true, a float,NaNorInfinity(Python reads the last two, Cinnamon'sJSON.parserejects them);Every other file is still compared byte for byte; the symlink, missing-target and EXTRA checks are unchanged.
Tests for each case, and for where the note appears: never for a byte-identical file, only on the
metadata.jsonline, and not foricons/metadata.json. 15 mutants of the check are all caught in each repo.The skill and README texts name the exception and its writer; the post-sync checklists no longer require byte-equal hashes.
Live (read-only audits with this branch)
EXPECTED=24 VALID=24 SYMLINKS=0 MISMATCHES=0 EXTRA=0 CACHE=2(main:VALID=23 MISMATCHES=1)EXPECTED=24 VALID=24 SYMLINKS=0 MISMATCHES=0 EXTRA=0 CACHE=0(main:VALID=23 MISMATCHES=1)EXPECTED=25 VALID=25 SYMLINKS=0 MISMATCHES=0 EXTRA=0 CACHE=0(installed after the 04:21 run, so not stamped yet)No payload change (the audit is not in
packaging/files.json), so no release.Same change in all three applets: cinnamon-z-usage #29, cinnamon-claude-usage #17, cinnamon-chatgpt-usage #12.
🤖 Generated with Claude Code
Live-sync audit: compare metadata.json without Cinnamon's last-edited stampto Live-sync audit: compare metadata.json without its last-edited stamp