1 Commits
Author SHA1 Message Date
sneak 979f1b5749 README: five 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)). Each
is replaced with the gate's rewrite after a check against the code: the
keywords score sentence is split in two; `-1` is dropped from the
invalid ID examples, since the option parser refuses a positional `-1`
as an unknown option before the ID check; `mlData` drops the whole
`clip` block, as `src/backup.ts` and `src/metadata-backup.ts` do; a
collection name gets its ID at 250 bytes and a file name at 255, as
`uniqueNames` does; `lastTriedAt` is one timestamp per run. Nothing
else changes; `make fmt` reflowed the touched paragraphs.

Model: fable-5-1
2026-10-26 17:16:04 +00:00
+11 -12
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
`fix-missing-thumbnails --file` is written in decimal digits and is at
most 9007199254740991. Anything else, such as `0x10`, `1e3` or `-1`, is refused
before any request is sent. The command logs `Invalid file ID: <arg>` or
most 9007199254740991. Anything else, such as `0x10` or `1e3`, is refused before
any request is sent. The command logs `Invalid file ID: <arg>` or
`Invalid collection ID: <arg>` and exits 1.
### What quak prints
@@ -777,10 +777,9 @@ 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
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
does a collection name longer than 250 bytes, which leaves room for `.json`.
Either name is then cut short before the ID, just far enough to fit. IDs never
change, so a name stays the same from run to run until such a clash appears or
goes away.
does a collection name longer than 250 bytes, which leaves room for `.json`. It
is then cut short before the ID, just far enough to fit. IDs never 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
date folders and is not one of its current links, yours included. A file or
@@ -835,8 +834,8 @@ Each entry holds:
- `fileID` and `title`;
- `classification`: the kind of failure;
- `attempts`: how many runs in a row have failed the file;
- `lastTriedAt`: when the run that last tried it finished its refresh, as a Unix
time in milliseconds;
- `lastTriedAt`: the start of the run that last tried it, as a Unix time in
milliseconds;
- `error`: the error, as quak printed it.
The kinds are:
@@ -1079,10 +1078,10 @@ cached, so the next fetch asks for it again. The reasons are kept in memory
only.
`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. `close()`
returns a promise. It resolves once that refresh, the machine-learning fetch and
the background downloads already running have all finished. The cache directory
can then be removed. After `close()`, `fresh()`, `freshCollections()`,
refresh in flight is left to finish, with its write to the cache. The promise
`close()` returns resolves once that refresh, the machine-learning fetch and the
background downloads already running have all finished. The cache directory can
then be removed. After `close()`, `fresh()`, `freshCollections()`,
`freshFiles()` and `lib.backup()` reject with `the library is closed`.
### Default reads and fresh reads