Gefunden beim Durchgang für #142 (2026-09-26). Nach dessen Regel wird eine Abweichung zwischen Text und Code nicht dort korrigiert, sondern hier erfasst.
Stand: Erledigt in 7.1.0-beta.23 (Commit 906d63f, Changelog-Text korrigiert in 685fc2e).
Befund (gegen den Baum geprüft)
sync (git fetch) und publish (git fetch, git ls-remote, git push) in tools/chemenu/commands/git_publish.py trugen network: no (Default), obwohl sie --remote ansprechen.
upstream merge (upstream_cmd.py) führt git fetch <remote> <branch> aus (außer mit --no-fetch) und trug network: no. upstream verify holt nichts ab, es liest nur bereits geholte Refs. Die erste Fassung dieses Issues hatte es fälschlich mitgezählt.
Vorher network: yes: version check, version notes, review, task new/task list/task close und doctor.
An vier Stellen stand, nur ein oder zwei Kommandos griffen aufs Netz zu:
die NOTES des version check-Datensatzes,
der Modul-Docstring von version_cmd.py,
der Docstring des Befehls version check,
der Docstring von version.fetch_latest („the one place … that talks to a remote host“). Das war auch bei enger Lesart falsch, weil die Provider für CalDAV und Super Productivity ebenfalls urllib nutzen.
Die Eigenschaft wird nur angezeigt (-h, Index, tools/CONTRACT.md), sonst liest sie kein Code.
Entscheidung
network: bedeutet jeden Netzzugriff. Das hat der Operator am 2026-09-26 entschieden. yes heißt: Mindestens ein Weg durch das Kommando kann einen Endpunkt außerhalb dieses Checkouts erreichen, entweder per HTTP-Aufruf aus wikitool selbst oder per Git-Operation gegen ein Remote (fetch, ls-remote, push).
Grund: Wer die Eigenschaft liest, will wissen, ob ein Befehl offline oder in einer Sandbox scheitern oder hängen kann und ob ein Fehler vorübergehend ist. Wer den Socket öffnet, spielt dafür keine Rolle. Verworfen wurde die Lesart „nur HTTP aus wikitool“, denn nach ihr hätte publish als netzfrei gegolten, obwohl es praktisch der netzabhängigste Befehl ist.
Präzisierungen, beide im Docstring festgehalten:
Es zählt, was möglich ist, nicht was im Normalfall passiert. --offline, --no-fetch, ein Markdown-Tracker oder ein Remote als lokaler Pfad ändern den Wert nicht.
Ein Git-Aufruf, der nur lokale Refs liest (rev-parse, rev-list, remote get-url), ist kein Netzzugriff.
Umgesetzt
Docstring von cli_contract.Network mit Bedeutung und Präzisierungen.
sync, publish und upstream merge stehen auf network=cli_contract.Network.YES, upstream verify bleibt no.
Die vier Textstellen nennen keine Zahl mehr. version check heißt jetzt „the only command whose whole job is the network call“, fetch_latest „the one place that talks to the release feed“.
Neuer Test test_network_yes_is_exactly_the_commands_that_can_reach_outside_this_checkout in tools/chemenu/tests/test_cli.py. Er prüft gegen die echte Registry, dass genau diese zehn Pfade yes tragen: sync, publish, upstream merge, version check, version notes, review, task new, task list, task close, doctor.
tools/CONTRACT.md ist per wikitool docs contract --apply regeneriert (vier Zeilen).
Patch-Bump 7.1.0-beta.22 → 7.1.0-beta.23, Impact low, mit Abschnitt in CHANGES.md. Der Abschnitt ist englisch wie die übrigen 22 des laufenden Kandidaten, und seine Überschrift entspricht dem Bump-Titel.
Doc-Pull-Through: Weder tools/README.md noch docs/ noch ein Stage-Contract beschreibt die Eigenschaft, also war dort nichts nachzuziehen.
Der Plan hatte optional vorgesehen, version notes unter SEE ALSO von version check zu ergänzen. Das entfiel, weil der Verweis dort schon stand.
Verifiziert
pytest: 1536 Tests grün. docs verify und instructions verify sauber, vor und nach dem Bump.
Die Bedeutung von network:, einschließlich „möglich statt üblich“ und „Git-Remote zählt, lokale Refs nicht“, steht im Docstring von cli_contract.Network.
sync, publish und upstream merge tragen network: yes in -h und in tools/CONTRACT.md. upstream verify trägt weiterhin no.
Jeder übrige Datensatz trägt den Wert, den diese Bedeutung verlangt, und ein Test schreibt die Menge der yes-Pfade fest.
Kein Datensatz und kein Docstring in version_cmd.py/version.py behauptet eine Anzahl oder Ausschließlichkeit netzwerkender Kommandos, die der Index oder der Code widerlegt.
docs verify, instructions verify und pytest laufen grün, und der Patch-Bump samt CHANGES.md-Text ist geschrieben.
Gefunden beim Durchgang für #142 (2026-09-26). Nach dessen Regel wird eine Abweichung zwischen Text und Code nicht dort korrigiert, sondern hier erfasst.
**Stand:** Erledigt in `7.1.0-beta.23` (Commit `906d63f`, Changelog-Text korrigiert in `685fc2e`).
## Befund (gegen den Baum geprüft)
- `sync` (`git fetch`) und `publish` (`git fetch`, `git ls-remote`, `git push`) in `tools/chemenu/commands/git_publish.py` trugen `network: no` (Default), obwohl sie `--remote` ansprechen.
- `upstream merge` (`upstream_cmd.py`) führt `git fetch <remote> <branch>` aus (außer mit `--no-fetch`) und trug `network: no`. `upstream verify` holt nichts ab, es liest nur bereits geholte Refs. Die erste Fassung dieses Issues hatte es fälschlich mitgezählt.
- Vorher `network: yes`: `version check`, `version notes`, `review`, `task new`/`task list`/`task close` und `doctor`.
- An vier Stellen stand, nur ein oder zwei Kommandos griffen aufs Netz zu:
1. die NOTES des `version check`-Datensatzes,
2. der Modul-Docstring von `version_cmd.py`,
3. der Docstring des Befehls `version check`,
4. der Docstring von `version.fetch_latest` („the one place … that talks to a remote host“). Das war auch bei enger Lesart falsch, weil die Provider für CalDAV und Super Productivity ebenfalls `urllib` nutzen.
- Die Eigenschaft wird nur angezeigt (`-h`, Index, `tools/CONTRACT.md`), sonst liest sie kein Code.
## Entscheidung
`network:` bedeutet **jeden Netzzugriff**. Das hat der Operator am 2026-09-26 entschieden. `yes` heißt: Mindestens ein Weg durch das Kommando kann einen Endpunkt außerhalb dieses Checkouts erreichen, entweder per HTTP-Aufruf aus `wikitool` selbst oder per Git-Operation gegen ein Remote (`fetch`, `ls-remote`, `push`).
Grund: Wer die Eigenschaft liest, will wissen, ob ein Befehl offline oder in einer Sandbox scheitern oder hängen kann und ob ein Fehler vorübergehend ist. Wer den Socket öffnet, spielt dafür keine Rolle. Verworfen wurde die Lesart „nur HTTP aus `wikitool`“, denn nach ihr hätte `publish` als netzfrei gegolten, obwohl es praktisch der netzabhängigste Befehl ist.
Präzisierungen, beide im Docstring festgehalten:
- Es zählt, was möglich ist, nicht was im Normalfall passiert. `--offline`, `--no-fetch`, ein Markdown-Tracker oder ein Remote als lokaler Pfad ändern den Wert nicht.
- Ein Git-Aufruf, der nur lokale Refs liest (`rev-parse`, `rev-list`, `remote get-url`), ist kein Netzzugriff.
## Umgesetzt
- Docstring von `cli_contract.Network` mit Bedeutung und Präzisierungen.
- `sync`, `publish` und `upstream merge` stehen auf `network=cli_contract.Network.YES`, `upstream verify` bleibt `no`.
- Die vier Textstellen nennen keine Zahl mehr. `version check` heißt jetzt „the only command whose whole job is the network call“, `fetch_latest` „the one place that talks to the release feed“.
- Neuer Test `test_network_yes_is_exactly_the_commands_that_can_reach_outside_this_checkout` in `tools/chemenu/tests/test_cli.py`. Er prüft gegen die echte Registry, dass genau diese zehn Pfade `yes` tragen: `sync`, `publish`, `upstream merge`, `version check`, `version notes`, `review`, `task new`, `task list`, `task close`, `doctor`.
- `tools/CONTRACT.md` ist per `wikitool docs contract --apply` regeneriert (vier Zeilen).
- Patch-Bump `7.1.0-beta.22 → 7.1.0-beta.23`, Impact `low`, mit Abschnitt in `CHANGES.md`. Der Abschnitt ist englisch wie die übrigen 22 des laufenden Kandidaten, und seine Überschrift entspricht dem Bump-Titel.
- Doc-Pull-Through: Weder `tools/README.md` noch `docs/` noch ein Stage-Contract beschreibt die Eigenschaft, also war dort nichts nachzuziehen.
Der Plan hatte optional vorgesehen, `version notes` unter SEE ALSO von `version check` zu ergänzen. Das entfiel, weil der Verweis dort schon stand.
## Verifiziert
- `pytest`: 1536 Tests grün. `docs verify` und `instructions verify` sauber, vor und nach dem Bump.
- CI für `906d63f`: [Run 406](https://gitea.nehmer.net/torben/chemenu/actions/runs/406) und [Run 407](https://gitea.nehmer.net/torben/chemenu/actions/runs/407) grün.
- CI für `685fc2e` (nur `CHANGES.md`): [Run 408](https://gitea.nehmer.net/torben/chemenu/actions/runs/408) grün.
## Akzeptanzkriterien
- [x] Die Bedeutung von `network:`, einschließlich „möglich statt üblich“ und „Git-Remote zählt, lokale Refs nicht“, steht im Docstring von `cli_contract.Network`.
- [x] `sync`, `publish` und `upstream merge` tragen `network: yes` in `-h` und in `tools/CONTRACT.md`. `upstream verify` trägt weiterhin `no`.
- [x] Jeder übrige Datensatz trägt den Wert, den diese Bedeutung verlangt, und ein Test schreibt die Menge der `yes`-Pfade fest.
- [x] Kein Datensatz und kein Docstring in `version_cmd.py`/`version.py` behauptet eine Anzahl oder Ausschließlichkeit netzwerkender Kommandos, die der Index oder der Code widerlegt.
- [x] `docs verify`, `instructions verify` und `pytest` laufen grün, und der Patch-Bump samt `CHANGES.md`-Text ist geschrieben.
Changelog: Offene Frage entschieden: network: bedeutet jeden Netzzugriff, Git-Remote eingeschlossen (Lesart 1, Operator am 2026-09-26). Korrigiert: upstream verify holt nichts ab und bleibt no. Neu: drei weitere falsche Ausschließlichkeitsbehauptungen (version_cmd.py-Modul- und Befehls-Docstring, version.pyfetch_latest), dazu Umsetzungsplan, Test auf die yes-Menge, Patch-Bump und geschärfte Akzeptanzkriterien.
**Changelog:** Offene Frage entschieden: `network:` bedeutet jeden Netzzugriff, Git-Remote eingeschlossen (Lesart 1, Operator am 2026-09-26). Korrigiert: `upstream verify` holt nichts ab und bleibt `no`. Neu: drei weitere falsche Ausschließlichkeitsbehauptungen (`version_cmd.py`-Modul- und Befehls-Docstring, `version.py` `fetch_latest`), dazu Umsetzungsplan, Test auf die `yes`-Menge, Patch-Bump und geschärfte Akzeptanzkriterien.
Changelog: Endzustand. Der Plan ist zu „Umgesetzt“ und „Verifiziert“ geworden (CI-Runs 406/407/408 grün), alle Kriterien sind abgehakt. Korrigiert: Der CHANGES.md-Abschnitt ist jetzt englisch wie der Rest des Kandidaten, seine Überschrift entspricht dem Bump-Titel (685fc2e). Modelle: Design Opus 5.5, Umsetzung Sonnet 5, Abschluss Opus 5.5.
**Changelog:** Endzustand. Der Plan ist zu „Umgesetzt“ und „Verifiziert“ geworden (CI-Runs 406/407/408 grün), alle Kriterien sind abgehakt. Korrigiert: Der `CHANGES.md`-Abschnitt ist jetzt englisch wie der Rest des Kandidaten, seine Überschrift entspricht dem Bump-Titel (`685fc2e`). Modelle: Design Opus 5.5, Umsetzung Sonnet 5, Abschluss 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.
Gefunden beim Durchgang für #142 (2026-09-26). Nach dessen Regel wird eine Abweichung zwischen Text und Code nicht dort korrigiert, sondern hier erfasst.
Stand: Erledigt in
7.1.0-beta.23(Commit906d63f, Changelog-Text korrigiert in685fc2e).Befund (gegen den Baum geprüft)
sync(git fetch) undpublish(git fetch,git ls-remote,git push) intools/chemenu/commands/git_publish.pytrugennetwork: no(Default), obwohl sie--remoteansprechen.upstream merge(upstream_cmd.py) führtgit fetch <remote> <branch>aus (außer mit--no-fetch) und trugnetwork: no.upstream verifyholt nichts ab, es liest nur bereits geholte Refs. Die erste Fassung dieses Issues hatte es fälschlich mitgezählt.network: yes:version check,version notes,review,task new/task list/task closeunddoctor.version check-Datensatzes,version_cmd.py,version check,version.fetch_latest(„the one place … that talks to a remote host“). Das war auch bei enger Lesart falsch, weil die Provider für CalDAV und Super Productivity ebenfallsurllibnutzen.-h, Index,tools/CONTRACT.md), sonst liest sie kein Code.Entscheidung
network:bedeutet jeden Netzzugriff. Das hat der Operator am 2026-09-26 entschieden.yesheißt: Mindestens ein Weg durch das Kommando kann einen Endpunkt außerhalb dieses Checkouts erreichen, entweder per HTTP-Aufruf auswikitoolselbst oder per Git-Operation gegen ein Remote (fetch,ls-remote,push).Grund: Wer die Eigenschaft liest, will wissen, ob ein Befehl offline oder in einer Sandbox scheitern oder hängen kann und ob ein Fehler vorübergehend ist. Wer den Socket öffnet, spielt dafür keine Rolle. Verworfen wurde die Lesart „nur HTTP aus
wikitool“, denn nach ihr hättepublishals netzfrei gegolten, obwohl es praktisch der netzabhängigste Befehl ist.Präzisierungen, beide im Docstring festgehalten:
--offline,--no-fetch, ein Markdown-Tracker oder ein Remote als lokaler Pfad ändern den Wert nicht.rev-parse,rev-list,remote get-url), ist kein Netzzugriff.Umgesetzt
cli_contract.Networkmit Bedeutung und Präzisierungen.sync,publishundupstream mergestehen aufnetwork=cli_contract.Network.YES,upstream verifybleibtno.version checkheißt jetzt „the only command whose whole job is the network call“,fetch_latest„the one place that talks to the release feed“.test_network_yes_is_exactly_the_commands_that_can_reach_outside_this_checkoutintools/chemenu/tests/test_cli.py. Er prüft gegen die echte Registry, dass genau diese zehn Pfadeyestragen:sync,publish,upstream merge,version check,version notes,review,task new,task list,task close,doctor.tools/CONTRACT.mdist perwikitool docs contract --applyregeneriert (vier Zeilen).7.1.0-beta.22 → 7.1.0-beta.23, Impactlow, mit Abschnitt inCHANGES.md. Der Abschnitt ist englisch wie die übrigen 22 des laufenden Kandidaten, und seine Überschrift entspricht dem Bump-Titel.tools/README.mdnochdocs/noch ein Stage-Contract beschreibt die Eigenschaft, also war dort nichts nachzuziehen.Der Plan hatte optional vorgesehen,
version notesunter SEE ALSO vonversion checkzu ergänzen. Das entfiel, weil der Verweis dort schon stand.Verifiziert
pytest: 1536 Tests grün.docs verifyundinstructions verifysauber, vor und nach dem Bump.906d63f: Run 406 und Run 407 grün.685fc2e(nurCHANGES.md): Run 408 grün.Akzeptanzkriterien
network:, einschließlich „möglich statt üblich“ und „Git-Remote zählt, lokale Refs nicht“, steht im Docstring voncli_contract.Network.sync,publishundupstream mergetragennetwork: yesin-hund intools/CONTRACT.md.upstream verifyträgt weiterhinno.yes-Pfade fest.version_cmd.py/version.pybehauptet eine Anzahl oder Ausschließlichkeit netzwerkender Kommandos, die der Index oder der Code widerlegt.docs verify,instructions verifyundpytestlaufen grün, und der Patch-Bump samtCHANGES.md-Text ist geschrieben.Changelog: Offene Frage entschieden:
network:bedeutet jeden Netzzugriff, Git-Remote eingeschlossen (Lesart 1, Operator am 2026-09-26). Korrigiert:upstream verifyholt nichts ab und bleibtno. Neu: drei weitere falsche Ausschließlichkeitsbehauptungen (version_cmd.py-Modul- und Befehls-Docstring,version.pyfetch_latest), dazu Umsetzungsplan, Test auf dieyes-Menge, Patch-Bump und geschärfte Akzeptanzkriterien.Changelog: Endzustand. Der Plan ist zu „Umgesetzt“ und „Verifiziert“ geworden (CI-Runs 406/407/408 grün), alle Kriterien sind abgehakt. Korrigiert: Der
CHANGES.md-Abschnitt ist jetzt englisch wie der Rest des Kandidaten, seine Überschrift entspricht dem Bump-Titel (685fc2e). Modelle: Design Opus 5.5, Umsetzung Sonnet 5, Abschluss Opus 5.5.