2026-04-30 - 2026-10-30
Overview
3 Releases published by 1 user
Published
v1.0.0-rc3
Published
v1.0.0-rc2
Published
v1.0.0-rc1
107 Pull requests merged by 1 user
Merged
#232 README: the close() sentence split in two (closes #231)
Merged
#230 README: four sentences fixed for the documents gate (closes #229)
Merged
#228 README.md rewritten sentence by sentence (closes #219)
Merged
#227 quak helper fix-missing-thumbnails --file on an empty cache stops fetching collections once it finds every file (closes #223)
Merged
#226 quak get and get-thumb on an empty cache stop fetching collections once they find the file (closes #222)
Merged
#225 quak files COLLECTION fetches that collection's files alone (closes #217)
Merged
#220 A file's JSON holds keywords in place of its CLIP embedding (closes #218)
Merged
#134 next → main: Photo save path, download and EXIF; version from git; example script
Merged
#216 -v raises the log level per repeat; -q prints only fatal errors
Merged
#215 quak files takes the collection ID as an optional argument
Merged
#213 Names quak builds from server data fit in 255 bytes
Merged
#214 quak collections reads the collection list alone
Merged
#208 ML data that does not decrypt is recorded with its reason (closes #198)
Merged
#209 --verify keeps a mismatched original until a matching copy replaces it (closes #199)
Merged
#204 An album whose folder cannot be made no longer stops the backup (closes #197)
Merged
#207 The binary make install builds retries a refused or unresolvable connection (closes #206)
Merged
#203 A network failure is printed and recorded with its reason (closes #196)
Merged
#202 README says that make install needs nix (closes #200)
Merged
#192 quak backup works on up to the content pool's limit of originals at once (closes #182)
Merged
#195 TODO.md's Next Step names the open issues, not a closed one (closes #194)
Merged
#193 A backup whose lock is lost stops with one line, not a stack trace (closes #184)
Merged
#188 One album or file quak cannot decrypt no longer stops a refresh or a backup (closes #181)
Merged
#190 quak backup no longer refreshes its library on a timer (closes #183)
Merged
#191 Test quak backup end to end against a fake Ente server (closes #186)
Merged
#189 An ID on the command line is decimal digits only (closes #185)
Merged
#180 README: running quak backup from cron, and its exit codes (closes #170)
Merged
#179 quak backup --verify re-hashes stored originals and downloads again any that do not match (closes #168)
Merged
#178 quak backup refuses to run while another backup of the same directory runs, exit 2 (closes #169)
Merged
#177 quak backup writes each original's EXIF, XMP and dimensions into its JSON (closes #167)
Merged
#173 An expired session exits 3 with one line saying to run quak login (closes #164)
Merged
#174 quak backup retries failed requests for longer (closes #165)
Merged
#176 Re-vendor the canonical files from sneak/prompts at dd4027b
Merged
#175 quak backup writes the account and album records backup-metadata writes
Merged
#172 quak backup writes each file's ML data into its JSON (closes #163)
Merged
#161 Download-albums example test no longer depends on the disk's free space (closes #160)
Merged
#157 docker build . stamps the git tag or short commit, not dev (closes #154)
Merged
#159 exif() returns every EXIF tag in the file (closes #156)
Merged
#158 Thumbnail test on main: re-encode a small image so it cannot time out (closes #153)
Merged
#152 Remove the content cache's handling of an earlier version's live-photo ZIP (closes #151)
Merged
#155 Thumbnail test: re-encode a small image so it cannot time out (closes #153)
Merged
#150 Example script: download every album's photos and metadata (closes #144)
Merged
#149 Photo: one async method per EXIF field (closes #148)
Merged
#146 Save path ./photos/YYYY/YYYY-MM/YYYY-MM-DD/YYYY-MM-DD.fileID.ext; download() from the cache first (closes #143)
Merged
#147 exif(): read HEIF/HEIC originals with exifreader (closes #145)
Merged
#142 Photo: save path, is-local, content bytes, metadata and EXIF getters (closes #141)
Merged
#138 TODO.md workflow: branch from and merge into next (closes #137)
Merged
#136 README development workflow: branch from and merge into next (closes #135)
Merged
#133 Bring README and TODO.md in line with next after the milestone merge (closes #132)
Merged
#31 next → main: pre-1.0 milestone
Merged
#131 Test the live-photo writer's fsyncs (closes #130)
Merged
#128 Store live photos as their image and their video (closes #107)
Merged
#129 Sync next2 into next: hardening, backup and CLI fixes
Merged
#127 Mark the package private and declare engines and exports (closes #6)
Merged
#126 Bring README and TODO.md in line with the tree on next2
Merged
#125 Test quak login and backup-metadata --exif
Merged
#124 Write each backed-up original once and skip the precache (closes #106)
Merged
#123 Refresh before backup-metadata and the thumbnail helpers answer (closes #100)
Merged
#122 Make backup wait for the server refresh and fail when it fails
Merged
#121 Print CLI errors as one line instead of a stack trace
Merged
#120 Keep another process's downloads when opening a library (closes #105)
Merged
#112 Make lint and test phases of the Dockerfile (closes #96)
Merged
#119 Skip thumbnail repairs the server always refuses (closes #109)
Merged
#118 Test the live-photo hash check error paths (closes #117)
Merged
#116 quak logout ends the session on the server (closes #108)
Merged
#115 Give backup album folders distinct names and remove stale entries
Merged
#98 Check downloaded originals against their recorded content hash (closes #68)
Merged
#113 Start empty when the cache directory holds another account's cache (closes #104)
Merged
#114 backup-metadata: keep going when an ML data request fails (closes #101)
Merged
#95 Single-source the version from package.json
Merged
#94 Test that close() waits for the originals precache (closes #93)
Merged
#92 Fix two intermittently failing library tests (closes #90)
Merged
#91 Pin three untested guards: download timer, URL fragment, short APP1
Merged
#88 Make the download deadline an idle deadline and cancel failed bodies (closes #24)
Merged
#87 Build every ApiClient request URL in one place (closes #18)
Merged
#86 Move CLI commands into testable functions and test them
Merged
#85 Harden the backup tree's atomic copy (closes #22)
Merged
#83 Harden the retry classifier and pin per-attempt deadlines
Merged
#84 Harden the JPEG EXIF scan against malformed input
Merged
#82 Keep make test from collecting tests in nested checkouts
Merged
#81 Drop the deprecated @types/libsodium-wrappers-sumo stub (closes #27)
Merged
#79 Validate session snapshots and wipe keys on logout (closes #10)
Merged
#78 Sanitize file names taken from server metadata (closes #9)
Merged
#77 Rewrite the README API reference for the shipped library surface
Merged
#74 Port the quak CLI to the library API (closes #52)
Merged
#76 Add fresh read variants that await a server round-trip (closes #75)
Merged
#73 Precache all thumbnails and pinned originals from Library.open (closes #48)
Merged
#72 Content-similarity search surface over the CLIP index (closes #50)
Merged
#70 Rebuild backup on the library API with a durable failure ledger
Merged
#71 Bound the originals cache with adaptive LRU eviction (closes #47)
Merged
#66 On-disk content and thumbnail cache with per-photo fetch and prefetch
Merged
#69 Revert ML search (#50): it breaks make build (tsc) and reddened next
Merged
#67 Content-similarity search surface over the CLIP index
Merged
#65 Fetch, store, and index per-file ML data and CLIP embeddings (closes #49)
Merged
#64 In-process read surface: albums, photos, and timeline grouping
Merged
#63 Three bounded request pools for metadata, content, and thumbnails (closes #45)
Merged
#62 Plain-record library snapshot and change subscription
Merged
#61 Accumulate streamDecrypt reads linearly, not quadratically (closes #21)
Merged
#60 Library.open with a transparent background refresh loop
Merged
#59 Stream decrypted downloads to disk with bounded memory (closes #40)
Merged
#58 On-disk JSON metadata store for the local cache (closes #41)
Merged
#57 Resumable, deletion-aware collection and file enumeration (closes #38)
Merged
#56 feat(download): durable atomic writer and per-chunk progress hook (closes #39)
Merged
#55 Carry file size, thumbnail size, and deletion flag through decryptFile
Merged
#28 Make the image build multi-stage and cache-proof (closes #4)
Merged
#26 Compile bin/ alongside src/ so the package can be built (closes #3)
Merged
#23 Retry transient network failures with exponential backoff (closes #2)
Merged
#20 Verify secretstream TAG_FINAL and write downloads atomically (closes #1)
1 Pull request proposed by 1 user
Proposed
#221 next into main
122 Issues closed from 2 users
Closed
#231 README: one sentence fails the second documents gate
Closed
#229 README: five sentences fail the documents gate
Closed
#219 Rewrite README.md and the other prose documents sentence by sentence, on Fable
Closed
#223 quak helper fix-missing-thumbnails --file fetches every collection to find the files named
Closed
#222 quak get and quak get-thumb fetch every collection to find one file
Closed
#217 pulls all collection data when listing files for a single collection
Closed
#218 clip ml metadata embeddings are useless
Closed
#201 1.0: v1.0.0-rc2 is a release candidate
Closed
#212 -v/--verbose raises the log level per repeat; -q/--quiet prints only fatal errors
Closed
#211 Mandatory arguments are positional; quak files with no argument lists every file
Closed
#205 Names quak builds from server data can be over 255 bytes: backup-metadata album folders, quak get defaults, long extensions in a save path
Closed
#210 quak collections hangs with no output on a live account
Closed
#198 ML data that does not decrypt is treated as absent, and the reason is lost
Closed
#199 --verify removes a mismatched original before its replacement has been downloaded
Closed
#197 An album whose folder cannot be made stops the run before the other albums and before failures.json is saved
Closed
#206 The binary make install builds does not retry a connection that fails, or record it as transient
Closed
#196 A network failure is logged and recorded as fetch failed, with the reason dropped
Closed
#200 README: make install needs nix, which the cron section does not say
Closed
#182 quak backup downloads one original at a time
Closed
#194 TODO.md says the cache design waits on sneak's review; that issue is closed
Closed
#184 A backup whose lock is lost dies with a stack trace
Closed
#181 One file or album quak cannot decrypt stops every refresh, so quak backup stores nothing
Closed
#183 quak backup asks the server for changes every 3 seconds for its whole run
Closed
#186 Test quak backup end to end against a fake of the Ente HTTP API
Closed
#185 ID arguments accept 0x10, 1e3, 1.5 and an empty string, and --file drops IDs it cannot read
Closed
#162 One cron-safe command that mirrors the whole account, ML data and metadata included
Closed
#170 README: running quak backup from cron, and its exit codes
Closed
#168 quak backup --verify re-hashes stored originals and downloads again any that do not match
Closed
#169 quak backup refuses to run while another backup of the same directory runs, exit 2
Closed
#167 quak backup writes each original's EXIF, XMP and dimensions into its JSON file
Closed
#164 An expired session fails with one line saying to run quak login, exit 3
Closed
#165 quak backup retries for longer, with the budget set in the library
Closed
#171 Re-vendor the canonical files from sneak/prompts at dd4027b
Closed
#166 quak backup writes the account and album records backup-metadata writes
Closed
#163 quak backup writes each file's ML data into its JSON file
Closed
#160 Make next green: the download-albums example test fails on a disk with under 50 GiB free
Closed
#36 Design for review: a cache layer (SQLite metadata + on-disk content/thumbnail store) and a crash-safe backup on it
Closed
#154 docker build . stamps dev, not the git tag or short commit
Closed
#148 Photo: one async accessor per EXIF field, each calling exif()
Closed
#156 exif() returns every EXIF tag in the file, not only the thirteen
Closed
#153 Make main and next green: a thumbnail test times out on the first test pass
Closed
#151 Remove the content cache's handling of an earlier version's live-photo ZIP
Closed
#144 Example script: download every album's photos and metadata to the filesystem
Closed
#143 Default save path ./photos/YYYY/YYYY-MM/YYYY-MM-DD/YYYY-MM-DD.photoid.ext; downloads to it come from the cache when cached
Closed
#145 exif(): read HEIF/HEIC originals, not only JPEG
Closed
#140 Document high-level API usage; assess fluent album/photo chain against current API shape
Closed
#141 Photo: save path, is-local, content bytes, and common metadata and EXIF getters
Closed
#139 Run every build, test and lint step in the Dockerfiles at nice -n 19
Closed
#137 TODO.md workflow: branch from and merge into next, not main
Closed
#135 README development workflow: branch from and merge into next, not main
Closed
#132 Bring README.md and TODO.md in line with next after the milestone merge
Closed
#12 Add tests for the CLI (bin/quak.ts)
Closed
#29 make check runs prettier --check . twice
Closed
#30 Run all linting in Docker via Dockerfile.lint + script/lint
Closed
#33 lint-once.test.ts misses the path CI actually runs, and its lockfile assertion checks the wrong branch
Closed
#80 Retry classifier hardening and per-attempt deadline tests (from issue 24, items 3-9)
Closed
#111 Bring README and TODO.md in line with the tree on next2
Closed
#130 Test that the live-photo writer syncs its files before and after the rename
Closed
#107 Live photos are saved as a ZIP under the image's extension
Closed
#6 Package metadata for release: engines, exports, prepublishOnly
Closed
#16 Decision needed: does quak publish to npm?
Closed
#97 Review toward 1.0: identify and file all next steps
Closed
#110 Test quak login and backup-metadata --exif
Closed
#106 quak backup writes every original twice and precaches the whole account
Closed
#100 backup-metadata and the thumbnail helpers answer from the cache without refreshing
Closed
#99 backup does not wait for the server refresh and ignores its failure
Closed
#102 CLI prints a raw stack trace instead of an error message
Closed
#105 Opening a library deletes another process's download in progress
Closed
#96 Re-vendor the lint and test setup from the canonical template (lint and test as Dockerfile phases)
Closed
#109 fix-missing-thumbnails retries files the server will always refuse
Closed
#117 Test the live-photo hash check against an unreadable ZIP and a missing image or video entry
Closed
#108 quak logout leaves the session valid on the server
Closed
#103 Backup album folders drop files with the same title and never remove old entries
Closed
#68 Wire content-integrity hash comparison once the hash construction is confirmed
Closed
#104 A cache directory reused by a second account mixes the two accounts' data
Closed
#101 backup-metadata stops the whole dump when one ML data request fails
Closed
#32 Rename LINT_EPOCH to CHECK_EPOCH in Dockerfile.lint (blocked on a policy ruling)
Closed
#5 Single-source the version string
Closed
#93 Test that close() waits for the originals precache sweep
Closed
#90 Fix two intermittently failing library tests
Closed
#89 Pin three guards reviewers found untested (download timer, URL fragment, short APP1 segment)
Closed
#24 Retry/timeout follow-ups: idle deadline, reader cancellation, and classifier hardening
Closed
#18 Unify URL construction in ApiClient
Closed
#22 Atomic download writes: durability, orphan reaping, and untested failure paths
Closed
#11 Harden the JPEG EXIF scanner against malformed input
Closed
#19 Prune stale remote branches
Closed
#25 make test silently runs the suite N+1 times when a git worktree exists inside the checkout
Closed
#27 Drop the deprecated @types/libsodium-wrappers-sumo stub dependency
Closed
#10 Client session handling: stop reaching into private state, validate snapshots, clear keys on logout
Closed
#9 Sanitize server-controlled filenames used as output paths
Closed
#15 Tag v1.0.0
Closed
#7 listFiles can loop forever when the server stops advancing
Closed
#13 Rewrite the README API reference to match the implementation
Closed
#53 Rewrite the README API reference for the new library surface
Closed
#17 fixMissingThumbnails assumes every file is a JPEG
Closed
#52 Port the quak CLI to the new library API
Closed
#75 Fresh read variants that await a server round-trip before resolving
Closed
#54 Owner decision: quak (priority repo) is starved of worker capacity
Closed
#48 Precache thumbnails for the whole account and originals for favorites and the latest week
Closed
#50 Content-similarity search surface over the CLIP index
Closed
#8 runBackup must not crash on symlink failure, and must repair partial originals
Closed
#51 Rewrite the backup command on the library API with a durable failure ledger
Closed
#47 Originals cache size limit with least-recently-used eviction
Closed
#46 On-disk content and thumbnail cache, with per-photo fetch and thumbnail prefetch
Closed
#49 Fetch and store machine-learning (magic) data and build the CLIP index
Closed
#44 In-process read surface: albums, photos, and timeline grouping
Closed
#45 Three bounded request pools for metadata, content, and thumbnails
Closed
#43 Plain-record snapshot and change subscription for the library
Closed
#42 Library.open with a background refresh loop and staleness window
Closed
#21 streamDecrypt buffers quadratically: recopies the whole accumulated buffer on every network read
Closed
#40 Stream decrypted downloads to disk instead of buffering whole files in memory
Closed
#41 On-disk JSON metadata store for the local cache
Closed
#38 Resumable, deletion-aware collection and file enumeration on Client
Closed
#39 Download module: shared atomic writer with fsync, and per-chunk progress
Closed
#37 Carry file size, thumbnail size, and deletion flag through file decryption
Closed
#34 lint-once: sh -c indirection is not followed by the invocation walk
Closed
#35 lint-once: run: >- block scalars are caught only by a test whose name does not say so
Closed
#4 Make make docker green and policy-conformant
Closed
#14 Decision needed: account credentials committed in test/integration/live-login.ts
Closed
#3 Fix the TypeScript build: make build fails with TS6059 on main
Closed
#2 Retry policy: no retry on 4xx, exponential backoff on 5xx and network errors
Closed
#1 Downloads: verify secretstream TAG_FINAL and write output atomically
123 Issues created by 1 user
Opened
#1 Downloads: verify secretstream TAG_FINAL and write output atomically
Opened
#2 Retry policy: no retry on 4xx, exponential backoff on 5xx and network errors
Opened
#3 Fix the TypeScript build: make build fails with TS6059 on main
Opened
#4 Make make docker green and policy-conformant
Opened
#5 Single-source the version string
Opened
#6 Package metadata for release: engines, exports, prepublishOnly
Opened
#7 listFiles can loop forever when the server stops advancing
Opened
#8 runBackup must not crash on symlink failure, and must repair partial originals
Opened
#9 Sanitize server-controlled filenames used as output paths
Opened
#10 Client session handling: stop reaching into private state, validate snapshots, clear keys on logout
Opened
#11 Harden the JPEG EXIF scanner against malformed input
Opened
#12 Add tests for the CLI (bin/quak.ts)
Opened
#13 Rewrite the README API reference to match the implementation
Opened
#14 Decision needed: account credentials committed in test/integration/live-login.ts
Opened
#15 Tag v1.0.0
Opened
#16 Decision needed: does quak publish to npm?
Opened
#17 fixMissingThumbnails assumes every file is a JPEG
Opened
#18 Unify URL construction in ApiClient
Opened
#19 Prune stale remote branches
Opened
#21 streamDecrypt buffers quadratically: recopies the whole accumulated buffer on every network read
Opened
#22 Atomic download writes: durability, orphan reaping, and untested failure paths
Opened
#24 Retry/timeout follow-ups: idle deadline, reader cancellation, and classifier hardening
Opened
#25 make test silently runs the suite N+1 times when a git worktree exists inside the checkout
Opened
#27 Drop the deprecated @types/libsodium-wrappers-sumo stub dependency
Opened
#29 make check runs prettier --check . twice
Opened
#30 Run all linting in Docker via Dockerfile.lint + script/lint
Opened
#32 Rename LINT_EPOCH to CHECK_EPOCH in Dockerfile.lint (blocked on a policy ruling)
Opened
#33 lint-once.test.ts misses the path CI actually runs, and its lockfile assertion checks the wrong branch
Opened
#34 lint-once: sh -c indirection is not followed by the invocation walk
Opened
#35 lint-once: run: >- block scalars are caught only by a test whose name does not say so
Opened
#36 Design for review: a cache layer (SQLite metadata + on-disk content/thumbnail store) and a crash-safe backup on it
Opened
#37 Carry file size, thumbnail size, and deletion flag through file decryption
Opened
#38 Resumable, deletion-aware collection and file enumeration on Client
Opened
#39 Download module: shared atomic writer with fsync, and per-chunk progress
Opened
#40 Stream decrypted downloads to disk instead of buffering whole files in memory
Opened
#41 On-disk JSON metadata store for the local cache
Opened
#42 Library.open with a background refresh loop and staleness window
Opened
#43 Plain-record snapshot and change subscription for the library
Opened
#44 In-process read surface: albums, photos, and timeline grouping
Opened
#45 Three bounded request pools for metadata, content, and thumbnails
Opened
#46 On-disk content and thumbnail cache, with per-photo fetch and thumbnail prefetch
Opened
#47 Originals cache size limit with least-recently-used eviction
Opened
#48 Precache thumbnails for the whole account and originals for favorites and the latest week
Opened
#49 Fetch and store machine-learning (magic) data and build the CLIP index
Opened
#50 Content-similarity search surface over the CLIP index
Opened
#51 Rewrite the backup command on the library API with a durable failure ledger
Opened
#52 Port the quak CLI to the new library API
Opened
#53 Rewrite the README API reference for the new library surface
Opened
#54 Owner decision: quak (priority repo) is starved of worker capacity
Opened
#68 Wire content-integrity hash comparison once the hash construction is confirmed
Opened
#75 Fresh read variants that await a server round-trip before resolving
Opened
#80 Retry classifier hardening and per-attempt deadline tests (from issue 24, items 3-9)
Opened
#89 Pin three guards reviewers found untested (download timer, URL fragment, short APP1 segment)
Opened
#90 Fix two intermittently failing library tests
Opened
#93 Test that close() waits for the originals precache sweep
Opened
#96 Re-vendor the lint and test setup from the canonical template (lint and test as Dockerfile phases)
Opened
#97 Review toward 1.0: identify and file all next steps
Opened
#99 backup does not wait for the server refresh and ignores its failure
Opened
#100 backup-metadata and the thumbnail helpers answer from the cache without refreshing
Opened
#101 backup-metadata stops the whole dump when one ML data request fails
Opened
#102 CLI prints a raw stack trace instead of an error message
Opened
#103 Backup album folders drop files with the same title and never remove old entries
Opened
#104 A cache directory reused by a second account mixes the two accounts' data
Opened
#105 Opening a library deletes another process's download in progress
Opened
#106 quak backup writes every original twice and precaches the whole account
Opened
#107 Live photos are saved as a ZIP under the image's extension
Opened
#108 quak logout leaves the session valid on the server
Opened
#109 fix-missing-thumbnails retries files the server will always refuse
Opened
#110 Test quak login and backup-metadata --exif
Opened
#111 Bring README and TODO.md in line with the tree on next2
Opened
#117 Test the live-photo hash check against an unreadable ZIP and a missing image or video entry
Opened
#130 Test that the live-photo writer syncs its files before and after the rename
Opened
#132 Bring README.md and TODO.md in line with next after the milestone merge
Opened
#135 README development workflow: branch from and merge into next, not main
Opened
#137 TODO.md workflow: branch from and merge into next, not main
Opened
#139 Run every build, test and lint step in the Dockerfiles at nice -n 19
Opened
#140 Document high-level API usage; assess fluent album/photo chain against current API shape
Opened
#141 Photo: save path, is-local, content bytes, and common metadata and EXIF getters
Opened
#143 Default save path ./photos/YYYY/YYYY-MM/YYYY-MM-DD/YYYY-MM-DD.photoid.ext; downloads to it come from the cache when cached
Opened
#144 Example script: download every album's photos and metadata to the filesystem
Opened
#145 exif(): read HEIF/HEIC originals, not only JPEG
Opened
#148 Photo: one async accessor per EXIF field, each calling exif()
Opened
#151 Remove the content cache's handling of an earlier version's live-photo ZIP
Opened
#153 Make main and next green: a thumbnail test times out on the first test pass
Opened
#154 docker build . stamps dev, not the git tag or short commit
Opened
#156 exif() returns every EXIF tag in the file, not only the thirteen
Opened
#160 Make next green: the download-albums example test fails on a disk with under 50 GiB free
Opened
#162 One cron-safe command that mirrors the whole account, ML data and metadata included
Opened
#163 quak backup writes each file's ML data into its JSON file
Opened
#164 An expired session fails with one line saying to run quak login, exit 3
Opened
#165 quak backup retries for longer, with the budget set in the library
Opened
#166 quak backup writes the account and album records backup-metadata writes
Opened
#167 quak backup writes each original's EXIF, XMP and dimensions into its JSON file
Opened
#168 quak backup --verify re-hashes stored originals and downloads again any that do not match
Opened
#169 quak backup refuses to run while another backup of the same directory runs, exit 2
Opened
#170 README: running quak backup from cron, and its exit codes
Opened
#171 Re-vendor the canonical files from sneak/prompts at dd4027b
Opened
#181 One file or album quak cannot decrypt stops every refresh, so quak backup stores nothing
Opened
#182 quak backup downloads one original at a time
Opened
#183 quak backup asks the server for changes every 3 seconds for its whole run
Opened
#184 A backup whose lock is lost dies with a stack trace
Opened
#185 ID arguments accept 0x10, 1e3, 1.5 and an empty string, and --file drops IDs it cannot read
Opened
#186 Test quak backup end to end against a fake of the Ente HTTP API
Opened
#187 Check quak against a live Ente account
Opened
#194 TODO.md says the cache design waits on sneak's review; that issue is closed
Opened
#196 A network failure is logged and recorded as fetch failed, with the reason dropped
Opened
#197 An album whose folder cannot be made stops the run before the other albums and before failures.json is saved
Opened
#198 ML data that does not decrypt is treated as absent, and the reason is lost
Opened
#199 --verify removes a mismatched original before its replacement has been downloaded
Opened
#200 README: make install needs nix, which the cron section does not say
Opened
#201 1.0: v1.0.0-rc2 is a release candidate
Opened
#205 Names quak builds from server data can be over 255 bytes: backup-metadata album folders, quak get defaults, long extensions in a save path
Opened
#206 The binary make install builds does not retry a connection that fails, or record it as transient
Opened
#210 quak collections hangs with no output on a live account
Opened
#211 Mandatory arguments are positional; quak files with no argument lists every file
Opened
#212 -v/--verbose raises the log level per repeat; -q/--quiet prints only fatal errors
Opened
#217 pulls all collection data when listing files for a single collection
Opened
#218 clip ml metadata embeddings are useless
Opened
#219 Rewrite README.md and the other prose documents sentence by sentence, on Fable
Opened
#222 quak get and quak get-thumb fetch every collection to find one file
Opened
#223 quak helper fix-missing-thumbnails --file fetches every collection to find the files named
Opened
#229 README: five sentences fail the documents gate
Opened
#231 README: one sentence fails the second documents gate