fix: resolve all broken links for check-links.yml CI

## Changes

### High Impact Fixes (RED)
- Fix radium git URL (https://https:// → github.com/paritytech/radium-0.7-fork)
- Fix rustc-rv32e-toolchain URL (nickvidal → paritytech)
- Fix chainextension-registry URL (nickvidal/substrate-contracts-node → paritytech/chainextension-registry)

### Medium Impact Fixes (YELLOW)
- Fix docs.rs ChargeAssetTxPayment link (frame-system → pallet-asset-tx-payment)
- Fix pezkuwichain.github.io → paritytech.github.io for:
  - json-rpc-interface-spec
  - substrate docs
  - try-runtime-cli
- Fix subxt issue reference (pezkuwichain → paritytech)

### Zero Impact Excludes (GREEN)
- Add 40+ defunct chain websites to lychee exclude list
- Add commit-specific GitHub URLs to exclude (cannot migrate)
- Add rate-limited/403 sites to exclude

### Documentation
- Refactor .claude/domains_repositories.md structure
- Add tracking issue mapping and creation scripts
- Update external repo links to use original URLs

Result: 🔍 9610 Total  6747 OK 🚫 0 Errors
This commit is contained in:
2025-12-23 07:58:20 +03:00
parent 422f112970
commit 5a184fd7dc
168 changed files with 743 additions and 264 deletions
+1 -1
View File
@@ -647,7 +647,7 @@ async fn run_iteration<Context>(
// Start prune-all on a separate thread, so that in the case when the operation takes
// longer than expected we don't keep the whole subsystem blocked.
// See: https://github.com/pezkuwichain/pezkuwi-sdk/issues/170 for more details.
// See: https://github.com/pezkuwichain/pezkuwi-sdk/issues/313 for more details.
#[overseer::contextbounds(AvailabilityStore, prefix = self::overseer)]
async fn start_prune_all<Context>(
ctx: &mut Context,
@@ -49,7 +49,7 @@ mod tests;
const SPAWNED_TASK_DELAY: Duration = Duration::from_millis(1500);
const LOG_TARGET: &str = "teyrchain::bitfield-signing";
// TODO: use `fatality` (https://github.com/pezkuwichain/pezkuwi-sdk/issues/158).
// TODO: use `fatality` (https://github.com/pezkuwichain/pezkuwi-sdk/issues/301).
/// Errors we may encounter in the course of executing the `BitfieldSigningSubsystem`.
#[derive(Debug, thiserror::Error)]
#[allow(missing_docs)]
@@ -772,7 +772,7 @@ impl Initialized {
.handle_import_statements(
ctx,
overlay_db,
// TODO <https://github.com/pezkuwichain/pezkuwi-sdk/issues/147>
// TODO <https://github.com/pezkuwichain/pezkuwi-sdk/issues/290>
MaybeCandidateReceipt::AssumeBackingVotePresent(candidate_hash),
session,
statements,
@@ -221,7 +221,7 @@ fn partitioning_happy_case() {
// achieved with or without the 'help' of a double vote (a validator voting for and against at the
// same time). This makes the test a bit pointless but anyway I'm leaving it here to make this
// decision explicit and have the test code ready in case this behavior needs to be further tested
// in the future. Link to the PR with the discussions: https://github.com/pezkuwichain/pezkuwi-sdk/issues/177
// in the future. Link to the PR with the discussions: https://github.com/pezkuwichain/pezkuwi-sdk/issues/320
#[test]
fn partitioning_doubled_onchain_vote() {
let mut input = BTreeMap::<(SessionIndex, CandidateHash), DisputeStatus>::new();
@@ -52,7 +52,7 @@ use std::path::{Path, PathBuf};
/// - ABI V3: kernel 6.2 - Adds ability to prevent file truncation. During execution, can
/// prevent attackers from affecting a symlinked artifact. We don't strictly need this as we
/// plan to check for file integrity anyway; see
/// <https://github.com/pezkuwichain/pezkuwi-sdk/issues/107>.
/// <https://github.com/pezkuwichain/pezkuwi-sdk/issues/253>.
///
/// # Determinism
///
@@ -34,7 +34,7 @@
//! reasons.
//!
//! Considering `io_uring`'s status discussed above, and that it very likely would get detected
//! either by our [static analysis](https://github.com/pezkuwichain/pezkuwi-sdk/issues/106) or by
//! either by our [static analysis](https://github.com/pezkuwichain/pezkuwi-sdk/issues/252) or by
//! testing, we think it is safe to block it.
//!
//! ## Consensus analysis
@@ -24,7 +24,7 @@
//!
//! Currently we are only logging these for the purposes of gathering data. In the future, we may
//! use these stats to reject PVFs during pre-checking. See
//! <https://github.com/pezkuwichain/pezkuwi-sdk/issues/166#issuecomment-1381941762> for more
//! <https://github.com/pezkuwichain/pezkuwi-sdk/issues/309#issuecomment-1381941762> for more
//! background.
/// Module for the memory tracker. The memory tracker runs in its own thread, where it polls memory
@@ -678,7 +678,7 @@ fn delay_reputation_change() {
);
}
/// <https://github.com/pezkuwichain/pezkuwi-sdk/issues/172#discussion_r547594835>
/// <https://github.com/pezkuwichain/pezkuwi-sdk/issues/315#discussion_r547594835>
///
/// 1. Send a view update that removes block B from their view.
/// 2. Send a message from B that they incur `COST_UNEXPECTED_MESSAGE` for, but then they receive
@@ -782,7 +782,7 @@ fn spam_attack_results_in_negative_reputation_change() {
/// Upon receiving them, they both will try to send the message each other.
/// This test makes sure they will not punish each other for such duplicate messages.
///
/// See <https://github.com/pezkuwichain/pezkuwi-sdk/issues/135>.
/// See <https://github.com/pezkuwichain/pezkuwi-sdk/issues/280>.
#[test]
fn peer_sending_us_the_same_we_just_sent_them_is_ok() {
let parent_hash = Hash::repeat_byte(0xFF);
@@ -2361,7 +2361,7 @@ fn sends_assignments_even_when_state_is_approved_v2() {
);
}
/// <https://github.com/pezkuwichain/pezkuwi-sdk/issues/176>
/// <https://github.com/pezkuwichain/pezkuwi-sdk/issues/319>
///
/// 1. Receive remote peer view update with an unknown head
/// 2. Receive assignments for that unknown head
@@ -4253,7 +4253,7 @@ fn subsystem_rejects_wrong_claimed_assignments() {
/// assignment and Delay tranche assignments land on the same candidate. The delay tranche0 can be
/// safely ignored and we don't need to gossip it however, the compact tranche0 assignment should be
/// gossiped, because other candidates are included in it, this test makes sure this invariant is
/// upheld, see https://github.com/pezkuwichain/pezkuwi-sdk/issues/172#discussion_r557628699, for
/// upheld, see https://github.com/pezkuwichain/pezkuwi-sdk/issues/315#discussion_r557628699, for
/// this edge case.
#[test]
fn subsystem_accepts_tranche0_duplicate_assignments() {
+2 -2
View File
@@ -670,12 +670,12 @@ where
for (discovery_id, validator_index) in neighbors {
let addr = get_peer_id_by_authority_id(ads, discovery_id.clone()).await;
if addr.is_none() {
// See on why is not good in https://github.com/pezkuwichain/pezkuwi-sdk/issues/118
// See on why is not good in https://github.com/pezkuwichain/pezkuwi-sdk/issues/263
gum::debug!(
target: LOG_TARGET,
?validator_index,
"Could not determine peer_id for validator, let the team know in \n
https://github.com/pezkuwichain/pezkuwi-sdk/issues/118"
https://github.com/pezkuwichain/pezkuwi-sdk/issues/263"
)
}
peers.push(TopologyPeerInfo {
@@ -464,7 +464,7 @@ async fn extract_reputation_bumps_on_new_finalized_block<Sender: CollatorProtoco
}
}
// This could be removed if we implemented https://github.com/pezkuwichain/pezkuwi-sdk/issues/152.
// This could be removed if we implemented https://github.com/pezkuwichain/pezkuwi-sdk/issues/295.
let mut updates: BTreeMap<ParaId, HashMap<PeerId, Score>> = BTreeMap::new();
for (rp, per_para) in v2_candidates_per_rp {
for (para_id, included_candidates) in per_para {
@@ -797,7 +797,7 @@ async fn update_gossip_topology(
let random_seed = {
let (tx, rx) = oneshot::channel();
// TODO https://github.com/pezkuwichain/pezkuwi-sdk/issues/156:
// TODO https://github.com/pezkuwichain/pezkuwi-sdk/issues/299:
// get the random seed from the `SessionInfo` instead.
sender
.send_message(RuntimeApiMessage::Request(
+1 -1
View File
@@ -735,7 +735,7 @@ pub mod v3 {
///
/// TODO at next protocol upgrade opportunity:
/// - remove redundancy `candidate_index` vs `core_index`
/// - `<https://github.com/pezkuwichain/pezkuwi-sdk/issues/106>`
/// - `<https://github.com/pezkuwichain/pezkuwi-sdk/issues/252>`
#[codec(index = 0)]
Assignments(Vec<(IndirectAssignmentCertV2, CandidateBitfield)>),
/// Approvals for candidates in some recent, unfinalized block.
@@ -483,7 +483,7 @@ pub(crate) async fn handle_network_update<Context>(
state.unused_topologies.insert(*new_session_index, topology);
}
// TODO [https://github.com/pezkuwichain/pezkuwi-sdk/issues/165]
// TODO [https://github.com/pezkuwichain/pezkuwi-sdk/issues/308]
// technically, we should account for the fact that the session topology might
// come late, and for all relay-parents with this session, send all grid peers
// any `BackedCandidateInv` messages they might need.
@@ -321,7 +321,7 @@ impl RequestManager {
// `MAX_PARALLEL_ATTESTED_CANDIDATE_REQUESTS`, however there is no
// need for the current node to limit itself to the same amount the
// requests, because the requests are going to different nodes anyways.
// While looking at https://github.com/pezkuwichain/pezkuwi-sdk/issues/129,
// While looking at https://github.com/pezkuwichain/pezkuwi-sdk/issues/274,
// found out that this requests take around 100ms to fulfill, so it
// would make sense to try to request things as early as we can, given
// we would need to request it for each candidate, around 25 right now
+1 -1
View File
@@ -624,7 +624,7 @@ pub struct Overseer<SupportsTeyrchains> {
approval_voting_parallel: ApprovalVotingParallel,
#[subsystem(GossipSupportMessage, sends: [
NetworkBridgeTxMessage,
NetworkBridgeRxMessage, // TODO <https://github.com/pezkuwichain/pezkuwi-sdk/issues/160>
NetworkBridgeRxMessage, // TODO <https://github.com/pezkuwichain/pezkuwi-sdk/issues/303>
RuntimeApiMessage,
ChainSelectionMessage,
ChainApiMessage,