Quick and Claude Fable 5
e3a209c4ff
fix(plugins): package binary installs as zip archives and self-repair legacy raw-binary rows
...
Binary catalog install/update paths (installBinary/replaceBinary) saved raw
plugin binaries into plugin_archives.archive_bytes, but startup preload opens
that column with zip.NewReader expecting a package containing manifest.json
and the plugin binary. Affected installs failed preload after restart with
"zip: not a valid zip file".
- Package manifest.json + binary into a validated zip before SaveArchive on
both binary install paths.
- Self-repair legacy rows in ArchiveCache.Ensure: when stored bytes are not a
zip but hash-match both the stored checksum and the stored manifest's
checksum, repackage and persist the repaired archive. A persist failure is
logged, not fatal — the in-memory archive is already valid and recovery
retries on the next preload.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-06 08:13:50 -04:00
..
2026-07-05 17:38:19 -04:00
2026-05-22 23:26:56 -04:00
2026-07-02 14:07:21 -04:00
2026-06-10 19:25:07 -04:00
2026-07-05 19:04:42 -04:00
2026-07-05 17:38:19 -04:00
2026-07-05 17:38:19 -04:00
2026-07-05 19:41:00 -04:00
2026-06-15 09:34:08 -04:00
2026-05-22 23:26:56 -04:00
2026-07-05 17:38:19 -04:00
2026-07-05 19:04:42 -04:00
2026-07-02 14:08:15 -04:00
2026-06-07 21:27:56 -04:00
2026-07-05 16:44:36 -04:00
2026-05-22 23:26:56 -04:00
2026-06-07 15:57:05 -04:00
2026-06-24 11:03:38 -04:00
2026-06-09 20:08:30 -04:00
2026-07-05 19:41:00 -04:00
2026-06-15 15:34:13 -04:00
2026-06-15 16:20:50 -04:00
2026-06-11 19:51:03 -04:00
2026-07-05 17:38:19 -04:00
2026-06-17 13:09:55 -04:00
2026-07-05 00:16:34 -04:00
2026-06-25 22:43:23 -04:00
2026-06-25 21:31:20 -04:00
2026-07-05 13:21:43 -04:00
2026-05-22 23:26:56 -04:00
2026-07-01 17:37:06 -04:00
2026-07-01 17:37:06 -04:00
2026-06-06 22:29:26 -04:00
2026-07-05 17:38:19 -04:00
2026-05-22 23:26:56 -04:00
2026-07-05 00:16:34 -04:00
2026-07-02 11:42:28 -04:00
2026-07-01 23:21:25 -04:00
2026-06-10 19:25:07 -04:00
2026-05-22 23:26:56 -04:00
2026-06-11 21:34:19 -04:00
2026-06-18 10:07:58 -04:00
2026-06-06 22:29:26 -04:00
2026-06-10 19:25:07 -04:00
2026-07-05 02:08:19 -04:00
2026-07-05 17:38:19 -04:00
2026-06-10 17:18:41 -04:00
2026-06-10 19:25:07 -04:00
2026-06-10 17:18:18 -04:00
2026-07-02 14:23:14 -04:00
2026-07-02 14:23:14 -04:00
2026-07-02 11:42:28 -04:00
2026-05-22 23:26:56 -04:00
2026-05-22 23:26:56 -04:00
2026-06-12 15:04:31 -04:00
2026-05-22 23:26:56 -04:00
2026-07-05 17:38:19 -04:00
2026-06-25 14:47:48 -04:00
2026-07-06 08:13:50 -04:00
2026-07-05 17:38:19 -04:00
2026-07-02 14:23:14 -04:00
2026-06-09 14:23:28 -04:00
2026-07-05 00:17:22 -04:00
2026-07-05 17:38:19 -04:00
2026-05-22 23:26:56 -04:00
2026-07-05 19:41:00 -04:00
2026-06-25 20:50:45 -04:00
2026-07-05 19:41:00 -04:00
2026-06-08 15:25:48 -04:00
2026-07-05 19:04:42 -04:00
2026-06-15 09:34:08 -04:00
2026-07-02 14:23:14 -04:00
2026-07-01 22:05:36 -04:00
2026-07-05 17:38:19 -04:00
2026-05-22 23:26:56 -04:00
2026-07-02 14:23:14 -04:00
2026-06-06 00:05:04 -04:00
2026-06-24 11:03:38 -04:00
2026-07-05 00:19:31 -04:00
2026-07-05 19:04:42 -04:00
2026-07-05 19:04:42 -04:00
2026-07-01 17:36:47 -04:00
2026-07-05 14:58:19 -04:00
2026-07-02 11:34:02 -04:00
2026-06-08 15:25:48 -04:00
2026-07-02 14:06:25 -04:00