docs: raw fetch --html record and kb/CONTRACT.md path budget follow the folder accept (#112)
CI / verify (push) Successful in 5m40s
CI / pwsh (push) Successful in 2m10s
Release / release (push) Successful in 32s

Files changed:
- CHANGES.md
- VERSION
- kb/CONTRACT.md
- tools/CONTRACT.md
- tools/chemenu/commands/raw_cmd.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
torbenandClaude Opus 5.5 committed 2026-10-03 10:31:01 +02:00
1 parent 59c06e5ddc
commit 100ace846e
5 files changed
+21 -8

No files matched your search

+12 -1
View File
@@ -59,7 +59,7 @@ concern - readable here, never shipped as something to parse.
---
## 8.0.0-beta.27 - 2026-10-03 - incoming/ as a queue: raw pending picks the next entry, raw accept takes a whole folder
## 8.0.0-beta.28 - 2026-10-03 - raw fetch --html record and kb/CONTRACT.md path budget follow the folder accept
**Author:** Torben Nehmer
@@ -138,8 +138,19 @@ concern - readable here, never shipped as something to parse.
- raw/CONTRACT.md points at the path budget for a name accepted from incoming/
- preflight.ps1: the asset-mode error helper is Exit-Asset, so PSScriptAnalyzer passes
- kb/CONTRACT.md: an external article's raw_files point under raw/, a raw fetch capture names both files
- raw fetch --html record and kb/CONTRACT.md path budget follow the folder accept
<!-- /wikitool:bumps -->
### raw fetch --html record and kb/CONTRACT.md path budget follow the folder accept
Two sentences the previous change left behind, found in its closing check. `raw fetch --html`'s
command record still named a file "not under `incoming/`" as its refusal, though since the
previous change a saved page inside a subdirectory of `incoming/` is refused too; it now says
"not directly in `incoming/`" and names moving the file up as the fix. `kb/CONTRACT.md`'s path
budget paragraph named only renaming a file in `incoming/` as the remedy for `raw accept`; for a
folder the remedy is a shorter folder name or shorter names inside it, and it now says so. No
behaviour change.
### incoming/ as a queue: raw pending picks the next entry, raw accept takes a whole folder
**Breaking.** A subdirectory of `incoming/` was tolerated and ignored since the date shard
+1 -1
View File
@@ -1 +1 @@
8.0.0-beta.27
8.0.0-beta.28
+2 -1
View File
@@ -147,7 +147,8 @@ checks is the other half of the same sum.
`wikitool new` (every root), `wikitool rename` (`--to` only, also under `--dry-run`), `wikitool
move` (a single page, and `--reconcile`, which skips and names such a target) and `wikitool raw
accept` (the target under `raw/`; the remedy is renaming the file in `incoming/`) refuse a path
accept` (the target under `raw/`; the remedy is renaming the file in `incoming/` - for a folder,
a shorter folder name or shorter names inside it) refuse a path
over the budget before writing anything. `wikitool lint` reports existing files over it as Long
Paths - advisory, not a hard error, so a corpus that predates the budget still passes
`--fail-on-error`; the fix is `wikitool rename`.
+2 -2
View File
@@ -1415,14 +1415,14 @@ Capture a web page the user names into `incoming/`: the HTML as received plus a
- 1 The URL is not `http`/`https` (also after a redirect), or neither or both of `<url>` and `--html` were given
- 1 A target file already exists in `incoming/`
- 1 The server answered with an HTTP error, could not be reached, took longer than 30 s, or sent more than 25 MiB
- 1 raw fetch --html: `--url` is missing, the file is not under `incoming/` or does not exist, or `incoming/<stem>.md` already exists
- 1 raw fetch --html: `--url` is missing, the file is not directly in `incoming/` or does not exist, or `incoming/<stem>.md` already exists
**ON FAILURE**
- The URL is not `http`/`https` (also after a redirect), or neither or both of `<url>` and `--html` were given -> Fix the call and retry once. A local file is dropped into `incoming/` by hand, not fetched
- A target file already exists in `incoming/` -> Nothing was written or overwritten. Accept or remove what is there, or pass `--name <stem>`, then retry once
- The server answered with an HTTP error, could not be reached, took longer than 30 s, or sent more than 25 MiB -> Nothing was written. An HTTP 4xx is not fixed by retrying - check the URL with the user; for a paywall or login, save the page in a browser and use `--html`. An unreachable host or a timeout may be retried once
- raw fetch --html: `--url` is missing, the file is not under `incoming/` or does not exist, or `incoming/<stem>.md` already exists -> Fix the named argument and retry once - nothing was written
- raw fetch --html: `--url` is missing, the file is not directly in `incoming/` or does not exist, or `incoming/<stem>.md` already exists -> Fix the named argument and retry once - nothing was written. A saved page inside a subdirectory of `incoming/` is moved up into `incoming/` first
**NEVER**
+4 -3
View File
@@ -1229,9 +1229,10 @@ def _fetch_html_file(html: Path, source_url: Optional[str]) -> None:
),
cli_contract.Failure(
label="raw fetch --html",
cause="`--url` is missing, the file is not under `incoming/` or does not exist, or "
"`incoming/<stem>.md` already exists",
reaction="Fix the named argument and retry once - nothing was written",
cause="`--url` is missing, the file is not directly in `incoming/` or does not "
"exist, or `incoming/<stem>.md` already exists",
reaction="Fix the named argument and retry once - nothing was written. A saved page "
"inside a subdirectory of `incoming/` is moved up into `incoming/` first",
),
),
examples=(