Commit Graph

  • e6825abcdb TODO.md workflow: branch from and merge into next (closes #137) next 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 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
  • 72ea8dcb01 On-disk JSON metadata store for the local cache (closes #41) clawbot 2026-09-22 12:52:50 +02:00
  • 42a6c17d49 Resumable, deletion-aware collection and file enumeration (closes #38) clawbot 2026-09-22 12:37:09 +02:00
  • 8f575550af Durable atomic writer with fsync and per-chunk download progress (closes #39) clawbot 2026-09-22 12:01:06 +02:00
  • ead083c1d6 Carry file size, thumbnail size, and deletion flag through decryptFile (closes #37) clawbot 2026-09-22 12:01:03 +02:00
  • d1d6cdd4f0 Revert the 16 commits pushed to next on 2026-09-04 by an agent outside the managed fleet clawbot 2026-09-05 09:33:23 +00:00
  • 48db9b438a test(lint-once): read docker image/builder build as builds too user 2026-09-04 12:08:54 +00:00
  • 81150f433c test(lint-once): disclose the build shapes read, correct the run: | claim user 2026-09-04 12:06:44 +00:00
  • f67a1c4d92 test(lint-once): match RUN case-insensitively, follow buildx builds user 2026-09-04 12:04:24 +00:00
  • ffc817522e test(lint-once): pin the two-build and later-flag shapes user 2026-09-04 11:51:17 +00:00
  • 88a5fcaa87 lint-once: bound the docker file flag to its own invocation user 2026-09-04 11:49:38 +00:00
  • 2fcb3e6ced test(lint-once): follow a short file flag with its value attached user 2026-09-04 11:37:08 +00:00
  • 197296edba lint-once: follow every spelling of docker build's file flag user 2026-09-04 11:31:06 +00:00
  • bd88eced84 README: state the container-lint claim as what is actually true user 2026-09-04 11:27:49 +00:00
  • 956870889f Update the make variable header to match the ?= and prefix rules user 2026-09-04 11:19:45 +00:00
  • 18b0f039b5 Pin the export/override prefix and ?= first-wins with tests user 2026-09-04 11:18:19 +00:00
  • 18226d345b WIP: fix export/override prefix and ?= first-wins in make variable parser user 2026-09-04 11:17:32 +00:00
  • 075b1bb921 Expand single-line make variables in the lint-once resolver clawbot 2026-09-04 11:05:20 +00:00
  • ff4cc63c8b Name the define/endef hole in the lint-once header clawbot 2026-09-04 10:55:41 +00:00
  • f4ecef8820 Follow make conditionals and semicolon recipes in lint-once clawbot 2026-09-04 10:54:24 +00:00
  • 9ed92e1231 Format the lint-once resolver changes clawbot 2026-09-04 10:31:40 +00:00
  • 8bf5138582 WIP: follow Makefile prerequisites and $(MAKE) in lint-once clawbot 2026-09-04 10:05:38 +00:00
  • 2bfa11c10c Walk the path CI runs in lint-once, and pin the branch the container installs (closes #33) sneak 2026-08-10 13:41:12 +00:00
  • a73f0abbe8 Check formatting once per make check, in the container (closes #29) sneak 2026-08-10 13:05:03 +00:00
  • fed39d19cf Run all linting in Docker via Dockerfile.lint (closes #30) sneak 2026-08-10 12:39:23 +00:00
  • 156fe871e8 Make the image build multi-stage and cache-proof (closes #4) sneak 2026-08-09 14:38:32 +00:00
  • 118f8e22c3 Add failing tests for the project name and build context sneak 2026-08-09 14:27:50 +00:00
  • 69bd6d1539 Compile bin/ alongside src/ so the package can be built (closes #3) sneak 2026-08-09 10:06:31 +00:00
  • d79ed83f4d Add failing tests for the package entrypoint contract sneak 2026-08-09 10:01:32 +00:00
  • 348f23bac9 Narrow the replay errno set to failures that prove no connection existed sneak 2026-08-09 05:41:59 +00:00
  • f3cf4af833 Retry transient network failures with exponential backoff (closes #2) sneak 2026-08-09 05:21:31 +00:00
  • 0cbe338b58 Add failing tests for the download retry policy sneak 2026-08-09 05:11:07 +00:00
  • 937bcb7aee Guard streamTagFinal() against being made eager sneak 2026-08-09 02:45:35 +00:00
  • 8a200be8a7 Read TAG_FINAL from libsodium, detect partial chunks, cover the atomic write sneak 2026-08-09 02:23:39 +00:00
  • 99905277a3 Verify secretstream TAG_FINAL and write downloads atomically (closes #1) sneak 2026-08-09 01:59:28 +00:00
  • 1f894bad0e Add failing tests for download truncation detection and atomic writes sneak 2026-08-09 01:51:49 +00:00
  • 2039608c07 Refresh vendored REPO_POLICIES.md from prompts repo sneak 2026-07-07 00:21:00 +02:00
  • 4f506b0155 Adopt scripts-to-rule-them-all: script/ entrypoints, Makefile shims sneak 2026-07-07 00:20:19 +02:00
  • dc0dd11f19 Format TODO.md with prettier (make fmt) sneak 2026-07-06 21:28:18 +02:00
  • 84554a85ad Add standard Workflow section to TODO.md sneak 2026-07-06 21:06:40 +02:00
  • 88510a3ff5 Add TODO.md sneak 2026-07-06 20:35:46 +02:00
  • 6c26e3ccb7 Merge: skip deleted-collection tombstones in listCollections sneak 2026-06-10 11:49:48 -07:00
  • d0b4ee979e Green: filter isDeleted tombstones out of listCollections sneak 2026-06-10 11:49:45 -07:00
  • cb9ac29cb4 Red: listCollections must drop deleted-collection tombstones sneak 2026-06-10 11:49:11 -07:00
  • 6a9e41a2ee Merge: decrypt collections shared by other users (sealed-box keys) sneak 2026-06-10 11:46:54 -07:00
  • 15d2effc2d Green: unseal shared collection keys with the account keypair sneak 2026-06-10 11:46:51 -07:00
  • 59e0aa7d47 Red: shared collections arrive as sealed boxes with no keyDecryptionNonce sneak 2026-06-10 11:41:36 -07:00
  • b86ac2cd20 Merge: fix dual-2FA login against real server (empty-string fields) sneak 2026-06-10 11:26:18 -07:00