2 Commits
Author SHA1 Message Date
clawbot aeb275e137 README: the close() sentence split in two (closes #231)
check / check (push) Canceled after 0s
The sentence in "Opening a library" had a relative clause with its
"that" left out, so "returns resolves" read as two verbs in a row. It
is now two sentences; the behaviour described is unchanged and matches
`close()` in `src/library/index.ts`.

Model: fable-5-1 (change); opus-5-5 (landing message)
2026-10-26 19:32:03 +01:00
clawbot 67794bf5f8 README: four sentences fixed for the documents gate (closes #229)
check / check (push) Canceled after 0s
The documents gate on `next` failed five README sentences
(#219 (comment)). Four
are rewritten after a check against the code:

- the keywords score sentence is split in two;
- `mlData` drops the whole `clip` block, as `src/backup.ts` and
  `src/metadata-backup.ts` do;
- a file name gets its ID past 255 bytes and a collection name past
  250, and either is then cut short, as `uniqueNames` does;
- `lastTriedAt` is taken once per run, after its refresh.

The IDs sentence keeps `-1`: the pinned option parser passes a negative
number to a command with no subcommands as an argument, so
`quak get -1` reaches the ID check. Nothing else changes; `make fmt`
reflowed the touched paragraphs.

Model: fable-5-1 (change); opus-5-5 (landing message)
2026-10-26 18:59:28 +01:00
+12 -11
View File
@@ -472,8 +472,8 @@ fresh reads"). `backup` counts it as failed (see "What quak cannot decrypt").
A collection ID or file ID given to `files`, `get`, `get-thumb` or A collection ID or file ID given to `files`, `get`, `get-thumb` or
`fix-missing-thumbnails --file` is written in decimal digits and is at `fix-missing-thumbnails --file` is written in decimal digits and is at
most 9007199254740991. Anything else, such as `0x10` or `1e3`, is refused before most 9007199254740991. Anything else, such as `0x10`, `1e3` or `-1`, is refused
any request is sent. The command logs `Invalid file ID: <arg>` or before any request is sent. The command logs `Invalid file ID: <arg>` or
`Invalid collection ID: <arg>` and exits 1. `Invalid collection ID: <arg>` and exits 1.
### What quak prints ### What quak prints
@@ -777,9 +777,10 @@ ignoring case, get their IDs added before the extension: `IMG_0001 (12345).JPG`
and `IMG_0001 (12346).JPG`. A collection named like another collection's JSON and `IMG_0001 (12346).JPG`. A collection named like another collection's JSON
file, such as `Trip.json` beside `Trip`, also gets its ID added. A file name file, such as `Trip.json` beside `Trip`, also gets its ID added. A file name
longer than 255 bytes, the limit on most file systems, gets its ID added too. So longer than 255 bytes, the limit on most file systems, gets its ID added too. So
does a collection name longer than 250 bytes, which leaves room for `.json`. It does a collection name longer than 250 bytes, which leaves room for `.json`.
is then cut short before the ID, just far enough to fit. IDs never change, so a Either name is then cut short before the ID, just far enough to fit. IDs never
name stays the same from run to run until such a clash appears or goes away. change, so a name stays the same from run to run until such a clash appears or
goes away.
Each run removes every symlink in a collection's directory that points into the Each run removes every symlink in a collection's directory that points into the
date folders and is not one of its current links, yours included. A file or date folders and is not one of its current links, yours included. A file or
@@ -834,8 +835,8 @@ Each entry holds:
- `fileID` and `title`; - `fileID` and `title`;
- `classification`: the kind of failure; - `classification`: the kind of failure;
- `attempts`: how many runs in a row have failed the file; - `attempts`: how many runs in a row have failed the file;
- `lastTriedAt`: the start of the run that last tried it, as a Unix time in - `lastTriedAt`: when the run that last tried it finished its refresh, as a Unix
milliseconds; time in milliseconds;
- `error`: the error, as quak printed it. - `error`: the error, as quak printed it.
The kinds are: The kinds are:
@@ -1078,10 +1079,10 @@ cached, so the next fetch asks for it again. The reasons are kept in memory
only. only.
`lib.close()` stops the background timer. It can be called more than once. A `lib.close()` stops the background timer. It can be called more than once. A
refresh in flight is left to finish, with its write to the cache. The promise refresh in flight is left to finish, with its write to the cache. `close()`
`close()` returns resolves once that refresh, the machine-learning fetch and the returns a promise. It resolves once that refresh, the machine-learning fetch and
background downloads already running have all finished. The cache directory can the background downloads already running have all finished. The cache directory
then be removed. After `close()`, `fresh()`, `freshCollections()`, can then be removed. After `close()`, `fresh()`, `freshCollections()`,
`freshFiles()` and `lib.backup()` reject with `the library is closed`. `freshFiles()` and `lib.backup()` reject with `the library is closed`.
### Default reads and fresh reads ### Default reads and fresh reads