tools: export run/upload collect - Fehlertexte im Kommandovertrag nennen die Backup-Ordner und die Laufzeit-Ablehnung von Backup- und Exportdaten (#216); 10.1.0-beta.17
CI / verify (push) Successful in 7m51s
CI / pwsh (push) Successful in 2m41s
Release / converters (push) Successful in 26s
Release / release (push) Successful in 34s
Release / wiki-mirror (push) Skipped

Files changed:
- CHANGES.md
- VERSION
- docs/reference/commands/exports.md
- docs/reference/commands/raw-material-and-uploads.md
- tools/CONTRACT.md
- tools/chemenu/commands/export_cmd.py
- tools/chemenu/commands/upload_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-16 11:57:23 +02:00
1 parent 02bf3b0403
commit 77fb427efd
7 files changed
+21 -17

No files matched your search

+2 -1
View File
@@ -14,7 +14,7 @@ place only: `instructions/dev/version-parts.md` § The candidate model.
---
## 10.1.0-beta.16 - 2026-10-16 - Export- und Eingangsordner dürfen im Backup-Ziel neben git/ und den Maschinenordnern liegen: die Überschneidungsregel gilt nur noch für <ziel>/git und den eigenen Maschinenordner, upload collect und export run weisen Ordner in oder unter Backup-/Export-Daten fremder Maschinen zur Laufzeit ab
## 10.1.0-beta.17 - 2026-10-16 - export run/upload collect: Fehlertexte im Kommandovertrag nennen die Backup-Ordner statt backup.target und die Laufzeit-Ablehnung von Backup- und Exportdaten (#216)
**Author:** Torben Nehmer
@@ -38,6 +38,7 @@ place only: `instructions/dev/version-parts.md` § The candidate model.
- read-page-images: liest der Harness mit Subagenten, öffnet die Ingest-Sitzung die Seitenbilder gar nicht selbst, auch nicht zur Kontrolle (#234)
- wiki-ingest step 1 sends the session to read-page-images.md before the discussion, so up to the threshold the page images are no question for the user
- gates.md/session-setup.md: die Regel für eine neue Session-Id steht nur noch in gates.md, mit dem ausdrücklich gewünschten weiteren Ingest-Lauf als zweiter Grenze neben plan.md (#219)
- export run/upload collect: Fehlertexte im Kommandovertrag nennen die Backup-Ordner statt backup.target und die Laufzeit-Ablehnung von Backup- und Exportdaten (#216)
<!-- /wikitool:bumps -->
### Konverter-Tests gegen echte Dokumente im privaten Repository
+1 -1
View File
@@ -1 +1 @@
10.1.0-beta.16
10.1.0-beta.17
+2 -2
View File
@@ -130,9 +130,9 @@ tools/wikitool export run work-notes
**Exit codes**
- `0` - success
- `1` - No `export` section, an unknown target name, or a broken section (a predicate that does not parse, a path inside the instance or in the way of another target, an `intake` folder or the backup target)
- `1` - No `export` section, an unknown target name, or a broken section (a predicate that does not parse, a path inside the instance or in the way of another target, an `intake` folder or a folder the backup writes into: `<backup.target>/git` or this machine's folder)
- `1` - `kb/` or `types/` has uncommitted changes, the instance is not a git checkout, or a page under `kb/` has unreadable frontmatter
- `1` - A target failed: a foreign folder, a file changed in the target, an empty selection, an unknown field, a converter that did not exit 0
- `1` - A target failed: a foreign folder, a folder in backup data, a file changed in the target, an empty selection, an unknown field, a converter that did not exit 0
**See also**
@@ -548,7 +548,7 @@ tools/wikitool upload collect onedrive
- `0` - success
- `1` - Unknown channel name, an `mcp` channel as argument, a malformed `intake` section, or an `mcp-upload/` that still holds submissions
- `1` - A channel or a file failed (folder missing, program exited non-zero, timed out or could not be started, a source that could not be removed)
- `1` - A channel or a file failed (folder missing, a folder in backup or export data, program exited non-zero, timed out or could not be started, a source that could not be removed)
**See also**
+6 -6
View File
@@ -1896,12 +1896,12 @@ Pull material from the configured `folder` and `command` intake channels into th
- 0 success
- 1 Unknown channel name, an `mcp` channel as argument, a malformed `intake` section, or an `mcp-upload/` that still holds submissions
- 1 A channel or a file failed (folder missing, program exited non-zero, timed out or could not be started, a source that could not be removed)
- 1 A channel or a file failed (folder missing, a folder in backup or export data, program exited non-zero, timed out or could not be started, a source that could not be removed)
**ON FAILURE**
- Unknown channel name, an `mcp` channel as argument, a malformed `intake` section, or an `mcp-upload/` that still holds submissions -> Fix the named cause and retry once
- A channel or a file failed (folder missing, program exited non-zero, timed out or could not be started, a source that could not be removed) -> Not fixed by retrying unchanged - read the per-channel lines, fix the channel's folder or program, then run `collect <channel>` for that channel only
- A channel or a file failed (folder missing, a folder in backup or export data, program exited non-zero, timed out or could not be started, a source that could not be removed) -> Not fixed by retrying unchanged - read the per-channel lines, fix the channel's folder or program, then run `collect <channel>` for that channel only. A folder in backup or export data is the user's to move; never remove a manifest to make it pass
**NEVER**
@@ -2439,15 +2439,15 @@ Write the derived, read-only reading copy of `kb/` into the folders the `export`
**EXIT STATUS**
- 0 success
- 1 No `export` section, an unknown target name, or a broken section (a predicate that does not parse, a path inside the instance or in the way of another target, an `intake` folder or the backup target)
- 1 No `export` section, an unknown target name, or a broken section (a predicate that does not parse, a path inside the instance or in the way of another target, an `intake` folder or a folder the backup writes into: `<backup.target>/git` or this machine's folder)
- 1 `kb/` or `types/` has uncommitted changes, the instance is not a git checkout, or a page under `kb/` has unreadable frontmatter
- 1 A target failed: a foreign folder, a file changed in the target, an empty selection, an unknown field, a converter that did not exit 0
- 1 A target failed: a foreign folder, a folder in backup data, a file changed in the target, an empty selection, an unknown field, a converter that did not exit 0
**ON FAILURE**
- No `export` section, an unknown target name, or a broken section (a predicate that does not parse, a path inside the instance or in the way of another target, an `intake` folder or the backup target) -> Show the message to the user; the section is theirs to write by hand, never yours
- No `export` section, an unknown target name, or a broken section (a predicate that does not parse, a path inside the instance or in the way of another target, an `intake` folder or a folder the backup writes into: `<backup.target>/git` or this machine's folder) -> Show the message to the user; the section is theirs to write by hand, never yours
- `kb/` or `types/` has uncommitted changes, the instance is not a git checkout, or a page under `kb/` has unreadable frontmatter -> Fix the named pages, or publish the changes first, then retry once
- A target failed: a foreign folder, a file changed in the target, an empty selection, an unknown field, a converter that did not exit 0 -> Show the target's reason to the user; the other targets were still served. Never delete or edit files in a target folder to make a run pass
- A target failed: a foreign folder, a folder in backup data, a file changed in the target, an empty selection, an unknown field, a converter that did not exit 0 -> Show the target's reason to the user; the other targets were still served. Never delete or edit files in a target folder to make a run pass
**NEVER**
+4 -3
View File
@@ -506,7 +506,8 @@ def export_guidelines_command(
cli_contract.Failure(
cause="No `export` section, an unknown target name, or a broken section (a predicate "
"that does not parse, a path inside the instance or in the way of another target, an "
"`intake` folder or the backup target)",
"`intake` folder or a folder the backup writes into: `<backup.target>/git` or this "
"machine's folder)",
reaction="Show the message to the user; the section is theirs to write by hand, never "
"yours",
),
@@ -516,8 +517,8 @@ def export_guidelines_command(
reaction="Fix the named pages, or publish the changes first, then retry once",
),
cli_contract.Failure(
cause="A target failed: a foreign folder, a file changed in the target, an empty "
"selection, an unknown field, a converter that did not exit 0",
cause="A target failed: a foreign folder, a folder in backup data, a file changed in "
"the target, an empty selection, an unknown field, a converter that did not exit 0",
reaction="Show the target's reason to the user; the other targets were still served. "
"Never delete or edit files in a target folder to make a run pass",
),
+5 -3
View File
@@ -341,10 +341,12 @@ def _result_lines(result: collect_module.ChannelResult) -> list[str]:
reaction="Fix the named cause and retry once",
),
cli_contract.Failure(
cause="A channel or a file failed (folder missing, program exited non-zero, timed out or "
"could not be started, a source that could not be removed)",
cause="A channel or a file failed (folder missing, a folder in backup or export data, "
"program exited non-zero, timed out or could not be started, a source that could not be "
"removed)",
reaction="Not fixed by retrying unchanged - read the per-channel lines, fix the channel's "
"folder or program, then run `collect <channel>` for that channel only",
"folder or program, then run `collect <channel>` for that channel only. A folder in "
"backup or export data is the user's to move; never remove a manifest to make it pass",
),
),
examples=(