Commit Graph

  • aeb275e137 README: the close() sentence split in two (closes #231) v1.0.0-rc3 next clawbot 2026-10-26 19:32:03 +01:00
  • 67794bf5f8 README: four sentences fixed for the documents gate (closes #229) clawbot 2026-10-26 18:59:28 +01:00
  • b5fcbf4400 README.md rewritten sentence by sentence (closes #219) clawbot 2026-10-26 17:48:25 +01:00
  • a1ea47f9a8 quak helper fix-missing-thumbnails --file on an empty cache stops fetching collections once it finds every file (closes #223) clawbot 2026-10-26 11:25:10 +01:00
  • f65c237e2c quak get and get-thumb on an empty cache stop fetching collections once they find the file (closes #222) clawbot 2026-10-26 10:18:28 +01:00
  • af1491966c quak files COLLECTION fetches that collection's files alone (closes #217) clawbot 2026-10-26 09:04:39 +01:00
  • ec07fd1dc9 quak files COLLECTION fetches that collection's files alone (closes #217) issue-217-files-one-collection sneak 2026-10-25 23:24:16 +00:00
  • 657266a60e A file's JSON holds keywords in place of its CLIP embedding (closes #218) clawbot 2026-10-22 23:32:25 +02:00
  • 5034ae94e8 Merge pull request 'next → main: Photo save path, download and EXIF; version from git; example script' (#134) from next into main main sneak 2026-10-22 18:55:49 +02:00
  • ae0f72971d Merge branch 'main' into next sneak 2026-10-22 18:55:37 +02:00
  • 68d22b9927 -v raises the CLI's log level per repeat; -q prints only fatal errors (closes #212) v1.0.0-rc2 clawbot 2026-10-18 21:46:59 +02:00
  • 92e0c6c791 quak files takes the collection ID as an optional argument (closes #211) clawbot 2026-10-18 20:17:10 +02:00
  • 66e3ac77e8 Names quak builds from server data fit in 255 bytes (closes #205) clawbot 2026-10-18 20:01:34 +02:00
  • 982b878d69 quak collections reads the collection list alone (closes #210) clawbot 2026-10-18 19:01:34 +02:00
  • 7ec71bf7ec ML data that does not decrypt is recorded with its reason (closes #198) clawbot 2026-10-16 07:23:16 +02:00
  • 8583863ec0 --verify keeps a mismatched original until a matching copy replaces it (closes #199) clawbot 2026-10-16 06:56:19 +02:00
  • 960a7ce8a6 An album whose folder cannot be made no longer stops the backup (closes #197) clawbot 2026-10-16 05:23:27 +02:00
  • 20410f8f71 The binary make install builds retries a refused or unresolvable connection (closes #206) clawbot 2026-10-16 04:56:20 +02:00
  • d016dbfaa7 A network failure is printed and recorded with its reason (closes #196) clawbot 2026-10-16 03:23:16 +02:00
  • 5a940d4e4e README says that make install needs nix (closes #200) clawbot 2026-10-16 01:40:19 +02:00
  • 3412e42af5 quak backup works on up to the content pool's limit of originals at once (closes #182) v1.0.0-rc1 clawbot 2026-10-14 09:06:59 +02:00
  • 22ee2db479 TODO.md's Next Step names the open issues, not a closed one (closes #194) clawbot 2026-10-14 08:07:48 +02:00
  • e8e8e00887 A backup whose lock is lost stops with one line, not a stack trace (closes #184) clawbot 2026-10-14 07:37:26 +02:00
  • bb3b5cd2da One album or file quak cannot decrypt no longer stops a refresh or a backup (closes #181) clawbot 2026-10-14 07:08:57 +02:00
  • 288825b11a quak backup no longer refreshes its library on a timer (closes #183) clawbot 2026-10-14 04:10:14 +02:00
  • 54133cfa5f Test quak backup end to end against a fake Ente server (closes #186) clawbot 2026-10-14 03:38:38 +02:00
  • ab28d86aaa An ID on the command line is decimal digits only (closes #185) clawbot 2026-10-14 03:06:35 +02:00
  • 2402ec97f7 README: running quak backup from cron, and its exit codes (closes #170) clawbot 2026-10-07 00:47:37 +02:00
  • ddf58af3cc quak backup --verify re-hashes stored originals and downloads again any that do not match (closes #168) clawbot 2026-10-06 22:47:26 +02:00
  • bd77422965 quak backup refuses to run while another backup of the same directory runs, exit 2 (closes #169) clawbot 2026-10-06 20:30:51 +02:00
  • 31b50a211d quak backup writes each original's EXIF, XMP and dimensions into its JSON (closes #167) clawbot 2026-10-06 16:47:31 +02:00
  • f6317109bc An expired session exits 3 with one line saying to run quak login (closes #164) clawbot 2026-10-06 14:01:48 +02:00
  • ad0e11407f quak backup retries failed requests for longer (closes #165) clawbot 2026-10-06 12:47:40 +02:00
  • fb4fff59fe Re-vendor the canonical files from sneak/prompts at dd4027b (closes #171) clawbot 2026-10-06 10:30:29 +02:00
  • 2483c85321 quak backup writes the account and album records backup-metadata writes (closes #166) clawbot 2026-10-06 07:13:24 +02:00
  • ab4d5d2cc2 quak backup writes each file's ML data into its JSON (closes #163) clawbot 2026-10-06 05:13:27 +02:00
  • 14ac7d05ef Download-albums example test no longer depends on the disk's free space (closes #160) clawbot 2026-10-03 15:30:53 +02:00
  • 9e94542a57 docker build . stamps the git tag or short commit, not dev (closes #154) clawbot 2026-10-02 06:12:56 +02:00
  • e50d2a78c8 exif() returns every EXIF tag in the file (closes #156) clawbot 2026-10-02 05:30:05 +02:00
  • c5a588177c Thumbnail test on main: re-encode a small image so it cannot time out (closes #153) clawbot 2026-10-02 04:22:27 +02:00
  • 0c995a8c4f Remove the content cache's handling of an earlier version's live-photo ZIP (closes #151) clawbot 2026-10-02 04:14:30 +02:00
  • d788c5457d Thumbnail test: re-encode a small image so it cannot time out (closes #153) clawbot 2026-10-02 03:49:23 +02:00
  • 10afa7a7f4 Example script: download every album's photos and metadata (closes #144) clawbot 2026-10-02 00:33:00 +02:00
  • d40f339c0b Photo: one async method per EXIF field (closes #148) clawbot 2026-10-02 00:09:24 +02:00
  • 10e1a9ef39 Save path ./photos/YYYY/YYYY-MM/YYYY-MM-DD/YYYY-MM-DD.fileID.ext; download() from the cache first (closes #143) clawbot 2026-10-01 23:20:58 +02:00
  • 67d554fb46 exif(): read HEIF/HEIC originals with exifreader (closes #145) clawbot 2026-10-01 22:34:09 +02:00
  • 2b598d3622 Photo: save path, is-local, content bytes, metadata and EXIF getters (closes #141) clawbot 2026-10-01 17:58:23 +02:00
  • e6825abcdb TODO.md workflow: branch from and merge into next (closes #137) clawbot 2026-09-29 05:54:35 +02:00
  • c27e2cb629 README development workflow: branch from and merge into next (closes #135) clawbot 2026-09-29 05:38:36 +02:00
  • e6a9e929c2 Bring README and TODO.md in line with next after the milestone merge (closes #132) clawbot 2026-09-29 05:22:57 +02:00
  • 9e6e038545 Merge pull request 'next → main: pre-1.0 milestone' (#31) from next into main sneak 2026-09-29 03:12:31 +02:00
  • 1b7158fcd3 Test the live-photo writer's fsyncs (closes #130) clawbot 2026-09-28 18:45:48 +02:00
  • 9e6deb21eb Store live photos as their image and their video (closes #107) clawbot 2026-09-28 18:06:01 +02:00
  • 04094a8cfb Mark the package private and declare engines and exports (closes #6) clawbot 2026-09-23 14:17:53 +02:00
  • 6a7a10f489 Bring README and TODO.md in line with the tree on next2 (closes #111) clawbot 2026-09-23 10:08:03 +02:00
  • 7740ebfd4d Test quak login and backup-metadata --exif (closes #110) clawbot 2026-09-23 09:27:40 +02:00
  • ae76eb3f74 Write each backed-up original once and skip the precache (closes #106) clawbot 2026-09-23 08:48:02 +02:00
  • f52c77f155 Refresh before backup-metadata and the thumbnail helpers answer (closes #100) clawbot 2026-09-23 08:11:37 +02:00
  • 6757ddea94 Make backup wait for the server refresh and fail when it fails (closes #99) clawbot 2026-09-23 08:07:44 +02:00
  • 36642f4448 Print CLI errors as one line instead of a stack trace (closes #102) clawbot 2026-09-23 07:33:26 +02:00
  • fc396d1ecc Keep another process's downloads when opening a library (closes #105) clawbot 2026-09-23 07:25:28 +02:00
  • cb61582ae6 Make lint and test phases of the Dockerfile (closes #96) clawbot 2026-09-23 07:18:46 +02:00
  • cda57eebda Skip thumbnail repairs the server always refuses (closes #109) clawbot 2026-09-23 07:03:33 +02:00
  • c24c4dda4f Test the live-photo hash check's error paths (closes #117) clawbot 2026-09-23 06:56:15 +02:00
  • 4bb75ca323 quak logout ends the session on the server (closes #108) clawbot 2026-09-23 06:51:12 +02:00
  • cd05a458dc Give backup album folders distinct names and remove stale entries (closes #103) clawbot 2026-09-23 06:36:12 +02:00
  • c19943a520 Check downloaded originals against their recorded content hash (closes #68) clawbot 2026-09-23 06:16:57 +02:00
  • 390401af2c Start empty when the cache directory holds another account's cache (closes #104) clawbot 2026-09-23 05:56:14 +02:00
  • bf3b20df2f backup-metadata: keep going when an ML data request fails (closes #101) clawbot 2026-09-23 05:49:38 +02:00
  • d05b53d560 Single-source the version from package.json (closes #5) clawbot 2026-09-23 05:07:47 +02:00
  • 0ca8887f52 Test that close() waits for the originals precache (closes #93) clawbot 2026-09-23 04:54:45 +02:00
  • f1836ced57 Fix two intermittently failing library tests (closes #90) clawbot 2026-09-23 04:38:00 +02:00
  • c75c4f987c Pin three untested guards: download timer, URL fragment, short APP1 (closes #89) clawbot 2026-09-23 03:44:45 +02:00
  • 28a2beeab8 Make the download deadline an idle deadline and cancel failed bodies (closes #24) clawbot 2026-09-23 03:14:42 +02:00
  • 2b410c3ed6 Build every ApiClient request URL in one place (closes #18) clawbot 2026-09-23 02:57:42 +02:00
  • d07692897b Move CLI commands into testable functions and test them (closes #12) clawbot 2026-09-23 02:47:47 +02:00
  • ed535be1da Harden the backup tree's atomic copy (closes #22) clawbot 2026-09-23 02:44:46 +02:00
  • d545dcd8b1 Harden the retry classifier and pin per-attempt deadlines (closes #80) clawbot 2026-09-23 02:38:01 +02:00
  • 52f58f5d2b Harden the JPEG EXIF scan against malformed input (closes #11) clawbot 2026-09-23 02:28:15 +02:00
  • b44c4ba6d7 Keep make test from collecting tests in nested checkouts (closes #25) clawbot 2026-09-23 02:18:31 +02:00
  • d50b296d3a Drop the deprecated @types/libsodium-wrappers-sumo stub (closes #27) clawbot 2026-09-23 02:15:08 +02:00
  • b7d6ab99f4 Validate session snapshots and wipe keys on logout (closes #10) clawbot 2026-09-23 02:08:02 +02:00
  • 3871d6228e Sanitize file names taken from server metadata (closes #9) clawbot 2026-09-23 02:04:31 +02:00
  • fe952d3e62 Rewrite the README API reference for the new library surface (closes #53) clawbot 2026-09-23 00:27:30 +02:00
  • d23d3f8f47 Port the quak CLI to the library API (closes #52) clawbot 2026-09-23 00:00:55 +02:00
  • aeccb489b5 Fresh read variants that await a server round-trip (closes #75) clawbot 2026-09-22 23:29:15 +02:00
  • 2e00139d3c Precache all thumbnails and pinned originals inside open() (closes #48) clawbot 2026-09-22 21:21:34 +02:00
  • e8575780e4 Content-similarity search surface over the CLIP index (closes #50) clawbot 2026-09-22 20:45:59 +02:00
  • 17d1d74615 Rewrite the backup command on the library API with a durable failure ledger (closes #51) clawbot 2026-09-22 20:21:49 +02:00
  • c05d63a2f0 Originals cache size limit with least-recently-used eviction (closes #47) clawbot 2026-09-22 20:13:22 +02:00
  • 5db59a6e2b On-disk content and thumbnail cache with per-photo fetch and prefetch (closes #46) clawbot 2026-09-22 18:38:22 +02:00
  • 61dfec8d38 Revert ML search (#50) to restore a green next (build fix pending) clawbot 2026-09-22 18:21:54 +02:00
  • 224bd101ab Content-similarity search surface over the CLIP index (closes #50) clawbot 2026-09-22 18:14:13 +02:00
  • d7f415fe29 Fetch, store, and index per-file ML data (closes #49) clawbot 2026-09-22 17:54:40 +02:00
  • c5c1f387df In-process read surface: albums, photos, and timeline grouping (closes #44) clawbot 2026-09-22 17:21:48 +02:00
  • 000d395c87 Three bounded request pools for metadata, content, and thumbnails (closes #45) clawbot 2026-09-22 15:31:21 +02:00
  • fbb8ae44a7 Plain-record library snapshot and change subscription (closes #43) clawbot 2026-09-22 15:22:52 +02:00
  • 57e0c69651 Accumulate streamDecrypt reads linearly, not quadratically (closes #21) clawbot 2026-09-22 15:13:09 +02:00
  • 7570055a5b Library.open with a transparent background refresh (closes #42) clawbot 2026-09-22 14:52:02 +02:00
  • 4b4f550f89 Stream decrypted downloads to disk with bounded memory (closes #40) clawbot 2026-09-22 13:54:20 +02:00