Skip to content

docs(issues): [#1488] open the pending sub-issues SI-25 to SI-28 and keep the discarded drafts - #2848

Merged
josecelano merged 12 commits into
torrust:developfrom
josecelano-bot:1488-pending-sub-issues-spec
Nov 13, 2026
Merged

josecelano merged 12 commits into
torrust:developfrom
josecelano-bot:1488-pending-sub-issues-spec

Conversation

@josecelano-bot

Copy link
Copy Markdown
Contributor

Spec-only PR for EPIC #1488. It turns every pending item of the EPIC into a GitHub issue with a consistent spec, and keeps the discarded drafts as EPIC artifacts.

Related to #1488, #2844, #2845, #2846 and #2847 (no closing keywords: the issues stay open until implemented).

New sub-issues (recommended order)

Order Issue SI What
1 #2844 SI-25 Remove the nine public shutdown error variants nothing constructs (breaking, unpublished crates)
2 #2845 SI-26 One shared token-aware supervisor with the health-check join order, review of the owner types, and migrate the legacy udp_ban_cleanup job (the only register_legacy user) so the stop-last edge covers it
3 #2846 SI-27 An orderly stop removes the service from the Registar; a failed stop keeps it. Starts with a go/no-go decision, because the 503 short-circuit already hides stale entries during shutdown
4 #2847 SI-28 Real-binary evidence that a hung component is aborted at the deadline (evidence only; after SI-26)

Per the maintainer's decision, SI-25, SI-26 and SI-27 land before the first publish (#2583). #2583 is blocked on #1488 as a whole, so SI-28 is also needed (or closed with its T1 decision) before it. These "SI-n" labels are EPIC #1488's; EPIC #1669 has its own closed SI-25 to SI-28 (#1906 to #1909).

Discarded drafts

The five superseded drafts (SI-3, SI-6, SI-7, SI-8, SI-9) move to docs/issues/open/1488-overhaul-tracker-shutdown/discarded-drafts/ as evidence of decisions taken during the EPIC, and are no longer deleted at close-out. The workflow, folders and validator are unchanged. One necessary consequence: the validator treats any file with issue frontmatter under docs/issues/open/ as a live spec, so the five spec files were renamed discarded-draft.md and lost their frontmatter (git history has it). Every link to them is repaired (closed specs 1586, 2370, 2412, 2448, 2668 and the EPIC rows); the SI-19 evidence file keeps its old paths because it quotes grep output. The EPIC text records the short policy for discarded drafts.

Checks

linter all, the frontmatter validator on every touched spec and the pre-commit hook pass. No code changed.

Needs the maintainer

The bot account cannot link sub-issues (the API answers 404), so #2844 to #2847 still have to be added as sub-issues of #1488.

🤖 Generated with Claude Code

…28 and keep the discarded drafts

Create issues torrust#2844 to torrust#2847 with refreshed, consistent specs (SI-26 now absorbs the
legacy udp_ban_cleanup migration), update the EPIC roadmap, and move the superseded
drafts SI-3, SI-6, SI-7, SI-8 and SI-9 into the EPIC folder as discarded-drafts
evidence, repairing every link to them.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@josecelano josecelano self-assigned this Nov 12, 2026
@josecelano
josecelano requested review from da2ce7 and a balanced review from Copilot November 12, 2026 16:12

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 57d6256d0e2db4833145b3390e8bf2e1259ac9bb. Recomputed from the bytes at this head, against the merge base 388faf59a; git merge-tree against develop 388faf59a merges cleanly with no conflicts, and the merged tree equals the head's tree.

Process: a spec-only PR governed by create-issue, with open-pull-request and commit-changes for the PR and its commit. Four folder specs land at docs/issues/open/{issue}-1488-si-{n}-…/ISSUE.md, the EPIC roadmap gains rows 22 to 25, and the description links the issues with Related to.

The change against its claim: the code facts in the four specs hold at 388faf59a. These are the nine variants nothing constructs, the three #[non_exhaustive] enums at 0.1.0, the three supervise_token_aware_server copies and their join order, and the owner types. So do register_legacy used only by udp_ban_cleanup, deregister called only by the health-check environment, the 25 s default deadline and the quoted SI-21 V6 sentence. Two edits are wrong. The path substitution also rewrote references to two drafts that were never discarded (F1, F2), and the four specs keep the placeholder github-issue: null (F3).

Consistency: the relative links and anchors in the changed Markdown resolve (99 checked). The one exception is a link in a closed spec that was already broken at the base. No live reference to the five old draft paths remains; the SI-19 evidence keeps them as quoted grep output. The project dictionary is unchanged, and the only words new to the tree are common English.

Hygiene: one commit, Conventional subject with [#1488], author equals committer, and one attribution footer line (no rule in the tree on it). git diff --check is clean, the PR-branch commit-id check prints nothing, and the closing-keyword scan finds nothing in the title, description or commit message.

Findings: F1 Major, F2 Minor, F3 Major, F4 Minor, F5 Nit, F6 Nit (inline).

Checked, no finding: table shapes; the discarded-drafts rename, which keeps the open-spec validator rule from applying to them; the #discarded-drafts anchor; the SI-18 and SI-19 section references; the first publish depending on this EPIC; and the closed SI-25 to SI-28 folders of the other EPIC.

Checks

On the loop's compute node at this head, against the merge base 388faf59a (receipt server-gates-kranich-781): the repository's pre-commit gate and lint roster exit 0 and the tree left clean. The PR changes documentation only, so no package tests apply. F3 read at this head: docs/issues/open/2844-1488-si-25-remove-unused-error-variants/ISSUE.md line 8 is github-issue: null, while issue 2844 is open on the forge. GitHub checks at this head at posting time: "Docs Lint: completed/success". At posting, develop is 388faf59a.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

Copilot was unable to run its full agentic suite in this review.

Copilot review overview

3 open issues
What changed in this PR

Adds four new planned sub-issue specs for EPIC #1488 (SI-25..SI-28) and updates the EPIC + existing specs to point to a new “discarded drafts” structure for superseded draft retention.

Changes:

  • Added new issue specs in docs/issues/open/ for SI-25 through SI-28.
  • Updated EPIC #1488 roadmap entries and narrative to reference these new issues and a “discarded-drafts” location.
  • Updated multiple older draft/closed docs to remove draft frontmatter and to rewrite links toward the proposed “discarded-drafts” paths.
File Description
docs/​issues/​open/​2847-1488-si-28-verify-hung-component-abort/​ISSUE.md New planned issue spec for SI-28 manual/executable-boundary verification.
docs/​issues/​open/​2846-1488-si-27-deregister-stopped-services/​ISSUE.md New planned issue spec for SI-27 (deregister services on orderly stop).
docs/​issues/​open/​2845-1488-si-26-consolidate-shutdown-supervisor/​ISSUE.md New planned issue spec for SI-26 (supervisor consolidation + migrate legacy job).
docs/​issues/​open/​2844-1488-si-25-remove-unused-error-variants/​ISSUE.md New planned issue spec for SI-25 (remove unused public error variants).
docs/​issues/​open/​1488-overhaul-tracker-shutdown/​ISSUE.md Updates EPIC roadmap rows to point to new issues and introduces “discarded-drafts” policy text/links.
docs/​issues/​drafts/​1488-si-9-improve-udp-shutdown/​verification.md Rewrites relative links assuming a deeper “discarded-drafts” location.
docs/​issues/​drafts/​1488-si-9-improve-udp-shutdown/​ISSUE.md Removes frontmatter; updates retention text and rewrites links to proposed discarded-drafts/analysis locations.
docs/​issues/​drafts/​1488-si-8-configurable-grace-periods/​verification.md Rewrites SI-20 link assuming a deeper “discarded-drafts” location.
docs/​issues/​drafts/​1488-si-8-configurable-grace-periods/​ISSUE.md Removes frontmatter; updates retention text and rewrites SI-20 link.
docs/​issues/​drafts/​1488-si-7-observable-shutdown-progress/​verification.md Rewrites #1586 link assuming a deeper “discarded-drafts” location.
docs/​issues/​drafts/​1488-si-7-observable-shutdown-progress/​ISSUE.md Removes frontmatter; updates retention text and rewrites #1586 link.
docs/​issues/​drafts/​1488-si-6-align-grace-periods/​verification.md Rewrites #1586 link assuming a deeper “discarded-drafts” location.
docs/​issues/​drafts/​1488-si-6-align-grace-periods/​ISSUE.md Removes frontmatter; updates retention text and rewrites analysis link.
docs/​issues/​drafts/​1488-si-3-fix-environment-stop/​verification.md Rewrites SI-16/SI-17 links assuming a deeper “discarded-drafts” location.
docs/​issues/​drafts/​1488-si-3-fix-environment-stop/​ISSUE.md Removes frontmatter; updates retention text and rewrites SI-16/SI-17 links.
docs/​issues/​drafts/​1488-si-26-consolidate-shutdown-supervisor/​ISSUE.md Deletes prior draft spec now replaced by open issue #2845 spec.
docs/​issues/​drafts/​1488-si-25-remove-unused-error-variants/​ISSUE.md Deletes prior draft spec now replaced by open issue #2844 spec.
docs/​issues/​closed/​2668-1488-si-20-configure-shutdown-policy/​ISSUE.md Updates semantic-links to point to proposed discarded-drafts location.
docs/​issues/​closed/​2448-1488-si-17-migrate-standalone-udp-environment/​ISSUE.md Updates semantic-links to point to proposed discarded-drafts location.
docs/​issues/​closed/​2412-1488-si-16-migrate-standalone-http-environment/​ISSUE.md Updates semantic-links to point to proposed discarded-drafts location(s).
docs/​issues/​closed/​2370-1488-si-15-define-udp-active-request-policy/​ISSUE.md Updates semantic-links and edits a workflow checkpoint line to reference discarded-drafts path.
docs/​issues/​closed/​1586-evaluate-job-manager-join-set/​ISSUE.md Updates semantic-links to point to proposed discarded-drafts location.

Review effort: Lite

Restore the SI-15 historical draft path, point the SI-17 artifact at torrust#2448,
set github-issue on the four new specs, name the SI-24 deregister order in
SI-27, name the reusable exit-code mapping in SI-28, and record the branch
choice in the EPIC.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@josecelano
josecelano requested review from da2ce7 and a balanced review from Copilot November 12, 2026 20:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Copilot review overview

1 open issue
3 resolved since last review

Review effort: Lite

Copilot stopped reviewing on behalf of josecelano due to an error November 12, 2026 20:48
…n plan

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 56cc1bef7519a053488adb17c4fc59c241f0b582. Recomputed from the bytes at this head, against the previous round's head 57d6256d0 and the merge base 388faf59a; git merge-tree against develop ec1f58ec9 merges cleanly, and the merged tree differs from the head only in develop's 9 paths, none of them in this PR.

What moved: one commit, 56cc1be, fast-forwards 57d6256d0 (7 files, +16/-9). The other 2532 paths are byte-identical, so the previous conclusions on them stand.

Previous findings: F1 fixed (SI-15 line 499 equals its 388faf59a line). F2 fixed (the closed SI-17 spec it now names exists). F3 fixed (2844 to 2847; no open spec keeps null). F4 partly fixed: the order note matches environment.rs lines 146 to 148, but line 52 still says "production-code" (inline). F5 fixed (both functions are pub; report_shutdown is private). F6 fixed (EPIC lines 234 and 235).

The new commit: its statements hold at this head and at ec1f58ec9, which touches none of the cited code. No link changed and no word is new to the tree. Nine threads were replied to and resolved without an audit record (F7). The automated reviewer's open thread on SI-28 line 75 also holds: the Scope's T2 is the run, while the plan's T2 is the build. That thread has no reply.

Hygiene: Conventional subject with [#1488], a body that matches the diff, author equals committer, and one attribution footer line (no rule in the tree on it). git diff --check is clean, and the commit-id check prints nothing. All six fixes share one commit, while process-pr-review step 6 asks for one per fix. That is not raised, because a split now would orphan the id the replies cite.

Findings: F4 Minor (re-raised) and F7 Minor, inline. Neither blocks, and the verdict stays a comment until the audit record lands.

Checked, no finding: begin_shutdown is pub; the four branch: values follow {issue}-{description}; every discarded-drafts/ reference names SI-3, 6, 7, 8 or 9.

Checks

On the loop's compute node at this head, against the merge base 388faf59a (receipt server-gates-kranich-803): the repository's pre-commit gate and lint roster exit 0 and the tree left clean. The PR has no review audit record at this head (F7), so the audit validator was not run in the gate. The PR changes documentation only, so no package tests apply. F4 checked against the bytes at posting: line 52 of the SI-27 specification still reads "The only production-code caller", and packages/axum-health-check-api-server/src/lib.rs line 1 gates environment behind #[cfg(feature = "testing")]. Read on the forge: 9 review threads are resolved and 1 is open (the automated reviewer's thread on SI-28 line 75, without a reply). GitHub checks at this head at posting time: "Docs Lint: completed/success". At posting, develop is ec1f58ec9.

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 572ae56b3a5640fbb007f79dbf4c5c49e5ef870c. Recomputed from the bytes at this head, against the previous round's head 56cc1bef7 and the merge base 388faf59a; git merge-tree against develop ec1f58ec9 merges cleanly, and the merged tree differs from the head only in develop's 9 paths and from develop only in this PR's 22.

What moved: one commit, 572ae56, fast-forwards 56cc1bef7 (the SI-28 spec only, +3/-1). The other 2538 paths are byte-identical, so the previous conclusions on them stand.

Previous findings: none changed state. F1, F2, F3, F5 and F6 stay fixed. F4 and F7 stay open, and both threads are marked resolved with no reply, so they are re-raised inline: SI-27 line 52 still reads "production-code caller", and docs/pr-reviews/pr-2848-review/PR-REVIEW.md still does not exist.

The new commit: the Scope now lists T1 (choose), T2 (build the harness if needed), T3 (run and record) and T4 (docs). That matches the plan rows (lines 111 to 114) and the commit points (lines 120 to 123), and "If T2 adds a script" (line 172) now reads right. No other file cites SI-28's tasks by number. This settles the automated reviewer's thread on line 75. Its reply cites this commit by short id, which F7 covers. All added words already occur in the tree.

Hygiene: the Conventional subject with [#1488] matches the diff. There is no body, which commit-changes makes optional. Author equals committer, and there is one attribution footer line (no rule in the tree on it). git diff --check is clean, and the commit-id check prints nothing.

Findings: F4 Minor and F7 Minor, re-raised inline. Neither blocks, and the verdict stays a comment until the audit record lands.

Checked, no finding: T4's condition has no target outside the issue records (the stop-last ADR, lines 47 to 49, states the abort without calling it unverified), and the plan allows "Doc edit or none". last-updated-utc has no upkeep rule for ordinary edits.

Checks

On the loop's compute node at this head, against the merge base 388faf59a (receipt server-gates-kranich-805): the repository's pre-commit gate and lint roster exit 0 and the tree left clean. The PR has no review audit record at this head (F7), so the audit validator was not run in the gate. The PR changes documentation only, so no package tests apply. F7 checked on the forge at posting: all 12 threads are resolved, and the two threads of the previous round (F4 on SI-27 line 52, F7 on SI-25 line 8) carry only the review comment, with no reply. docs/pr-reviews/pr-2848-review/PR-REVIEW.md is absent at this head. GitHub checks at this head at posting time: "". At posting, develop is ec1f58ec9.

…s the only deregister caller

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@josecelano

Copy link
Copy Markdown
Member

ACK 8cd0c93

@josecelano
josecelano requested review from da2ce7 and a balanced review from Copilot November 13, 2026 09:58

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 8cd0c930de3da64acb9e32a3c5056df47017449a. Recomputed from the bytes at this head, against the previous round's head 572ae56b3 and the merge base 388faf59a; git merge-tree against develop ec1f58ec9 merges cleanly, and the merged tree differs from the head only in develop's 9 paths and from develop only in this PR's 22.

What moved: one commit, 8cd0c93, fast-forwards 572ae56b3 (the SI-27 spec only, +3/-2). The other 2538 paths are byte-identical, so the previous conclusions on them stand.

Previous findings: F1, F2, F3, F5 and F6 stay fixed. One finding changed state:

  • F4 fixed: SI-27 lines 52 to 54 now name the health-check API test environment as the only caller in the tree, behind the testing feature.

The new commit: its statements hold at this head and at ec1f58ec9. environment.rs:147 is the only deregister call (server.rs:55 is a doc comment). lib.rs gates the module on testing. Only the package's own dev-dependencies enable that feature, and the root manifest depends on the package without it. The call came with #2450's fix (SI-24). No file keeps the old wording, and all added words already occur in the tree.

Hygiene: the Conventional subject with [#1488] matches the diff. There is no body, which commit-changes makes optional. Author equals committer, and there is one attribution footer line (no rule in the tree on it). git diff --check is clean, and the commit-id check prints nothing.

Findings: F7 Minor, re-raised inline: two replies say the audit record is added, but this head has none. It does not block, and the verdict stays a comment until the record lands.

Checked, no finding: the F4 replies cite this commit by its subject, not an id. All 14 threads now have a reply. last-updated-utc has no upkeep rule for ordinary edits.

Checks

On the loop's compute node at this head, against the merge base 388faf59a (receipt server-gates-kranich-809): the repository's pre-commit gate and lint roster exit 0 and the tree left clean. The PR has no review audit record at this head (F7), so the audit validator was not run in the gate. The PR changes documentation only, so no package tests apply. F7 checked against the bytes at posting: docs/pr-reviews/pr-2848-review/PR-REVIEW.md is absent at 8cd0c930d, and no commit on the branch has the subject docs(pr-reviews): [#1488] record the review audit of PR #2848. GitHub checks at this head at posting time: "Docs Lint: completed/success". At posting, develop is ec1f58ec9.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Copilot review overview

No open issues 🎉

1 resolved since last review

Review effort: Lite

…t#2848

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@josecelano
josecelano requested review from da2ce7 and a balanced review from Copilot November 13, 2026 10:40
… audit-record finding

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@josecelano

Copy link
Copy Markdown
Member

ACK 524249b

da2ce7
da2ce7 previously approved these changes Nov 13, 2026

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 6e553319d133051ed5af546a3f208577d877dff0. Recomputed from the bytes at this head, against the previous round's head 8cd0c930d and the merge base 388faf59a; git merge-tree against develop ec1f58ec9 merges cleanly, and the merged tree differs from the head only in develop's 9 paths and from develop only in this PR's 23.

What moved: two commits, 524249b and 6e55331, fast-forward 8cd0c930d and add only the audit record (+272). The other 2539 paths are byte-identical, so the previous conclusions on them stand.

Previous findings: F1 to F6 stay fixed. One changed state:

  • F7 fixed: docs/pr-reviews/pr-2848-review/PR-REVIEW.md exists, maps the cited ids to subjects, and all 15 threads have a reply and are resolved.

The new commits: replayed offline against the captured threads, with the branch's six subjects, the validator reports 15 rows, 6 log entries and 0 failures. Each row's review ID, reply thread and subject also check out by hand. F9 (no row for the round 4 re-raise), found at 524249b, is fixed by 6e55331's F15 row. Three slips remain, raised inline.

Hygiene: both subjects are Conventional, match their diffs, and keep the audit in its own commits. There is no body, which commit-changes makes optional. Author equals committer, and each commit has one attribution footer line (no rule in the tree on it). git diff --check is clean. The commit-id check prints four PR-branch ids (F10).

Findings: F8 and F10 Minor, F11 Nit. These are record slips the author can fix after merge, and none blocks.

Checked, no finding: the automated reviewer's 10:15 review has no request, so it needs no row. The PR body is unchanged.

Checks

On the loop's compute node at this head, against the merge base 388faf59a (receipt server-gates-kranich-818): the repository's pre-commit gate and lint roster exit 0 and the tree left clean; the repository's audit validator on pr-2848-review exit 0 (15 rows, 6 log entries, no failures). The PR changes documentation only, so no package tests apply. F10 checked against the bytes at posting: PR-REVIEW.md at this head quotes the PR-branch ids 524249b65, 8cd0c930d, 56cc1bef7 and 572ae56b3. Read on the forge: all 15 review threads are answered and resolved. GitHub checks at this head at posting time: "". At posting, develop is ec1f58ec9.

@da2ce7

da2ce7 commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

ACK 6e55331 — F1 to F7 are fixed at this head and the audit record, with its new F15 row, passes the validator's checks offline against the captured threads

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved documentation issues include overbroad absence checks, duplicate findings misclassified as original, and incomplete requirements for per-increment test-design reviews and final maintainer-review pauses.

4 open issues

Review effort: Balanced

@josecelano

Copy link
Copy Markdown
Member

ACK 6e55331

@josecelano
josecelano requested review from da2ce7 and a balanced review from Copilot November 13, 2026 11:00
josecelano-bot and others added 3 commits November 13, 2026 11:09
…d form in SI-25

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ts to T3 and T4

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ts to T3 and T4

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Copilot review overview

2 open issues
4 resolved since last review

Review effort: Lite

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 1f0a6608a0da09897430261c4aecd9c0c5afd40b. Recomputed from the bytes at this head, against the previous round's head 6e553319d and the merge base 388faf59a; git merge-tree against develop ec1f58ec9 merges cleanly, and the merged tree differs from the head only in develop's 9 paths and from develop only in this PR's 23.

What moved: four commits fast-forward 6e553319d: e3bd1eb (SI-25), 77fa303 (SI-26), e197c4f (SI-27) and 1f0a660 (the audit record, +134/-9). The other 2537 paths are byte-identical.

Previous findings: F1 to F7 stay fixed. Two changed state:

  • F8 fixed: lines 375 and 376 append corrections that name both entries and give the git log and forge times.
  • F11 fixed: Status Values and Completion Rules now equal the template.

The new commits: SI-26 and SI-27 place the design-review checkpoint after T2, T3 and T4, plus the final maintainer pause. That matches create-issue lines 180 to 192. SI-25 scopes Launcher, but it misses a third struct, and Stop has the same problem (F23). The record adds rows F16 to F22, each matching its comment, review and reply. Replayed offline, the validator reports 22 rows, 11 log entries and 0 failures.

Hygiene: four Conventional subjects that match their diffs, with no body, which commit-changes makes optional. Author equals committer, and each commit has one attribution footer line (no rule in the tree on it). git diff --check is clean. The commit-id check prints four ids from the record (F10).

Findings: F10, F23 and F24 Minor. Two threads of the automated reviewer's 11:18 review are open without a reply; as in earlier rounds, the verdict stays a comment, without ACK, until each open thread has a reply and a row. New findings start at F23, because the automated reviewer's comments use F16 to F19 and the audit's IDs reach F22.

Checked, no finding: the automated reviewer's two 11:18 comments do not hold at this head. No record line starts with ||, and verification.md has no |>.

Checks

On the loop's compute node at this head, against the merge base 388faf59a (receipt server-gates-kranich-828): the repository's pre-commit gate and lint roster exit 0 and the tree left clean; the repository's audit validator on pr-2848-review exit 0 (22 rows, 11 log entries, no failures). The PR changes documentation only, so no package tests apply. F23 checked against the bytes at posting: pub struct Launcher is defined in packages/axum-http-server/src/server.rs:70, packages/axum-rest-api-server/src/server.rs:303 and packages/udp-server/src/server/launcher.rs:31. Read on the forge: 22 review threads are resolved and 2 are open. GitHub checks at this head at posting time: "". At posting, develop is ec1f58ec9.

@josecelano

Copy link
Copy Markdown
Member

ACK 1f0a660

@josecelano
josecelano requested review from da2ce7 and a balanced review from Copilot November 13, 2026 13:05

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues remain for this documentation-only change.

1 open issue
1 resolved since last review

Review effort: Balanced

josecelano-bot and others added 2 commits November 13, 2026 15:19
…auncher struct in SI-25

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 421665fc4a4a4ca4e3bfb89c32bad3577562dd08. Recomputed from the bytes at this head, against the previous round's head 1f0a6608a and the merge base 388faf59a; git merge-tree against develop ec1f58ec9 merges cleanly, and the merged tree differs from the head only in develop's 9 paths and from develop only in this PR's 23.

What moved: two commits fast-forward 1f0a6608a: b7f7546 (SI-25) and 421665f (the audit record), +111/-20. The other 2538 paths are byte-identical.

Previous findings: F1 to F9 and F11 stay fixed, and F10 stays open (re-raised inline). Two changed state:

  • F23 fixed: SI-25 names the third Launcher struct and scopes Stop, though the new scoping has its own gaps (F28).
  • F24 fixed: rows F16 to F19 read Minor, and lines 452 and 453 correct the 10:53 and 11:13 entries.

The new commits: all 27 threads on the PR now have a reply, a row and a resolution. Replayed offline, the validator reports 27 rows, 16 log entries and 0 failures. Rows F23 to F27 match their comments, reviews and replies.

Hygiene: two Conventional subjects that match their diffs, with no body, which commit-changes makes optional. Author equals committer, and each commit has one attribution footer line (no rule in the tree on it). git diff --check is clean. The commit-id check prints five ids (F10).

Findings: F10, F28 and F29 Minor. These are spec or record slips the author can fix after merge, and none blocks. New findings start at F28 because the audit's own IDs reach F27.

Checked, no finding: the automated reviewer's 13:28 review adds no thread, and the one thread it names is now answered.

Checks

On the loop's compute node at this head, against the merge base 388faf59a (receipt server-gates-kranich-843): the repository's pre-commit gate and lint roster exit 0 and the tree left clean; the repository's audit validator on pr-2848-review exit 0 (27 rows, 16 log entries, no failures). The PR changes documentation only, so no package tests apply. F28 checked against the bytes at posting: git grep 'Error::Stop' matches SpawnError::StopBeforeTargetNotEarlier in src/bootstrap/jobs/manager.rs. Read on the forge: all 27 review threads are answered and resolved. GitHub checks at this head at posting time: "". At posting, develop is ec1f58ec9.

- Reviewer finding ID: N/A
- Source URL: https://github.com/torrust/torrust-tracker/pull/2848#discussion_r4562638346
- Concern: `docs/issues/open/1488-overhaul-tracker-shutdown/discarded-drafts/si-9-improve-udp-shutdown/verification.md` was reported to use `|>` instead of standard Markdown blockquote syntax (`>`), and relative links one directory level too shallow.
- Solution: No change. The file (unchanged since commit `6e553319d`, which the review's own diff hunk reflects) already uses plain `>` blockquote markers and the correct four-level-up relative paths (`../../../../closed/...`); there is no `|>` sequence in the file.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Minor][F10] Still open: the ids half was not addressed, and a fifth id is new

F25 records only the wrong-premise half, which is fixed. The other half stands: F20's Concern and Current-tree verification (lines 340 and 342) and F21's Concern (line 353) still quote 524249b and 8cd0c93. This Solution adds 6e55331, which the replies on the two automated-reviewer threads also cite. The commit-id check now prints five ids. These are detail entries, not append-only log lines, so they can name subjects, as line 449 does. The log lines 444 to 449 may keep theirs.

`enum UdpError` definition in `packages/udp-server/src/server/mod.rs`, never to the bare
identifier `Launcher`.

`Stop` has the same problem in the other direction: a whole-word search for it also matches the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Minor][F28] The Stop scoping still cannot pass, and its stated reason is wrong

M1's git grep 'Error::Stop', and the Error::Stop scope of T1, T4 and the acceptance criterion (line 167), match SpawnError::StopBeforeTargetNotEarlier in src/bootstrap/jobs/manager.rs (lines 457, 670, 1831 and 1851). That is live code, so a correct removal still leaves four matches. The word-bounded git grep -w 'Error::Stop' finds none of them. The reason given here, and again at line 168, does not hold either. A whole-word search cannot match Stopped, and none of the 11 -w Stop lines in *.rs is a Stopped struct or alias; only a substring search would match them. The audit's F26 Concern (record line 418) repeats the claim.

- 2026-11-13 15:21 UTC - **Correction** to the entry above stamped 2026-11-13 11:13 UTC (F27): "the seven threads of this round" names six ids ("F16 and F18 to F22"); it should read F16 to F22 inclusive (seven ids) — F17's reply (11:13:27Z, forge `created_at`) was omitted from the list.
- 2026-11-13 15:21 UTC - Copilot commented again (submitted 11:18:24Z) with two findings (no reviewer IDs; audit-local F23, F24). da2ce7 left three more inline comments (submitted 11:28:36Z; reviewer IDs F10, F23, F24, colliding with the existing audit-local F10 and the F23/F24 just assigned, so they are F25, F26 and F27 here).
- 2026-11-13 15:21 UTC - Fix commit for F26 (`docs(issues): [#1488] scope the Stop check and add the third Launcher struct in SI-25`) made after the wording was checked against `packages/udp-server/src/server/launcher.rs`, `states.rs`, and the `Error::Stop` definitions in `axum-http-server`/`axum-rest-api-server`.
- 2026-11-13 15:21 UTC - Replied on the five threads of this round (F23 to F27) at forge `created_at` times for comments `r4565157613`, `r4565158230`, `r4565160604`, `r4565161099` and `r4565161683`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Minor][F29] Three new slips in the log and the rows

This entry is stamped 15:21, but the five replies it records were posted at 15:23:04Z to 15:23:24Z. That is the same stamp-before-event slip that line 452 corrects (process-pr-review lines 127 to 129). Rows F23 and F24 (lines 79 and 80), like F7 (line 63), pair NO_ACTION with RESOLVED. This record's Status Values (lines 35 and 36) and Completion Rules (lines 464 to 466) give a no-change thread SUPERSEDED and an exact Superseded by <FindingId>: <reason>. reply. F24's Concern (line 392) adds relative links "one directory level too shallow", which neither the source comment nor its review says.

@da2ce7

da2ce7 commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

ACK 421665f — every review thread has a reply, an audit row and a resolution, the validator's checks pass offline with 27 rows, and the merge with develop is clean

@josecelano

Copy link
Copy Markdown
Member

ACK 421665f

@josecelano
josecelano merged commit 3e9759e into torrust:develop Nov 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants