Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions docs/copilot-pr-reviews/pr-2208-copilot-suggestions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
semantic-links:
skill-links:
- process-copilot-suggestions
related-artifacts:
- .github/skills/dev/pr-reviews/process-copilot-suggestions/SKILL.md
---

<!-- cspell:disable -->

<!-- skill-link: process-copilot-suggestions -->

# PR #2208 Copilot Suggestions Tracking

Source: Copilot PR review threads for https://github.com/torrust/torrust-tracker/pull/2208

Status legend:

- `action`: code/docs change applied
- `no-action`: suggestion reviewed; no code change needed
- `resolved`: thread resolved in PR

## Workflow

1. Download all review threads (including resolved/outdated state and thread IDs).
2. Add one row per thread in the Suggestions table.
3. Process suggestions one by one:
- decide `action` or `no-action`
- if `action`, apply change and validate
- if needed, commit changes
- reply on the PR thread with the fix commit and outcome, or the no-action rationale
- resolve the PR thread
4. Set `Thread State` to `resolved` once resolved in PR.

## Processing Log

- 2026-09-11: Started processing two unresolved Copilot suggestions.
- 2026-09-11: Resolved both suggestions and confirmed the refreshed PR thread list has no unresolved threads.

## Suggestions

| # | Thread ID | Path | URL | Suggestion Summary | Decision | Reply URL | Status | Thread State |
| --- | --------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------- | --------- | ------ | ------------ |
| 1 | PRRT_kwDOGp2yqc6hkS7S | `docs/issues/open/2185-2003-triage-advisory-external-link-check-findings/external-link-baseline.md` | https://github.com/torrust/torrust-tracker/pull/2208#discussion_r3991627828 | Clarify docs.rs redirect and final HTTP status. | no-action: current text explicitly states the redirect to `/latest` and HTTP 200 at the final URL. | https://github.com/torrust/torrust-tracker/pull/2208#discussion_r3992077476 | DONE | RESOLVED |
| 2 | PRRT_kwDOGp2yqc6hkS8B | `packages/udp-server/README.md` | https://github.com/torrust/torrust-tracker/pull/2208#discussion_r3991627886 | Use the canonical docs.rs `/latest` URL consistently. | action: updated all 14 affected README links and their audit record in `407b295a`. | https://github.com/torrust/torrust-tracker/pull/2208#discussion_r3992129082 | DONE | RESOLVED |

## Notes

- Keep this file as an audit log of review handling for the PR.
- Prefer concise decisions with explicit rationale.
- If no code changes are needed, explain why in `Decision`.
- Reply on every PR suggestion thread before resolving it so the decision is visible to reviewers.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ github-issue: 2185
spec-path: docs/issues/open/2185-2003-triage-advisory-external-link-check-findings/ISSUE.md
branch: "2185-2003-triage-advisory-external-link-check-findings"
related-pr: null
last-updated-utc: 2026-09-11 15:38
last-updated-utc: 2026-09-11 16:45
semantic-links:
skill-links:
- create-issue
Expand Down Expand Up @@ -84,13 +84,13 @@ Not applicable. This is evidence-driven documentation maintenance and configurat

Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`.

| ID | Status | Task | Notes / Expected Output |
| --- | ------ | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| T1 | DONE | Preserve and classify the baseline | `external-link-baseline.md` maps all 461 report errors to nine recurring categories and dispositions. |
| T2 | TODO | Repair clearly stale references | Small, reviewable repairs replace or remove only references confirmed stale, with replacement-target evidence. |
| T3 | DONE | Add justified narrow exclusions | C1/C9 and C2 online-only rules are verified on merged upstream hosted runs. |
| T4 | DONE | Revalidate hosted signal | Hosted run 34616458439 excluded C1/C9 and C2 while retaining visible unrelated failures and its report artifact. |
| T5 | TODO | Document operations and review completion | Triage procedure, residual risks, acceptance evidence, and independent review are updated from observed results. |
| ID | Status | Task | Notes / Expected Output |
| --- | ----------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| T1 | DONE | Preserve and classify the baseline | `external-link-baseline.md` maps all 461 report errors to nine recurring categories and dispositions. |
| T2 | IN_PROGRESS | Repair clearly stale references | Repaired C3's 14 unavailable package-specific docs.rs links; hosted verification is pending. |
| T3 | DONE | Add justified narrow exclusions | C1/C9 and C2 online-only rules are verified on merged upstream hosted runs. |
| T4 | DONE | Revalidate hosted signal | Hosted run 34616458439 excluded C1/C9 and C2 while retaining visible unrelated failures and its report artifact. |
| T5 | TODO | Document operations and review completion | Triage procedure, residual risks, acceptance evidence, and independent review are updated from observed results. |

## Commit Points

Expand Down Expand Up @@ -133,11 +133,12 @@ A category that needs no repository change is recorded in issue-local evidence w
- 2026-09-11 08:32 UTC - Task Reviewer - Independently reviewed the replacement hosted run and report artifact. The evidence supports T3/T4, AC3-AC5, and M4; the issue remains open for the remaining C2-C8 work. See `agent-review-reports.md`.
- 2026-09-11 09:25 UTC - Copilot - Added online-only `exclude_loopback = true` for C2. With explicit online configuration, a three-link boundary test excluded `127.0.0.1` and `localhost` while checking `https://www.rust-lang.org/` successfully. Hosted verification remains pending.
- 2026-09-11 15:38 UTC - Copilot - After PR #2202 merged, [run 34616458439](https://github.com/torrust/torrust-tracker/actions/runs/34616458439) completed on merged revision `f6df96bf`: it visibly failed with 44 remaining errors, excluded 495 links, uploaded a retained 1,533-byte report artifact, and contained no loopback (`localhost` or `127.0.0.1`) or C1/C9 `#discussion_r` URLs. Unrelated `404`, `403`, FSF transport, issue-comment, pull-request-review, and other missing-fragment failures remained visible.
- 2026-09-11 16:45 UTC - Copilot - Verified the 14 C3 package manifests each inherit `documentation = https://docs.rs/crate/torrust-tracker/`; that target returned HTTP 200 and redirects to `latest`. Replaced only the 14 unavailable package-specific docs.rs links with the shared tracker documentation target. Hosted workflow verification remains pending.

## Acceptance Criteria

- [x] AC1: An issue-local baseline records the exact hosted run, revision, summary counts, and a disposition for every distinct failing URL or recurring failure pattern.
- [ ] AC2: Each repair changes only a verified stale reference and records why its replacement target is correct.
- [ ] AC2: Each repair changes only a verified stale reference and records why its replacement target is correct. C3 repair evidence is recorded; hosted verification remains pending.
- [x] AC3: Each added exclusion is online-only, narrowly scoped to a documented durable false-positive category, and does not suppress unrelated external-link failures.
- [x] AC4: The advisory workflow remains scheduled/manual, visibly fails for remaining external-link failures, and continues to upload its Markdown report on failure.
- [x] AC5: At least one hosted rerun after each remediation slice records the resulting counts and explains material differences from the prior run.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,16 @@ semantic-links:
- Follow-up actions:
- Manually dispatch the hosted External Link Check with the C2 change, retain the report artifact, and record its URL, revision, counts, C2 absence, remaining unrelated failures, and upload outcome.
- After that evidence is independently reviewed, restore AC3 and AC5 only if the hosted boundary behavior passes.

### 2026-09-11 16:45 UTC - Task Reviewer

- Invocation scope: Read-only review of the uncommitted C3 docs.rs repair slice for issue #2185: all changed package `README.md` files, `ISSUE.md`, and `external-link-baseline.md`.
- Inputs: Uncommitted diff and status; the C3 inventory in `external-link-baseline.md`; root and package Cargo manifests; resolved `cargo metadata --no-deps --format-version 1`; and live HTTP header checks for the replacement and all replaced docs.rs URLs.
- Evidence: Exactly 14 package README files changed, exactly matching the 14 C3 inventory entries, with no missing or extra paths. Each changes only its Crate documentation URL: the prior individual docs.rs target returns HTTP 404, and the replacement is `https://docs.rs/crate/torrust-tracker/`. Every affected package declares `documentation.workspace = true`; resolved Cargo metadata gives all 14 the inherited `https://docs.rs/crate/torrust-tracker/` value from `[workspace.package]`. The replacement returns HTTP 200 after its expected redirect to `/crate/torrust-tracker/latest`. The five non-C3 package documentation links remain unchanged. `git diff --check` passes.
- Findings:
- Resolved: The C3 repair is precisely scoped and each replacement target agrees with its package's resolved Cargo documentation metadata.
- Pending: Hosted External Link Check verification is correctly recorded as pending. Do not mark T2, AC2, M3, or a C3 hosted-verification result complete until a merged hosted run and retained report prove the 14 stale URLs no longer appear while unrelated failures remain visible.
- Verdict: REVIEW WARNED.
- Follow-up actions:
- Merge the C3 slice, manually dispatch the advisory workflow, retain its report artifact, and record the run URL, revision, counts, absence of all 14 replaced URLs, remaining failures, and upload outcome.
- Independently review that hosted evidence before completing C3-related issue criteria.
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ The following nine categories cover all 461 report errors. C1 and C9 share one p
### C3: Unavailable docs.rs crate pages — 14 occurrences

- **Pattern:** `https://docs.rs/torrust-*` and `https://docs.rs/bittorrent-udp-protocol` returning `404`.
- **Disposition:** Repair candidate. These package README links point at unavailable documentation pages and are externally observable stale references.
- **Next action:** Verify current published crate names and replacement documentation locations, then repair them in a small dedicated slice.
- **Disposition:** Repaired. These package README links pointed at unavailable individual crate pages; the corresponding workspace packages inherit the shared `https://docs.rs/crate/torrust-tracker/latest` documentation target.
- **Next action:** Complete local verification: all 14 affected package manifests report the shared target through Cargo metadata, and docs.rs returned HTTP 200 for it. Verify removal from a hosted report after this repair slice merges.

### C4: Stale repository-controlled GitHub links — 3 occurrences

Expand Down Expand Up @@ -110,6 +110,8 @@ The 14 affected package README files are:
- `packages/udp-protocol/README.md`
- `packages/udp-server/README.md`

All 14 links now use `https://docs.rs/crate/torrust-tracker/latest`. Cargo metadata reports the same inherited documentation value for each workspace package, and docs.rs returns HTTP 200 for this canonical target.

### C4-C6: Individually actionable or investigatory URLs

| URL | Diagnostic | Source | Disposition |
Expand Down
2 changes: 1 addition & 1 deletion packages/axum-health-check-api-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Example response:

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-axum-health-check-api-server).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/axum-http-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The Torrust Bittorrent HTTP tracker.

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-axum-http-server).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## Testing and Coverage

Expand Down
2 changes: 1 addition & 1 deletion packages/axum-rest-api-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The Torrust Tracker Rest API.

## Documentation

[Crate documentation](https://docs.rs/torrust-axum-tracker-api-server).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/axum-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A wrapper for the Axum server used by Torrust tracker HTTP services to add timeo

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-axum-server).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## Notes

Expand Down
2 changes: 1 addition & 1 deletion packages/events/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A library with functionality to handle events in [Torrust Tracker](https://githu

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-events).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/http-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ You usually don’t need to use this library directly. Instead, you should use t

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-http-core).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/http-protocol/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A library with the primitive types and functions used by BitTorrent HTTP tracker

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-http-protocol).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/rest-api-application/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Application/use-case layer for the Torrust Tracker REST API.

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-rest-api-application).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/rest-api-protocol/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Contract/protocol types for the Torrust Tracker REST API.

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-rest-api-protocol).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/rest-api-runtime-adapter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Tracker-specific runtime adapter for the REST API application layer.

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-rest-api-runtime-adapter).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/tracker-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ You usually don’t need to use this library directly. Instead, you should use t

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-core).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## Testing

Expand Down
2 changes: 1 addition & 1 deletion packages/udp-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ You usually don’t need to use this library directly. Instead, you should use t

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-udp-core).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

[UDP ban-service benchmarking](docs/benchmarking/banning.md).

Expand Down
2 changes: 1 addition & 1 deletion packages/udp-protocol/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ implementation this crate builds upon.

## Documentation

[Crate documentation](https://docs.rs/bittorrent-udp-protocol).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/udp-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The Torrust Bittorrent UDP tracker.

## Documentation

[Crate documentation](https://docs.rs/torrust-tracker-udp-server).
[Crate documentation](https://docs.rs/crate/torrust-tracker/latest).

## License

Expand Down
Loading