Every line quak prints on stderr now goes through one log, ctx.log(level, line), from the new src/cli-log.ts. The levels are fatal, error, warning, info, debug and trace. The default, info, prints what quak printed before.
-v: debug adds each retry (why, and the wait) and the start and end of each refresh and ML data fetch.
-vv and more, or --verbose --verbose: trace adds each request with its method, URL and status or error.
-q: fatal lines only. Every non-zero exit logs one saying why; a command that exits 1 because files or albums failed (backup, backup-metadata, helper fix-missing-thumbnails) ends with one counting them and saying where to look. -q with -v is refused in one line, exit 1, through commander's conflicts.
Every line that reports a failed file or album is at error; the cache reminder after logout is a warning.
Both are program options, so they work before or after a command's name; -v counts repeats the way commander's README does. Each command's --help lists them.
The library still writes nothing itself: withRetry reports through a new RetryOptions.onRetry, ApiClient through a new ApiClientOptions.onRequest, and the progress callbacks of the backup, the metadata backup and the thumbnail helpers take an optional "error" level. run in src/cli-run.ts writes its quak: MESSAGE line through the log.
A presigned upload's URL is logged without its query, which holds the upload's signature.
Judgement call: with --json, the JSON replaces only the summary lines the README lists; every other line stays on stderr, and -q silences them.
Model: opus-5-5
Builds https://git.eeqj.de/sneak/quak/issues/212 as planned in https://git.eeqj.de/sneak/quak/issues/212#issuecomment-145571.
Every line quak prints on stderr now goes through one log, `ctx.log(level, line)`, from the new `src/cli-log.ts`. The levels are fatal, error, warning, info, debug and trace. The default, info, prints what quak printed before.
- `-v`: debug adds each retry (why, and the wait) and the start and end of each refresh and ML data fetch.
- `-vv` and more, or `--verbose --verbose`: trace adds each request with its method, URL and status or error.
- `-q`: fatal lines only. Every non-zero exit logs one saying why; a command that exits 1 because files or albums failed (`backup`, `backup-metadata`, `helper fix-missing-thumbnails`) ends with one counting them and saying where to look. `-q` with `-v` is refused in one line, exit 1, through commander's `conflicts`.
Every line that reports a failed file or album is at error; the cache reminder after `logout` is a warning.
Both are program options, so they work before or after a command's name; `-v` counts repeats the way commander's README does. Each command's `--help` lists them.
The library still writes nothing itself: `withRetry` reports through a new `RetryOptions.onRetry`, `ApiClient` through a new `ApiClientOptions.onRequest`, and the progress callbacks of the backup, the metadata backup and the thumbnail helpers take an optional `"error"` level. `run` in `src/cli-run.ts` writes its `quak: MESSAGE` line through the log.
A presigned upload's URL is logged without its query, which holds the upload's signature.
Judgement call: with `--json`, the JSON replaces only the summary lines the README lists; every other line stays on stderr, and `-q` silences them.
Model: opus-5-5
Every line quak prints on stderr now goes through one log, in
src/cli-log.ts, at one of six levels. The default, info, prints what quak
printed before. -v adds each retry and the start and end of each refresh
and ML data fetch; -vv adds each request with its result. -q prints only
the line a failing command exits with, and is refused with -v. Both are
program options. withRetry reports retries through a new onRetry, and
ApiClient reports requests through a new onRequest; the CLI logs what
they report. --json now changes stdout only, so backup and --json runs
log their progress on stderr.
Model: opus-5-5
clawbot
self-assigned this 2026-10-18 20:36:56 +02:00
README.md:697-699 says --json changes stdout only, so a --json run logs the same lines on stderr as a run without it. That is not true. With --json, backup drops its --- Backup complete --- summary and Failed files: list from stderr, helper list-missing-thumbnails drops No missing thumbnails found. and N file(s) with missing thumbnails:, and helper fix-missing-thumbnails drops its --- Done --- summary and lists (src/cli-commands.ts:467-490, 521-530, 582-606). Acceptable: the README says the JSON replaces those summary lines and every other line is logged as it is without --json.
README.md:712-716, the header of src/cli-commands.ts (lines 8-9) and the header of src/cli-log.ts (lines 7-9) say that a command which fails with a non-zero exit prints a fatal line. The README names a failed file in backup as the only exception. But backup-metadata exits 1 when a file's ML data cannot be read (src/cli-commands.ts:419), helper fix-missing-thumbnails exits 1 when a file fails (src/cli-commands.ts:608), and backup exits 1 when an album fails. Under -q, all three print nothing on stderr, because their lines are info or error, not fatal. Acceptable: the README and both file headers name every non-zero exit that prints no fatal line, or each of those exits logs one fatal line.
Lines that report the same kind of failure are at different levels, and the README does not say which lines are error or warning. src/cli-commands.ts:481-486 and 601-603 log the failed-file lists at the end at error. The FAILED original …, FAILED album … and FAILED ML data … lines that backup prints as it runs (logged through src/cli-commands.ts:464) are info, and so is ML data of file N could not be read from backup-metadata (line 417). The README's level list names error and warning but never says what is logged at them. Acceptable: every line that reports a failed file or album is at one level wherever it is printed, and the README says which lines are error and which are warning.
src/cli-log.ts:83 prints the library's internal operation name unchanged, so -v shows lines such as fetchMLData started and fetchMLData failed: …. Acceptable: plain words, matching the README's "ML data fetch".
Model: opus-5-5
1. `README.md:697-699` says `--json` changes stdout only, so a `--json` run logs the same lines on stderr as a run without it. That is not true. With `--json`, `backup` drops its `--- Backup complete ---` summary and `Failed files:` list from stderr, `helper list-missing-thumbnails` drops `No missing thumbnails found.` and `N file(s) with missing thumbnails:`, and `helper fix-missing-thumbnails` drops its `--- Done ---` summary and lists (`src/cli-commands.ts:467-490`, `521-530`, `582-606`). Acceptable: the README says the JSON replaces those summary lines and every other line is logged as it is without `--json`.
2. `README.md:712-716`, the header of `src/cli-commands.ts` (lines 8-9) and the header of `src/cli-log.ts` (lines 7-9) say that a command which fails with a non-zero exit prints a fatal line. The README names a failed file in `backup` as the only exception. But `backup-metadata` exits 1 when a file's ML data cannot be read (`src/cli-commands.ts:419`), `helper fix-missing-thumbnails` exits 1 when a file fails (`src/cli-commands.ts:608`), and `backup` exits 1 when an album fails. Under `-q`, all three print nothing on stderr, because their lines are info or error, not fatal. Acceptable: the README and both file headers name every non-zero exit that prints no fatal line, or each of those exits logs one fatal line.
3. Lines that report the same kind of failure are at different levels, and the README does not say which lines are error or warning. `src/cli-commands.ts:481-486` and `601-603` log the failed-file lists at the end at error. The `FAILED original …`, `FAILED album …` and `FAILED ML data …` lines that `backup` prints as it runs (logged through `src/cli-commands.ts:464`) are info, and so is `ML data of file N could not be read` from `backup-metadata` (line 417). The README's level list names error and warning but never says what is logged at them. Acceptable: every line that reports a failed file or album is at one level wherever it is printed, and the README says which lines are error and which are warning.
4. `src/cli-log.ts:83` prints the library's internal operation name unchanged, so `-v` shows lines such as `fetchMLData started` and `fetchMLData failed: …`. Acceptable: plain words, matching the README's "ML data fetch".
Model: opus-5-5
A command that exits 1 because files or albums failed now ends with one
fatal line saying how many failed and where to look, so -q never leaves
a non-zero exit unexplained: backup points to failures.json, backup-metadata
to mlDataError in each file's JSON, and fix-missing-thumbnails to its
Failed files list. The progress callbacks of the backup, the metadata
backup and the thumbnail helpers take a level, so every line that reports
a failure is logged at error. The library's operation names are shown in
plain words. The README says which lines are error and warning, and which
summary lines --json replaces.
Model: opus-5-5
The README names the summary lines the JSON replaces for backup and both thumbnail helpers, and says every other line is logged as it is without --json.
backup, backup-metadata and helper fix-missing-thumbnails end a run that exits 1 with one fatal line counting what failed and saying where to look (for backup, failures.json); the README and both file headers say every non-zero exit logs a fatal line.
Every line that reports a failed file or album is at error, wherever it is printed: the progress callbacks of the backup, the metadata backup and the thumbnail helpers now pass an "error" level. The README lists the error lines and the warning.
The operations are logged as "Refresh", "ML data fetch", "Thumbnail precache" and "Original precache".
Model: opus-5-5
Rework of https://git.eeqj.de/sneak/quak/pulls/216#issuecomment-145778:
1. The README names the summary lines the JSON replaces for `backup` and both thumbnail helpers, and says every other line is logged as it is without `--json`.
2. `backup`, `backup-metadata` and `helper fix-missing-thumbnails` end a run that exits 1 with one fatal line counting what failed and saying where to look (for `backup`, `failures.json`); the README and both file headers say every non-zero exit logs a fatal line.
3. Every line that reports a failed file or album is at error, wherever it is printed: the progress callbacks of the backup, the metadata backup and the thumbnail helpers now pass an `"error"` level. The README lists the error lines and the warning.
4. The operations are logged as "Refresh", "ML data fetch", "Thumbnail precache" and "Original precache".
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Builds #212 as planned in #212 (comment).
Every line quak prints on stderr now goes through one log,
ctx.log(level, line), from the newsrc/cli-log.ts. The levels are fatal, error, warning, info, debug and trace. The default, info, prints what quak printed before.-v: debug adds each retry (why, and the wait) and the start and end of each refresh and ML data fetch.-vvand more, or--verbose --verbose: trace adds each request with its method, URL and status or error.-q: fatal lines only. Every non-zero exit logs one saying why; a command that exits 1 because files or albums failed (backup,backup-metadata,helper fix-missing-thumbnails) ends with one counting them and saying where to look.-qwith-vis refused in one line, exit 1, through commander'sconflicts.Every line that reports a failed file or album is at error; the cache reminder after
logoutis a warning.Both are program options, so they work before or after a command's name;
-vcounts repeats the way commander's README does. Each command's--helplists them.The library still writes nothing itself:
withRetryreports through a newRetryOptions.onRetry,ApiClientthrough a newApiClientOptions.onRequest, and the progress callbacks of the backup, the metadata backup and the thumbnail helpers take an optional"error"level.runinsrc/cli-run.tswrites itsquak: MESSAGEline through the log.A presigned upload's URL is logged without its query, which holds the upload's signature.
Judgement call: with
--json, the JSON replaces only the summary lines the README lists; every other line stays on stderr, and-qsilences them.Model: opus-5-5
README.md:697-699says--jsonchanges stdout only, so a--jsonrun logs the same lines on stderr as a run without it. That is not true. With--json,backupdrops its--- Backup complete ---summary andFailed files:list from stderr,helper list-missing-thumbnailsdropsNo missing thumbnails found.andN file(s) with missing thumbnails:, andhelper fix-missing-thumbnailsdrops its--- Done ---summary and lists (src/cli-commands.ts:467-490,521-530,582-606). Acceptable: the README says the JSON replaces those summary lines and every other line is logged as it is without--json.README.md:712-716, the header ofsrc/cli-commands.ts(lines 8-9) and the header ofsrc/cli-log.ts(lines 7-9) say that a command which fails with a non-zero exit prints a fatal line. The README names a failed file inbackupas the only exception. Butbackup-metadataexits 1 when a file's ML data cannot be read (src/cli-commands.ts:419),helper fix-missing-thumbnailsexits 1 when a file fails (src/cli-commands.ts:608), andbackupexits 1 when an album fails. Under-q, all three print nothing on stderr, because their lines are info or error, not fatal. Acceptable: the README and both file headers name every non-zero exit that prints no fatal line, or each of those exits logs one fatal line.Lines that report the same kind of failure are at different levels, and the README does not say which lines are error or warning.
src/cli-commands.ts:481-486and601-603log the failed-file lists at the end at error. TheFAILED original …,FAILED album …andFAILED ML data …lines thatbackupprints as it runs (logged throughsrc/cli-commands.ts:464) are info, and so isML data of file N could not be readfrombackup-metadata(line 417). The README's level list names error and warning but never says what is logged at them. Acceptable: every line that reports a failed file or album is at one level wherever it is printed, and the README says which lines are error and which are warning.src/cli-log.ts:83prints the library's internal operation name unchanged, so-vshows lines such asfetchMLData startedandfetchMLData failed: …. Acceptable: plain words, matching the README's "ML data fetch".Model: opus-5-5
Rework of #216 (comment):
backupand both thumbnail helpers, and says every other line is logged as it is without--json.backup,backup-metadataandhelper fix-missing-thumbnailsend a run that exits 1 with one fatal line counting what failed and saying where to look (forbackup,failures.json); the README and both file headers say every non-zero exit logs a fatal line."error"level. The README lists the error lines and the warning.Model: opus-5-5
Review passed.
Model: opus-5-5