Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
cdf376d
docs(discussions): [#2429] open the templated documentation design di…
josecelano Oct 9, 2026
a7d73ee
docs(discussions): [#2429] add the round's pull-request number to the…
josecelano Oct 9, 2026
ade537e
docs(discussions): [#2429] name the AI model used in the discussion
josecelano Oct 9, 2026
714ab03
docs(adrs): list the sccache ADR in the root ADR index
josecelano Oct 9, 2026
48fb535
docs(index): list the two missing templates
josecelano Oct 9, 2026
c33c15a
docs(skills): align the spec frontmatter field lists with the validator
josecelano Oct 9, 2026
ce2095d
docs(issues): [#2491] point the v4.0.0 references at the milestone
josecelano Oct 9, 2026
0287bf8
docs(discussions): [#2429] note that the cited drift is fixed in the …
josecelano Oct 9, 2026
8ae896e
docs(discussions): [#2429] present template granularity as open in Q3
josecelano Oct 9, 2026
473bc26
docs(discussions): [#2429] stop calling the tooling phase file-additi…
josecelano Oct 9, 2026
3ad739b
docs(discussions): [#2429] present the session record as an edited re…
josecelano Oct 9, 2026
100b06e
docs(pr-reviews): [#2429] add the PR #2501 review audit record
josecelano Oct 9, 2026
5d06f42
docs(discussions): [#2429] quote the proposal's own words for check r…
josecelano Oct 10, 2026
3104268
docs(discussions): [#2429] list every destination the discussions gui…
josecelano Oct 10, 2026
a3e1c39
docs(issues): [#2491] rewrap the v4.0.0 milestone lines
josecelano Oct 10, 2026
71b03c7
docs(pr-reviews): [#2429] correct the late stamp in the PR #2501 audi…
josecelano Oct 10, 2026
c600705
docs(pr-reviews): [#2429] record the PR #2501 review round 2
josecelano Oct 10, 2026
505fa57
docs(pr-reviews): [#2429] correct the rebased commit times in the PR …
josecelano Oct 11, 2026
9fdc9c1
docs(pr-reviews): [#2429] record the PR #2501 review round 3
josecelano Oct 11, 2026
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
1 change: 1 addition & 0 deletions docs/adrs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ supersession rules.
| [20260519000000](20260519000000_define_global_cli_output_contract.md) | 2026-05-19 | Define the global CLI output contract | All first-party binaries use JSON on stdout (result data) and stderr (NDJSON diagnostics/progress). No plain text. TTY refusal for stdout-result-data commands. Exit codes 0/1/2. Prescriptive; migration is progressive. |
| [20260527175600](20260527175600_keep_protocol_and_domain_types_decoupled.md) | 2026-05-27 | Keep protocol and domain types decoupled | Keep protocol-local and domain-local value types (for example `NumberOfBytes`) and map at boundaries so HTTP/UDP wire evolution does not force domain-wide refactors and domain changes do not force protocol redesign. |
| [20260603000000](20260603000000_keep_unit_tests_inside_container_build.md) | 2026-06-03 | Keep unit tests inside the container build process | Unit tests must run inside the Containerfile build (not on the GHA host) because only the container build environment proves the binary works on the actual target infrastructure (Debian trixie, distroless runtime, specific glibc). |
| [20260612000000](20260612000000_adopt_sccache_for_ci_bare_builds.md) | 2026-06-12 | Adopt `sccache` for non-Docker CI builds only | Use `sccache` in GitHub Actions jobs that compile Rust directly on the runner (about 60 % faster cross-run cold builds); reject it for local development and Docker-based jobs. |
| [20260617093046](20260617093046_reject_wildcard_external_ip.md) | 2026-06-17 | Reject wildcard IPs as invalid `external_ip` values | Reject `0.0.0.0`/`::` in `external_ip` config at startup, change default to `None`. Fail fast on invalid config. |
| [20260620000000](20260620000000_add_ipv6_v6only_config_option.md) | 2026-06-20 | Add `ipv6_v6only` config option for separate sockets | Add `ipv6_v6only` boolean flag to `UdpTracker` and `HttpTracker` configs, defaulting to `false` (dual-stack), so operators can opt into separate IPv4/IPv6 sockets. |
| [20260623200526](20260623200526_adopt_contract-first_architecture_for_rest_api.md) | 2026-06-23 | Adopt a contract-first architecture for the REST API | Structure the REST API into four layers: protocol contract, application/use-case, runtime adapter, and transport adapter. Enables a future tracker-agnostic REST API standard. |
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
semantic-links:
related-artifacts:
- "issue #2491"
- "issue #1659"
- "issue #144"
- "issue #2411"
- docs/issues/open/2491-i2p-peer-support/EPIC.md
Expand Down Expand Up @@ -39,8 +38,9 @@ PR #2059, keeping the contributor as author of the implementation commits and ad
with seven required actions.

Jose supports the feature and considers careful design of its edge cases necessary before any of
it merges. The maintainers are focused on releasing v4.0.0 (#1659), so the work is postponed until
after that release, when the roadmap is redefined.
it merges. The maintainers are focused on releasing v4.0.0 (see the
[v4.0.0 milestone](https://github.com/torrust/torrust-tracker/milestone/5)), so the work is postponed
until after that release, when the roadmap is redefined.

This discussion keeps everything learned so far, so that PRs #2050 and #2059 can be closed without
losing it. Closing them does not reject the feature: they stay on GitHub as reference, and
Expand Down
3 changes: 3 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ A discussion is input, not a decision.
| [discussions/2003-overhaul-guardrails-and-automation/20261003-semantic-linking-knowledge-graph/](discussions/2003-overhaul-guardrails-and-automation/20261003-semantic-linking-knowledge-graph/) | Semantic linking and a repository knowledge graph (EPIC #2264) |
| [discussions/2003-overhaul-guardrails-and-automation/20261003-specifications-and-rationale/](discussions/2003-overhaul-guardrails-and-automation/20261003-specifications-and-rationale/) | Specifications and rationale: tests as specification, where the why lives (EPIC #2003) |
| [discussions/2003-overhaul-guardrails-and-automation/20261007-ai-model-provenance-in-commits/](discussions/2003-overhaul-guardrails-and-automation/20261007-ai-model-provenance-in-commits/) | AI model provenance in commits: which models a commit records, and how (EPIC #2003) |
| [discussions/2429-templated-documentation/20261009-templated-documentation-design/](discussions/2429-templated-documentation/20261009-templated-documentation-design/) | Templated documentation: rendering restated facts from committed data, combined with typed frontmatter (issue #2429, PR #2430) |
| [discussions/2491-i2p-peer-support/20261008-i2p-peer-support-design/](discussions/2491-i2p-peer-support/20261008-i2p-peer-support-design/) | I2P peer support design: PRs #2050 and #2059, their review, and open questions (EPIC #2491) |

## External Source Snapshots
Expand Down Expand Up @@ -183,9 +184,11 @@ that type.
| [templates/EPIC.md](templates/EPIC.md) | Template for EPIC issue specifications |
| [templates/IMPLEMENTATION-RETROSPECTIVE.md](templates/IMPLEMENTATION-RETROSPECTIVE.md) | Template for issue-local implementation retrospectives |
| [templates/ISSUE.md](templates/ISSUE.md) | Template for task / bug / feature issue specifications |
| [templates/MANUAL-VERIFICATION-EVIDENCE.md](templates/MANUAL-VERIFICATION-EVIDENCE.md) | Template for issue-local manual verification evidence |
| [templates/REFACTOR-PLAN.md](templates/REFACTOR-PLAN.md) | Template for refactor plan specifications |
| [templates/SECURITY-ANALYSIS.md](templates/SECURITY-ANALYSIS.md) | Template for public scanner-finding and vulnerability analysis |
| [templates/SECURITY-REPORT.md](templates/SECURITY-REPORT.md) | Template for handled coordinated-disclosure records |
| [templates/PR-REVIEW-RETROSPECTIVE.md](templates/PR-REVIEW-RETROSPECTIVE.md) | Template for PR review retrospectives, when warranted |
| [templates/PR-REVIEW-TEMPLATE.md](templates/PR-REVIEW-TEMPLATE.md) | Template for tracking all PR review findings and responses |
| [templates/REVIEW-FINDINGS.md](templates/REVIEW-FINDINGS.md) | Advisory reviewer finding format for inline review threads |

Expand Down
21 changes: 13 additions & 8 deletions docs/issues/open/2491-i2p-peer-support/EPIC.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@ epic: null
github-issue: 2491
spec-path: docs/issues/open/2491-i2p-peer-support/EPIC.md
epic-owner: null
last-updated-utc: "2026-10-08 16:45"
last-updated-utc: "2026-10-09 11:01"
semantic-links:
skill-links:
- create-issue
related-artifacts:
- .github/skills/dev/planning/create-issue/SKILL.md
- docs/discussions/AGENTS.md
- docs/discussions/2491-i2p-peer-support/20261008-i2p-peer-support-design/README.md
- "issue #1659"
- "issue #144"
- "issue #2411"
- docs/issues/closed/1987-add-config-option-to-use-ip-from-announce-query-string/ISSUE.md
Expand All @@ -39,9 +38,10 @@ compact response format, swarm statistics, the REST API, and the tracker's trust
review recorded seven required actions, including a merge blocker: a plain HTTP announce cannot
prove that a client owns the I2P Destination it supplies.

The maintainers are focused on releasing v4.0.0 (#1659). This EPIC is blocked until that release
ships and the roadmap is redefined. It exists so the work and its history are not lost when
PRs #2050 and #2059 are closed: closing them does not reject the feature.
The maintainers are focused on releasing v4.0.0 (see the
[v4.0.0 milestone](https://github.com/torrust/torrust-tracker/milestone/5)). This EPIC is blocked until
that release ships and the roadmap is redefined. It exists so the work and its history are not lost
when PRs #2050 and #2059 are closed: closing them does not reject the feature.

## Scope

Expand All @@ -60,7 +60,9 @@ PRs #2050 and #2059 are closed: closing them does not reject the feature.

### Out of Scope

- Implementation before v4.0.0 (#1659) is released and the roadmap includes this EPIC.
- Implementation before v4.0.0 is released (see the
[v4.0.0 milestone](https://github.com/torrust/torrust-tracker/milestone/5)) and the roadmap includes
this EPIC.
- The REST API representation of I2P peers. It belongs to the REST API overhaul (#144) and needs
an ADR there; until then, I2P peers must not change the existing `peer_addr` field.
- UDP over I2P, I2P PEX, and I2P DHT. They are separate I2P specifications; a later EPIC may add
Expand Down Expand Up @@ -143,6 +145,8 @@ Append one line per meaningful update.
#2491 and opened the design discussion with the PR #2059 review documents as source material.
- 2026-10-08 16:45 UTC - Jose Celano/AI assistant using Copilot SDK in VS Code - Corrected the
review attribution after PR #2492 review finding F2.
- 2026-10-09 11:01 UTC - Jose Celano/AI assistant using Copilot SDK in VS Code (Claude Opus 5.5) - Pointed
the v4.0.0 references at the `v4.0.0` milestone; #1659 is the closed v4.0.0-rc.1 release issue.

## Acceptance Criteria

Expand Down Expand Up @@ -182,8 +186,9 @@ Append one line per meaningful update.

## References

- Related issues: #1659 (v4.0.0 release), #144 (REST API overhaul), #2411 (spam and abuse
resistance), #1987 (`use_ip_from_query_string`)
- Related issues: #144 (REST API overhaul), #2411 (spam and abuse resistance), #1987
(`use_ip_from_query_string`)
- Related milestone: [v4.0.0 milestone](https://github.com/torrust/torrust-tracker/milestone/5)
- Related PRs: #2050 (original proposal), #2059 (rebased draft with the maintainer review)
- Related ADRs: none yet
- I2P BitTorrent specification: <https://i2p.net/en/docs/applications/bittorrent/>
Loading
Loading