# Config for the `linkcheck` CI job (.github/workflows/ci.yml) — kept as a
# checked-in file rather than inline `--exclude` args so it's also usable
# locally (`lychee --config .lychee.toml README.md ARCHITECTURE.md ROADMAP.md docs`).
# `ideas/` and `decisions/` are deliberately untracked by git (see the Cargo.toml
# `exclude` comment) — they exist on disk locally but never reach GitHub, so any
# link to them is unconditionally broken there. Excluding the paths, not
# rewriting every README/ARCHITECTURE/ROADMAP link, keeps those docs readable
# for local (checkout-based) readers who do have the directories.
#
# lychee resolves relative Markdown links to absolute filesystem paths (e.g.
# `file:///home/runner/work/ProcessKit-rs/ProcessKit-rs/ideas/README.md`)
# before applying `exclude`, so an anchored `^ideas/`/`^decisions/` pattern
# never matches. Match the directory as a path segment instead, anywhere in
# the resolved URI, with or without a trailing path (a bare `.../decisions`
# link with no trailing slash is also reported by lychee).
= [
"/ideas($|/)",
"/decisions($|/)",
]
# Retry transient failures (rate limiting, flaky hosts) instead of flaking the
# whole CI job on a temporary network hiccup.
= 3
= 5
# Some external hosts (docs.rs, crates.io mirrors) are slow under CI network
# conditions; give them more room than lychee's 20s default before giving up.
= 30