Repository navigation
chore(issues): archive closed issue #2448 spec - #2465
Conversation
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The archive is complete and consistent aside from one non-blocking stale snapshot date.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Archives completed issue #2448 and updates live references after PR #2459 merged.
Changes:
- Moves SI-17 documentation to the closed-issue archive.
- Records completion metadata and verification evidence.
- Updates dependent specs, reviews, and EPIC status.
| File | Description |
|---|---|
docs/pr-reviews/pr-2459-review/PR-REVIEW.md |
Updates archived artifact links. |
docs/pr-reviews/pr-2451-review/PR-REVIEW.md |
Updates the SI-17 link. |
docs/issues/open/2449-1488-si-23-migrate-rest-api-test-environment/ISSUE.md |
Links to archived SI-17. |
docs/issues/open/2410-1488-si-22-process-queued-events-before-listeners-stop/EPIC.md |
Updates the SI-17 reference. |
docs/issues/open/1488-overhaul-tracker-shutdown/ISSUE.md |
Marks SI-17 done and refreshes findings. |
docs/issues/drafts/1488-si-3-fix-environment-stop/verification.md |
Repairs the SI-17 verification link. |
docs/issues/drafts/1488-si-3-fix-environment-stop/ISSUE.md |
Repairs the superseding-spec link. |
docs/issues/closed/2448-1488-si-17-migrate-standalone-udp-environment/manual-verification-evidence.md |
Updates parent-spec metadata. |
docs/issues/closed/2448-1488-si-17-migrate-standalone-udp-environment/ISSUE.md |
Records completion and archival. |
docs/issues/closed/2448-1488-si-17-migrate-standalone-udp-environment/agent-review-reports.md |
Preserves the issue’s review record. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
da2ce7
left a comment
There was a problem hiding this comment.
Reviewed at 6be258588afcc909108a5779c14ebc307abd8a02 (round 1). Recomputed from the bytes at this head, against develop at 604b26c6c.
This PR archives the SI-17 spec folder (three files) to docs/issues/closed/ now that the implementation has merged. It repairs the eight live references to the old path (seven files), marks EPIC #1488 roadmap row 13 Done, and rewords its Findings 2 and 8. One commit, ten files, all docs.
Archive vs cleanup-completed-issues. The whole folder moved (R097/R100/R097, and nothing is left under docs/issues/open/2448-…). ISSUE.md:5-12 has status: done, the closed spec-path, related-pr: 2459, and a stamp equal to the closing log entry's time (:275, 08:03). Every field in the validator's issue profile is present, and the archive checkpoint (:260) is ticked. The evidence file's issue-spec and stamp moved too (the c314e501e lesson). agent-review-reports.md is a pure move and needs nothing: its frontmatter matches docs/templates/AGENT-REVIEW-REPORTS.md, it never names the open path, and Step 3 adds a spec-path/stamp block only to records without frontmatter (the gap b2c93aff7 closed). The SI-23/SI-24 links (:362-363) now resolve from the closed folder (the 7b219fcfb lesson). The other relative links in the three files (:43, :174) already did.
References and the EPIC. At the base, the folder name had 11 hits in 9 files. At the head, the only open/2448- hit is the history line :248, kept as closed/2412-…/ISSUE.md:251 keeps its twin. All 139 relative links and frontmatter paths in the ten files resolve. Every touched file that has a last-updated-utc got the new stamp (Step 4); verification.md and the two audit records have no stamp field. Row 13's Done matches rows 0-12, and its note matches d31a549da (the drop guard at packages/udp-server/src/testing/environment.rs:171, the test at :490). Findings 2 and 8 hold at 604b26c6c:
- The UDP environment starts through
start_with_cancellation(environment.rs:130) and cancels and joins instop()(:226-228). - The REST API environment (
packages/axum-rest-api-server/src/testing/environment.rs:90,server.rs:189,441) and the health-check environment (packages/axum-health-check-api-server/src/environment.rs:55,107) still passHaltedintograceful_shutdown, which also subscribes to the OS signal. - SI-16's spec is archived as
done.
Hygiene. The subject is Conventional, in the same form as 74d2bed90. The commit body is true to the diff. Author and committer are the same, there is no trailer, git diff --check is clean, and no manifest or project-words.txt changed. The PR body links Related to #2448, has no closing keyword (the open-pull-request scan finds nothing), and states the validation that was run.
Findings
- F1 (Minor, blocking): the closing progress-log entry misstates #2459's review history (inline).
- F2 (Suggestion): the EPIC's "status as of 2026-10-02" lead-in no longer dates Findings 2 and 8 (inline).
Checked, no finding
- Step 0.6: no draft carries a
github-issue. - The PR #2451 and #2459 audit records: their frontmatter paths were repaired, as the earlier archives did for theirs. They have no stamp field.
- EPIC #1488 has no Progress Log section to extend. The SI-16 archive added none.
- The spec's References section has no
Related PRsline, the same shape as the archived SI-16 spec.related-pr: 2459records the PR. - The subject omits Step 6's "to docs/issues/closed" suffix. The skill's command is an example, and
74d2bed90uses the same short form.
Checks
On the loop's compute hub at this head, base develop 604b26c6c (receipt server-gates-krkavec-129): pre-commit profile gate exit 0 (75 s), tree clean after the gate; linter markdown, linter cspell, linter lychee exit 0; frontmatter-validator --all: 19 errors / 4 warnings at this head and 19 / 4 at develop 604b26c6c re-measured, so no new frontmatter finding. GitHub checks at this head at posting time: "1 check, Docs Lint completed/success". At posting, develop is 7836471b3 (the merge of #2461, which touches none of this PR's files), and the merge of this head onto it is clean by git merge-tree.
The problem list says each status is current as of a date; SI-17's archive updated findings 2 and 8, so the snapshot date moves to 2026-10-07 (PR torrust#2465 review finding F1).
6be2585 to
607d835
Compare
da2ce7
left a comment
There was a problem hiding this comment.
Reviewed at 607d8353029c80d351c148e0576c6656d6cfc49e (round 2). Recomputed from the bytes at this head, against develop at 7836471b3.
This push rebases the archive commit onto 7836471b3 without change (range-diff =, same patch-id, byte-identical diff; the develop delta touches none of the ten files) and adds docs(issues): refresh EPIC #1488 status snapshot date, which changes two lines.
F1 at the bytes. Unchanged. docs/issues/closed/2448-…/ISSUE.md:275 still says #2459 merged "after da2ce7 approved review rounds 2 to 4". The audit record it cites, docs/pr-reviews/pr-2459-review/PR-REVIEW.md:57-61, records round 3 as CHANGES_REQUESTED, and the approval the merge carries is of the top commit, which records round 4. The thread has no reply and this push does not touch the line. Re-raised inline.
F2 at the bytes. Fixed. The EPIC lead-in (:56-57) now reads "status as of 2026-10-07". The stamp "2026-10-07 09:00" (:9) is the edit's minute and does not postdate the commit's author time of 09:00:19Z, as the archive skill's :215 and the validator README's :73 format require. Findings 2 and 8 are byte-identical to round 1.
Status re-check at 7836471b3. The code is unchanged since 604b26c6c (no diff outside docs/ and .github/). All nine statuses hold on 2026-10-07:
- 1: SIGTERM handler at
src/main.rs:64, #2132 done. - 3: no
ctrl_cin either periodic job, andtorrent_cleanup.rs:52selects on the token. - 4: the HTTP drain is 90 s (
axum-http-server/src/server.rs:29) againstwait_for_all(Duration::from_secs(10))(src/app.rs:157); SI-20 is a draft. - 5: #2342 and #2370 are done.
- 6: drain timeouts are constants; SI-20 is a draft.
- 7:
JobOutcomeexists; SI-22 is planned. - 9: the listeners return on
cancelled()first (udp-server/src/statistics/event/listener.rs:54-58); SI-22 and #2413 to #2416 are planned. - 2 and 8: as verified in round 1.
Hygiene. Two commits, author and committer Jose Celano. Author times are 08:32:46Z and 09:00:19Z; committer times are 09:06:47Z and 09:06:48Z (the rebase). The subjects are Conventional and true to each diff. There are no trailers, no banned token, and no manifest or project-words.txt change; git diff --check is clean. Links are 139/139; the only open/2448- hit is history line :248.
Findings
- F1 (Minor, blocking): re-raised inline, unchanged at
:275. - F2 (Suggestion): fixed by
docs(issues): refresh EPIC #1488 status snapshot date.
Checked, no finding
- The new commit's body cites "PR #2465 review finding F1". That is Copilot's F1, the same subject as my F2. Copilot posted first, so under
process-pr-reviewstep 3 its F1 keeps that ID and my F1 and F2 take the next free audit IDs. - The Contracts block (
:106-107) keeps "Status as of 2026-10-02". It is a separate snapshot and still true, since nothing in it changed. - The new subject has no
[#1488]tag, the same as the archive commit's.
Checks
On the loop's compute hub at this head, base develop 7836471b3 (receipt server-gates-krkavec-132): pre-commit profile gate exit 0 (72 s), tree clean after the gate; linter markdown, linter cspell, linter lychee exit 0; frontmatter-validator --all: 19 errors / 4 warnings at this head and 19 / 4 at develop 7836471b3 re-measured, so no new frontmatter finding. GitHub checks at this head at posting time: "1 check, Docs Lint completed/success". At posting, develop is 7836471b3, this head's base.
…review history The closing progress-log entry said da2ce7 approved rounds 2 to 4. The torrust#2459 audit records an approval dismissed by a push, a change request, and an approval, and the merge rests on da2ce7's ACK of the later final head. Say that da2ce7 approved the final head instead (PR torrust#2465 review finding F2, da2ce7 F1).
da2ce7
left a comment
There was a problem hiding this comment.
Reviewed at 6c307af1ba9777692ba7f8f9145182a5535cad58 (round 3). Recomputed from the bytes at this head, against develop at 7836471b3.
This push adds one commit on the unchanged round-2 commits (range-diff =, =, >; develop is still 7836471b3). That commit, docs(issues): [#2448] correct the archive entry's #2459 review history, changes two lines of the archived ISSUE.md.
F1 at the bytes. Fixed. docs/issues/closed/2448-1488-si-17-migrate-standalone-udp-environment/ISSUE.md:275 now reads:
PR #2459 merged on 2026-10-07 07:55 UTC after da2ce7 approved its final head (rounds 1 to 4 are audited in
docs/pr-reviews/pr-2459-review/PR-REVIEW.md); #2448 closed.
This is true:
- The
604b26c6cmerge's second parent is888b83b41, #2459's top commit, and its "ACKs for top commit" block holds da2ce7's ACK of888b83b41. - The audit record covers rounds 1 to 4 (
:45-61) and nothing later. - The sentence names no round for the final approval.
The stamp "2026-10-07 09:12" (:12) is the edit's minute and does not postdate the 09:12:34Z author time. The entry is still one line.
Hygiene. Three commits, author and committer Jose Celano. Author times run 08:32:46Z, 09:00:19Z, 09:12:34Z; committer times are 09:06:47Z, 09:06:48Z, 09:12:34Z. Each subject is Conventional and true to its diff. There are no trailers, no banned token, and no manifest or project-words.txt change; git diff --check is clean. Links are 139/139, and the only open/2448- hit is history line :248.
Findings
None. F1 and F2 are fixed.
Checked, no finding
- The entry was corrected in place and keeps its 08:03 prefix.
docs/templates/ISSUE.md:152("Append one line per meaningful update") does not cover correcting an entry the same unmerged PR added. The prefix still dates the archive action, so this is acceptable. - The new subject carries
[#2448]and the first two carry no tag (note only). - The body's "review finding F2, da2ce7 F1" matches
process-pr-reviewstep 3's renumbering. - No
docs/pr-reviews/pr-2465-review/exists at this head. That record is the author's underprocess-pr-review, and adding it would move the head past this approval.
Checks
On the loop's compute hub at this head, base develop 7836471b3 (receipt server-gates-krkavec-133): pre-commit profile gate exit 0 (74 s), tree clean after the gate; linter markdown, linter cspell, linter lychee exit 0; frontmatter-validator --all: 19 errors / 4 warnings at this head and 19 / 4 at develop 7836471b3 re-measured, so no new frontmatter finding. GitHub checks at this head at posting time: "1 check, Docs Lint completed/success". At posting, develop is 7836471b3, this head's base.
|
ACK 6c307af — the F1 fix (the archived spec's closing entry now says da2ce7 approved #2459's final head, true to the merge's ACK of 888b83b and the rounds 1-4 audit) and the F2 fix (the EPIC lead-in dated 2026-10-07, all nine statuses re-checked) verified at the bytes, with the archive commit a clean rebase onto 7836471 |
Move the SI-17 spec to docs/issues/closed/ after PR torrust#2459 merged and torrust#2448 closed. Repair the spec's relative links to SI-23 and SI-24, point every live reference at the new path, and mark EPIC torrust#1488 sequence 13 done.
The problem list says each status is current as of a date; SI-17's archive updated findings 2 and 8, so the snapshot date moves to 2026-10-07 (PR torrust#2465 review finding F1).
…review history The closing progress-log entry said da2ce7 approved rounds 2 to 4. The torrust#2459 audit records an approval dismissed by a push, a change request, and an approval, and the merge rests on da2ce7's ACK of the later final head. Say that da2ce7 approved the final head instead (PR torrust#2465 review finding F2, da2ce7 F1).
da2ce7
left a comment
There was a problem hiding this comment.
Reviewed at 8f216895a06ef0fd66dd91100b9968064d315e5f (round 5). Recomputed from the bytes at this head, against develop at 7836471b3.
This push adds docs(pr-reviews): record da2ce7 rounds 2-3 on #2465 (+25 lines in the record) on top of the four round-4 commits, which are unchanged (range-diff =×4, >; develop is still 7836471b3). My round-4 review of the previous head was not posted, because the head moved first. Its findings were re-checked here and appear below as new findings in my series.
The record. These cells hold at the 09:57Z capture:
- Ownership is verbatim.
- All four source/reply pairs are right, each reply on its own thread: 4204943246 with 4205102654, 4205054961 with 4205276416, 4205054974 with 4205276688, and the new 4205192350 with 4205454707 (09:50:19Z).
- Source review IDs and severities match their brackets, and both FIXED subjects are on the branch.
- The new prose (
:45-48) matchesreviews.json: 5440236519 isCHANGES_REQUESTEDat 09:21:16Z on the F1-fix head; 5440392814 approved at 09:34:49Z on the F2-fix head and is nowDISMISSED. F4carries reviewer ID F1, source 4205192350, andRE_RAISE_OF:F2, which is right underprocess-pr-review:64-67.- The log stays chronological (09:11, 09:30, 09:50), and every stamp is within the minute of its last event and before its commit (09:50 for the 09:50:19 reply, committed at 09:51:01Z).
What still does not hold is two rule mismatches and a Nit, all unchanged by this push (inline).
Hygiene. Five commits, author and committer Jose Celano. Author times ascend: 08:32:46Z, 09:00:19Z, 09:12:34Z, 09:34:59Z, 09:51:01Z. Each subject is Conventional and true to its diff. There are no trailers, no banned token, and no manifest or project-words.txt change; git diff --check is clean. The only open/2448- hit is still history line :248.
Findings (my series continues from F3; the audit's F2-F4 numbering of my round-1 F1/F2 and the round-2 re-raise is its own)
- F3: found at the round-4 tip (review 5440236519 and its re-raise were missing from the record). Fixed at this head, so not posted as a thread.
- F4 (Minor, blocking): Status Values and Completion Rules are still not the template's verbatim text.
- F5 (Minor, blocking): rows F3 and F4 record
SUPERSEDED/RESOLVEDwith a commit subject. Both replies open "Superseded by …", and the duplicate rule then requiresNO_ACTION/SUPERSEDEDwith the reply URL. - F6 (Nit): F1's
Reviewer finding IDshould beN/A.
Checked, no finding
- At the 09:57Z capture, Copilot's thread
PRRT_kwDOGp2yqc6p0_BWwas still unresolved while F1's Thread state says RESOLVED. The log (:129-133) says it is resolved after this push, so the cell holds once that happens. - "da2ce7 had already resolved the F2-F4 threads" matches the capture: all three are resolved.
- None of my threads is open.
Checks
On the loop's compute hub at this head, base develop 7836471b3 (receipt server-gates-krkavec-137): pre-commit profile gate exit 0 (78 s), tree clean after the gate; linter markdown, linter cspell, linter lychee exit 0; frontmatter-validator --all: 19 errors / 4 warnings at this head and 19 / 4 at develop 7836471b3 re-measured, so no new frontmatter finding; validate-audit-record.py --pr-number 2465 over the live review comments: 4 rows, 3 log entries, 0 failures. GitHub checks at this head at posting time: "1 check, Docs Lint completed/success". At posting, develop is 30e6b7127 (the merge of #2438, which touches none of this PR's files), and the merge of this head onto it is clean by git merge-tree.
8f21689 to
23e0cee
Compare
…les verbatim into the torrust#2465 record Both blocks are marked 'Copied verbatim' in the template; the record had copied them from an older record and dropped the OPEN and duplicate-rule text (PR torrust#2465 review finding F5, da2ce7 F4).
…ACTION/SUPERSEDED Duplicates take Disposition=NO_ACTION, Thread state=SUPERSEDED, and their reply URL as the resolution reference (process-pr-review step 7; PR torrust#2465 review finding F6, da2ce7 F5).
Copilot's F1 kept its ID, so the original ID is not recorded (PR torrust#2465 review finding F7, da2ce7 F6).
|
ACK 14108b0 |
da2ce7
left a comment
There was a problem hiding this comment.
Reviewed at 14108b0fa3a4a056842297ddb4f25732f29ec2dd (round 8). Recomputed from the bytes at this head, against develop at 30e6b7127.
This push adds docs(pr-reviews): record da2ce7 round 4 on #2465 (+60 lines, additions only) on top of the eight round-7 commits, which are unchanged (range-diff =×8, >). My round-7 review was not posted because the head moved before posting. It had flagged that review 5440707809 was missing from the record, and this push adds it.
The record. It is complete and true to the 10:22Z capture:
- Rows run F1-F7 with no duplicate ID.
- Prose covers all five reviews: Copilot's 5439917780, and 5440064083, 5440236519, 5440392814 and 5440707809, the last
CHANGES_REQUESTEDat 10:04:07Z with three findings. - F5, F6 and F7 carry the right source comments (4205575732, 4205575747, 4205575763, all in review 5440707809), reviewer IDs F4-F6, severities equal to the brackets (Minor, Minor, Nit), and reply URLs (4205671671, 4205671938, 4205672181, 10:14:18-22Z, each on its own thread).
- Their FIXED subjects are on the branch, and all seven threads are resolved.
- The log is chronological (09:11 to 10:14), its last stamp is before the commit's 10:15:14Z, and "9 commits behind" is correct.
- F4-F6 remain fixed: both blocks match the template line for line, F3 and F4 are
NO_ACTION/SUPERSEDEDwith their reply URLs, and F1's reviewer ID isN/A.
Hygiene. Nine commits, author and committer Jose Celano. Author times ascend through 10:09:16Z to 10:15:14Z. The new subject is Conventional, untagged, and true to its diff. There are no trailers, no banned token, and no manifest or project-words.txt change; git diff --check is clean. The record has no relative links, its frontmatter paths exist, and the only open/2448- hit is history line :248.
Findings
- F8 (Nit, non-blocking): one sentence in F6's Solution misdescribes the validator (inline).
Checked, no finding
- The record calls 5440707809 "round 4" because it counts posted reviews; that review's own body says round 5, since my round 4 was never posted. The numbering is consistent inside the record.
- None of my threads is open.
Checks
On the loop's compute hub at this head, base develop 30e6b7127 (receipt server-gates-krkavec-143): pre-commit profile gate exit 0 (106 s), tree clean after the gate; linter markdown, linter cspell, linter lychee exit 0; frontmatter-validator --all: 19 errors / 4 warnings at this head and 19 / 4 at develop 30e6b7127 re-measured, so no new frontmatter finding; validate-audit-record.py --pr-number 2465 over the live review comments: 7 rows, 4 log entries, 0 failures. GitHub checks at this head at posting time: "1 check, Docs Lint completed/success". At posting, develop is 30e6b7127, this head's base.
| - Concern: F3 and F4 are duplicates, which take `Disposition=NO_ACTION`, | ||
| `Thread state=SUPERSEDED`, and the reply URL as the resolution reference; both cited a commit | ||
| subject and were recorded as `SUPERSEDED`/`RESOLVED`. | ||
| - Solution: change the three cells per row. The validator had rejected a reply URL while the |
There was a problem hiding this comment.
[Nit][F8] F6's Solution attributes a disposition rule to the validator that it does not have
"The validator had rejected a reply URL while the disposition was SUPERSEDED" suggests the validator ties Resolution references to the disposition. It does not. validate-audit-record.py:162-168 skips any reference that starts with http and never reads Disposition, and the script has not changed since 2026-09-26.
A properly formatted <https://…> reference passes under any disposition, as F3 and F4 now show. If a failure did occur, it came from the reference's form, not from SUPERSEDED.
Consider naming the actual failure or dropping the clause, so a reader does not infer a rule that process-pr-review:232-234 contradicts. Non-blocking.
There was a problem hiding this comment.
You are right, thanks. The validator never reads Disposition; the earlier failure came from the reference's form: F3 cited the plain text "superseded by F1", which is neither a commit subject nor an http URL. The F6 Solution misattributes it. #2465 merged before a fix, so I am leaving the merged record unchanged and recording the correction here.
|
ACK 14108b0 — the record of all five reviews (Copilot's and da2ce7's rounds 1, 2, 3 and 5) verified cell by cell against the capture, with the F4-F6 record fixes (verbatim blocks, NO_ACTION/SUPERSEDED duplicates, N/A reviewer ID) and the three content fixes carried unchanged on the rebase onto 30e6b71 |
|
ACK 14108b0 |

Related to #2448 (closed by #2459) and EPIC #1488.
Archives the SI-17 spec after #2459 merged:
docs/issues/open/2448-1488-si-17-migrate-standalone-udp-environment/todocs/issues/closed/.status: done,related-pr: 2459, last checkpoint ticked, closing progress-log entry. Its relative links to SI-23 and SI-24 now point intodocs/issues/open/(the move would otherwise break them, as found in chore(issues): archive closed issue #2417 spec #2457).Docs-only;
linter alland the pre-commit and pre-push hooks pass.