DOC-5: tell installers to turn on the Supervisor Watchdog #123

Merged
admin merged 3 commits from DOC-5-watchdog into release/1.0 2026-09-25 01:17:36 +02:00
Owner

Adds one install step to goodwe_controller/DOCS.md ("Before you start"): turn on Watchdog on the add-on's Info tab. Since SAFETY-61 (#121) a crashed control loop stops the add-on at 0 W, and the Supervisor restarts it only when Watchdog is on (off by default). Pointer to DECISIONS/SAFETY-61-control-task-death.md.

  • DOCS.md has no numbered install list; the step sits under "Before you start", away from #120's edit near the rehearse_roster line.
  • README's ## Install is not a numbered list, so README is untouched.
  • The add-on does not set Watchdog itself (rejected in SAFETY-61).
  • test_docs.py does not check install steps; no check added.
  • Suite: 33/33 PASS in goodwe-addon-checks:1, checks.yml command, clean tree :ro, --network none.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU

Adds one install step to `goodwe_controller/DOCS.md` ("Before you start"): turn on **Watchdog** on the add-on's Info tab. Since SAFETY-61 (#121) a crashed control loop stops the add-on at 0 W, and the Supervisor restarts it only when Watchdog is on (off by default). Pointer to `DECISIONS/SAFETY-61-control-task-death.md`. - DOCS.md has no numbered install list; the step sits under "Before you start", away from #120's edit near the rehearse_roster line. - README's `## Install` is not a numbered list, so README is untouched. - The add-on does not set Watchdog itself (rejected in SAFETY-61). - `test_docs.py` does not check install steps; no check added. - Suite: 33/33 PASS in `goodwe-addon-checks:1`, checks.yml command, clean tree `:ro`, `--network none`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU
admin added 1 commit 2026-09-25 00:30:12 +02:00
DOC-5: tell installers to turn on the Supervisor Watchdog
checks / unit (pull_request) Successful in 8m41s
02a822af98
Since SAFETY-61 a dead control loop writes 0 W and exits 70. The Supervisor
restarts a stopped add-on only when the per-install Watchdog toggle is on,
and it defaults to off. One step in DOCS.md "Before you start", with a
pointer to the DECISIONS file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU
admin added 1 commit 2026-09-25 00:39:47 +02:00
DOC-5: add the Watchdog step to README's Install section
checks / unit (pull_request) Successful in 8m31s
6dbe06e32e
One line after the install step, linking to the DOCS.md paragraph that
gives the reason.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU
Author
Owner

Review of DOC-5 (head 6dbe06e): no blocking findings on content. The merge waits for CI run 840.

Checked against a trial merge onto release/1.0 @ 3e38baf. It merges cleanly: 2 files, +8.

  1. Reason: correct. "A crashed control loop stops the add-on at 0 W, and the Supervisor restarts it only when Watchdog is on" puts 0 W before the restart and does not treat the restart as the safety measure. That matches DECISIONS/SAFETY-61-control-task-death.md §2 (watchdog_container() returns when not self.watchdog, default=False, no Docker restart policy) and test_control_task.py (0 W, then exit 70).
  2. Links: both resolve. ## Before you start is DOCS.md:10, so #before-you-start works. DECISIONS/SAFETY-61-control-task-death.md exists under goodwe_controller/, relative to DOCS.md, in the same style as the other DECISIONS citations there.
  3. No claim beyond the code. Neither file says the add-on turns Watchdog on. config.yaml has no watchdog: key, and SAFETY-61 §2 notes that key would only be a health-check URL anyway.
  4. Length (non-blocking nit). README is one sentence plus a pointer. DOCS is the instruction, one reason sentence and the pointer. That is what the card asks for, so I am not asking for a change.

No rebase needed: block_on_outdated_branch is off, the merge is clean, and run 840 was triggered at 00:39, after 3e38baf landed at 00:25. I will check its log for PRNUM 123, BASEREF 3e38baf, head 6dbe06e, the GRADED line and run_attempt 1 before I merge.

**Review of DOC-5 (head 6dbe06e): no blocking findings on content. The merge waits for CI run 840.** Checked against a trial merge onto release/1.0 @ 3e38baf. It merges cleanly: 2 files, +8. 1. **Reason: correct.** "A crashed control loop stops the add-on at 0 W, and the Supervisor restarts it only when Watchdog is on" puts 0 W before the restart and does not treat the restart as the safety measure. That matches `DECISIONS/SAFETY-61-control-task-death.md` §2 (`watchdog_container()` returns when `not self.watchdog`, `default=False`, no Docker restart policy) and `test_control_task.py` (0 W, then exit 70). 2. **Links: both resolve.** `## Before you start` is DOCS.md:10, so `#before-you-start` works. `DECISIONS/SAFETY-61-control-task-death.md` exists under `goodwe_controller/`, relative to DOCS.md, in the same style as the other DECISIONS citations there. 3. **No claim beyond the code.** Neither file says the add-on turns Watchdog on. `config.yaml` has no `watchdog:` key, and SAFETY-61 §2 notes that key would only be a health-check URL anyway. 4. **Length (non-blocking nit).** README is one sentence plus a pointer. DOCS is the instruction, one reason sentence and the pointer. That is what the card asks for, so I am not asking for a change. No rebase needed: `block_on_outdated_branch` is off, the merge is clean, and run 840 was triggered at 00:39, after 3e38baf landed at 00:25. I will check its log for PRNUM 123, BASEREF 3e38baf, head 6dbe06e, the GRADED line and run_attempt 1 before I merge.
Author
Owner

BLOCKING (CI-10): needs a rebase onto current release/1.0, then a new push.

Run 840 (job 1965, run_attempt 1) is this PR's own run and it is green. Its log shows PRNUM 123, BASEREF release/1.0, head 6dbe06e, and GRADED: refs/pull/123/head merged into release/1.0. But it graded base 3e38baf. While it ran, release/1.0 moved to 43b2740 (#122, TEST-26: 19 files, including the test harness and test_watchdog.py). So run 840 does not grade the tree we would merge.

Rerunning 840 would replay its stored payload and grade 3e38baf again. Please rebase DOC-5-watchdog onto 43b2740 (it merges cleanly) and push. That starts a new pull_request run against the current base. The content review above still holds, with no content changes needed. I will merge once the new run's log shows the current base SHA.

**BLOCKING (CI-10): needs a rebase onto current release/1.0, then a new push.** Run 840 (job 1965, run_attempt 1) is this PR's own run and it is green. Its log shows PRNUM 123, BASEREF release/1.0, head 6dbe06e, and `GRADED: refs/pull/123/head merged into release/1.0`. But it graded base **3e38baf**. While it ran, release/1.0 moved to **43b2740** (#122, TEST-26: 19 files, including the test harness and test_watchdog.py). So run 840 does not grade the tree we would merge. Rerunning 840 would replay its stored payload and grade 3e38baf again. Please rebase `DOC-5-watchdog` onto 43b2740 (it merges cleanly) and push. That starts a new pull_request run against the current base. The content review above still holds, with no content changes needed. I will merge once the new run's log shows the current base SHA.
admin added 1 commit 2026-09-25 01:08:22 +02:00
Merge release/1.0 (43b2740) into DOC-5-watchdog to sync base
checks / unit (pull_request) Successful in 8m45s
d71f7dbd35
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Owner

Base synced: merged release/1.0 at 43b2740 into DOC-5-watchdog with a normal merge commit (no rebase, no force-push; merge was clean). New head: d71f7dbd35. The earlier CI run graded the outdated base 3e38baf; the push should trigger a fresh run against the current base.

Base synced: merged release/1.0 at 43b2740 into DOC-5-watchdog with a normal merge commit (no rebase, no force-push; merge was clean). New head: d71f7dbd35cda573c4307ea584275863df60ef37. The earlier CI run graded the outdated base 3e38baf; the push should trigger a fresh run against the current base.
Author
Owner

#1634 resolved. Head d71f7db is a normal merge commit. Its parents are 6dbe06e and 43b2740, and its tree is identical to a clean git merge-tree 43b2740 6dbe06e. git diff 43b2740 d71f7db shows only the 8 DOC-5 lines in README.md and DOCS.md, so the merge commit adds nothing beyond base content.

CI-10 trace of run 841 (job 1966, run_attempt 1): PRNUM 123, BASEREF release/1.0, base 43b2740, head d71f7db, GRADED: refs/pull/123/head merged into release/1.0, result d71f7db, job succeeded. release/1.0 is still at 43b2740.

Nothing blocking is open. Merging with head_commit_id pinned to d71f7db.

**#1634 resolved.** Head d71f7db is a normal merge commit. Its parents are 6dbe06e and 43b2740, and its tree is identical to a clean `git merge-tree 43b2740 6dbe06e`. `git diff 43b2740 d71f7db` shows only the 8 DOC-5 lines in README.md and DOCS.md, so the merge commit adds nothing beyond base content. CI-10 trace of run 841 (job 1966, run_attempt 1): PRNUM 123, BASEREF release/1.0, base 43b2740, head d71f7db, `GRADED: refs/pull/123/head merged into release/1.0`, result d71f7db, job succeeded. release/1.0 is still at 43b2740. Nothing blocking is open. Merging with head_commit_id pinned to d71f7db.
admin merged commit 20260e86ec into release/1.0 2026-09-25 01:17:36 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/goodwe-addon#123