feat: improve task execution, verification and packaging

Add execution incidents, action bursts and shared Flash history.

Expose verification and Explorer settings with streamed check results.

Support graceful cancellation, recording recovery and bundled UI resources.

Add CI quality checks and clean up comments and documentation.
This commit is contained in:
somew1nd committed 2026-09-02 21:45:51 -07:00
1 parent 5ccf06d677
commit 67248c887e
289 files changed
+15883 -6919

No files matched your search

+4 -5
View File
@@ -53,11 +53,10 @@ def dhash_hex(image_bytes: bytes | None, hash_size: int = HASH_SIZE) -> str | No
# grid, so hashes stay comparable across code paths.
try:
img.draft("L", (hash_size * 8, hash_size * 8))
except Exception:
pass
small = img.convert("L").resize(
(hash_size + 1, hash_size), Image.Resampling.LANCZOS
)
except Exception as exc: # pylint: disable=broad-exception-caught
# Draft decode is an optimization only; full decode below still works.
logger.debug(f"dhash draft decode skipped: {exc}", exc_info=True)
small = img.convert("L").resize((hash_size + 1, hash_size), Image.Resampling.LANCZOS)
pixels = list(small.getdata())
bits = 0
for row in range(hash_size):