🟥 get-vote-receipt-api is down (0 in 0 ms) [skip ci] [upptime]
Apr 17, 10-11 PM (24)
Apr 17, 11-12 AM (16)
Apr 18, 12-1 AM (2)
Apr 18, 1-2 AM (2)
Apr 18, 2-3 AM (6)
Apr 18, 3-4 AM (1)
Apr 18, 4-5 AM (2)
Apr 18, 5-6 AM (2)
Apr 18, 6-7 AM (1)
Apr 18, 7-8 AM (2)
Apr 18, 8-9 AM (4)
Apr 18, 9-10 AM (4)
Apr 18, 10-11 AM (1)
Apr 18, 11-12 PM (6)
Apr 18, 12-1 PM (7)
Apr 18, 1-2 PM (8)
Apr 18, 2-3 PM (9)
Apr 18, 3-4 PM (0)
Apr 18, 4-5 PM (2)
Apr 18, 5-6 PM (6)
Apr 18, 6-7 PM (2)
Apr 18, 7-8 PM (2)
Apr 18, 8-9 PM (4)
Apr 18, 9-10 PM (9)
Apr 18, 10-11 PM (21)
Apr 18, 11-12 AM (23)
Apr 19, 12-1 AM (1)
Apr 19, 1-2 AM (4)
Apr 19, 2-3 AM (1)
Apr 19, 3-4 AM (0)
Apr 19, 4-5 AM (0)
Apr 19, 5-6 AM (3)
Apr 19, 6-7 AM (0)
Apr 19, 7-8 AM (2)
Apr 19, 8-9 AM (1)
Apr 19, 9-10 AM (1)
Apr 19, 10-11 AM (4)
Apr 19, 11-12 PM (7)
Apr 19, 12-1 PM (6)
Apr 19, 1-2 PM (8)
Apr 19, 2-3 PM (23)
Apr 19, 3-4 PM (7)
Apr 19, 4-5 PM (4)
Apr 19, 5-6 PM (3)
Apr 19, 6-7 PM (8)
Apr 19, 7-8 PM (3)
Apr 19, 8-9 PM (8)
Apr 19, 9-10 PM (6)
Apr 19, 10-11 PM (25)
Apr 19, 11-12 AM (23)
Apr 20, 12-1 AM (4)
Apr 20, 1-2 AM (5)
Apr 20, 2-3 AM (2)
Apr 20, 3-4 AM (7)
Apr 20, 4-5 AM (1)
Apr 20, 5-6 AM (8)
Apr 20, 6-7 AM (12)
Apr 20, 7-8 AM (29)
Apr 20, 8-9 AM (42)
Apr 20, 9-10 AM (37)
Apr 20, 10-11 AM (95)
Apr 20, 11-12 PM (42)
Apr 20, 12-1 PM (39)
Apr 20, 1-2 PM (53)
Apr 20, 2-3 PM (68)
Apr 20, 3-4 PM (47)
Apr 20, 4-5 PM (41)
Apr 20, 5-6 PM (31)
Apr 20, 6-7 PM (24)
Apr 20, 7-8 PM (10)
Apr 20, 8-9 PM (7)
Apr 20, 9-10 PM (16)
Apr 20, 10-11 PM (28)
Apr 20, 11-12 AM (18)
Apr 21, 12-1 AM (24)
Apr 21, 1-2 AM (5)
Apr 21, 2-3 AM (13)
Apr 21, 3-4 AM (4)
Apr 21, 4-5 AM (3)
Apr 21, 5-6 AM (8)
Apr 21, 6-7 AM (15)
Apr 21, 7-8 AM (44)
Apr 21, 8-9 AM (119)
Apr 21, 9-10 AM (36)
Apr 21, 10-11 AM (35)
Apr 21, 11-12 PM (98)
Apr 21, 12-1 PM (57)
Apr 21, 1-2 PM (71)
Apr 21, 2-3 PM (60)
Apr 21, 3-4 PM (33)
Apr 21, 4-5 PM (31)
Apr 21, 5-6 PM (27)
Apr 21, 6-7 PM (38)
Apr 21, 7-8 PM (35)
Apr 21, 8-9 PM (37)
Apr 21, 9-10 PM (14)
Apr 21, 10-11 PM (34)
Apr 21, 11-12 AM (12)
Apr 22, 12-1 AM (2)
Apr 22, 1-2 AM (3)
Apr 22, 2-3 AM (3)
Apr 22, 3-4 AM (4)
Apr 22, 4-5 AM (3)
Apr 22, 5-6 AM (17)
Apr 22, 6-7 AM (34)
Apr 22, 7-8 AM (21)
Apr 22, 8-9 AM (37)
Apr 22, 9-10 AM (18)
Apr 22, 10-11 AM (47)
Apr 22, 11-12 PM (45)
Apr 22, 12-1 PM (56)
Apr 22, 1-2 PM (64)
Apr 22, 2-3 PM (44)
Apr 22, 3-4 PM (86)
Apr 22, 4-5 PM (46)
Apr 22, 5-6 PM (17)
Apr 22, 6-7 PM (10)
Apr 22, 7-8 PM (18)
Apr 22, 8-9 PM (15)
Apr 22, 9-10 PM (23)
Apr 22, 10-11 PM (31)
Apr 22, 11-12 AM (17)
Apr 23, 12-1 AM (7)
Apr 23, 1-2 AM (4)
Apr 23, 2-3 AM (4)
Apr 23, 3-4 AM (6)
Apr 23, 4-5 AM (3)
Apr 23, 5-6 AM (8)
Apr 23, 6-7 AM (17)
Apr 23, 7-8 AM (26)
Apr 23, 8-9 AM (33)
Apr 23, 9-10 AM (33)
Apr 23, 10-11 AM (29)
Apr 23, 11-12 PM (30)
Apr 23, 12-1 PM (51)
Apr 23, 1-2 PM (69)
Apr 23, 2-3 PM (65)
Apr 23, 3-4 PM (26)
Apr 23, 4-5 PM (21)
Apr 23, 5-6 PM (7)
Apr 23, 6-7 PM (7)
Apr 23, 7-8 PM (11)
Apr 23, 8-9 PM (14)
Apr 23, 9-10 PM (6)
Apr 23, 10-11 PM (28)
Apr 23, 11-12 AM (18)
Apr 24, 12-1 AM (7)
Apr 24, 1-2 AM (4)
Apr 24, 2-3 AM (7)
Apr 24, 3-4 AM (5)
Apr 24, 4-5 AM (8)
Apr 24, 5-6 AM (13)
Apr 24, 6-7 AM (12)
Apr 24, 7-8 AM (33)
Apr 24, 8-9 AM (40)
Apr 24, 9-10 AM (41)
Apr 24, 10-11 AM (71)
Apr 24, 11-12 PM (57)
Apr 24, 12-1 PM (37)
Apr 24, 1-2 PM (53)
Apr 24, 2-3 PM (34)
Apr 24, 3-4 PM (19)
Apr 24, 4-5 PM (12)
Apr 24, 5-6 PM (38)
Apr 24, 6-7 PM (25)
Apr 24, 7-8 PM (10)
Apr 24, 8-9 PM (41)
Apr 24, 9-10 PM (17)
Apr 24, 10-11 PM (12)
3,590 commits this week
Apr 17, 2026
-
Apr 24, 2026
🟥 get-votes-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 blockchain-follower-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 cast-vote-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 login-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 event-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 1694ballot.cardano.org is down (0 in 0 ms) [skip ci] [upptime]
feat(peergov): address review
Signed-off-by: cryptodj413 <[email protected]>
feat(peergov): address review
Signed-off-by: cryptodj413 <[email protected]>
feat(peergov): enforce intentional inbound hot promotion and suppress redundant topology outbound reconnects
Signed-off-by: cryptodj413 <[email protected]>
fix: repair mithril snapshot bootstrap correctness and resume handling
Signed-off-by: Chris Gianelloni <[email protected]>
fix(dashboards): fix remaining issues from review
- Remove network label selector from badger cache metric queries - Remove disk I/O panels from block-production (already in resources) - Add network/instance filters to all event bus metric queries - Add network label guard to Prometheus alert expressions - Update README: Grafana 12+ minimum, provisioning overwrite warning, file extension consistency Signed-off-by: wcatz <[email protected]>
Add dead-link CI policy and document the design in a preamble
Partition dead links into two buckets with different CI treatment:
Actionable (FAILS CI) — CHaP packages the probe couldn't resolve
to any doc site. Usually a gap in IOG_DOC_BASES. Fix by adding
the doc site, or by adding the package to KNOWN_UNDOCUMENTED
if it genuinely has no published Haddocks anywhere.
Unfixable (logged for visibility, does NOT fail CI) — three sub-
causes, all outside this repo:
a. Module-level 404s on otherwise-valid upstream sites.
Empirically the cause is upstream publishing only their
umbrella "exposed-modules" (e.g. Cardano-Binary.html) while
Haddock generates hrefs to the defining sub-module (e.g.
Cardano-Binary-FromCBOR.html).
b. Packages in KNOWN_UNDOCUMENTED with no published Haddocks
anywhere (currently kes-agent and kes-agent-crypto —
verified no gh-pages branch, no CloudFront deployment).
c. Haddock-emitted versionless Hackage URLs that Hackage's
routing doesn't accept.
Add typed-protocols to IOG_DOC_BASES: its Haddocks are published at
input-output-hk.github.io/typed-protocols, which the heuristic now
reaches via the fallback list.
In GitHub Actions, actionable entries emit ::warning:: annotations so
they surface in the job UI; unfixable entries are plain log lines so
they don't flood the annotations panel. Env escape
FIX_HADDOCK_LINKS_ALLOW_DEAD=1 forces exit 0 regardless.
Rewrite the preamble to summarise the pipeline, the doc-site
resolution strategy, the rationale for skipping non-CHaP packages,
and the two-bucket CI policy with empirical justification.
Rewrite re-exported type links to original defining package
Haddock resolves re-exports to the local re-export page (e.g. a reference to cardano-ledger-byron's Address via Cardano.Api.Byron becomes href="Cardano-Api-Byron.html#t:Address", not an external link). The Haddock-emitted "Source" link, however, points to the cabal store path for the original defining package. Phase 2b uses that as ground truth to rewrite local re-export hrefs to the upstream doc site. Also extend dead-link handling in Phase 3: before annotating a 404 as unclickable, probe for the page under doc-site subdirectories (api/, protocols/, framework/ — ouroboros-network's layout) and under parent modules (Cardano-Ledger-Api-State-Query-CommitteeMembersState.html -> Cardano-Ledger-Api-State-Query.html#t:CommitteeMembersState). If the parent resolves, rewrite to it with a reconstructed #t: fragment so the browser still scrolls to the definition. On a full cardano-api build this rewrites 205 of 208 re-exported types (up from 0) and rescues 182 of 233 previously-annotated dead links.
Fix broken cross-package Haddock links on hosted docs site
Fixes #601. Cross-package hrefs emitted by cabal haddock-project are
relative paths (e.g. href="../cardano-ledger-api-1.2.3-hash/Foo.html")
that don't resolve on the published site — we only host cardano-api's
own output, not its dependencies, so every cross-package reference
404s by default.
Add scripts/fix-haddock-links.sh and wire it into the github-page
workflow between haddock-project and the artifact upload. The script
replaces each cross-package href with either an absolute URL on the
upstream doc site or a tooltip-annotated unclickable <span>, so the
published site has zero clickable 404s.
Pipeline
Phase 1: Scan filesystem, symlink versioned directories, fetch the
CHaP index, grep HTML for cross-package link targets.
Phase 2: Resolve each target and rewrite in place, or convert to an
unclickable span if unresolvable.
Phase 3: HEAD-validate rewritten URLs and annotate 404s as spans.
Doc-site resolution for CHaP packages: two lookups, first hit wins:
1. Name-suffix heuristic under *.cardano.intersectmbo.org — strip
trailing '-token' segments of the package name and HEAD-probe
each candidate's doc-index.html. Covers cardano-ledger-*,
plutus-*, ouroboros-*, etc.
2. Fixed fallback against a small IOG_DOC_BASES list — covers
packages whose subdomain isn't a suffix of the package name
(e.g. cardano-base at base.cardano.intersectmbo.org).
Non-CHaP packages (bootlibs like base, bytestring, time) are NOT
linked. Haddock's per-module URL structure doesn't line up cleanly
with Hackage's (src/ source views, -inplace version suffixes from
local rebuilds) so Hackage rewrites mostly produce 404s, and readers
of cardano-api docs rarely click into bootlib internals. Rendered as
unclickable spans, no outbound link, no validation noise.
filip(fix): hero title positioning tablet
Fix broken cross-package Haddock links on hosted docs site
Fixes #601. Cross-package hrefs emitted by cabal haddock-project are
relative paths (e.g. href="../cardano-ledger-api-1.2.3-hash/Foo.html")
that don't resolve on the published site — we only host cardano-api's
own output, not its dependencies, so every cross-package reference
404s by default.
Add scripts/fix-haddock-links.sh and wire it into the github-page
workflow between haddock-project and the artifact upload. The script
replaces each cross-package href with one of:
* an absolute URL on the upstream doc site, when the package is on
CHaP and we find a valid hosted module page for it;
* a tooltip-annotated, unclickable <span>, when the package is not
on CHaP (bootlibs like base, bytestring, time are deliberately
not linked — Haddock's URL shapes don't match Hackage's well and
readers rarely follow the links anyway), or is on CHaP but has
no known doc site, or the upstream module page itself 404s.
The published site thus has zero clickable 404s.
Doc-site resolution
For each CHaP package, two lookups in order, first hit wins:
1. Name-suffix heuristic under *.cardano.intersectmbo.org: drop
trailing "-token" segments of the package name, HEAD-probe
each candidate's doc-index.html. Covers cardano-ledger-*,
plutus-*, ouroboros-*, etc.
2. Fixed fallback against IOG_DOC_BASES: a six-entry list of
known IOG doc-site roots for families whose subdomain isn't a
name-suffix (cardano-base at base.cardano…, network-mux at
ouroboros-network.cardano…, io-classes at io-sim, etc.).
Misses become "Unmapped CHaP" and fall into the CI policy below.
Post-rewrite: Phase 2b uses Haddock's emitted "Source" cabal-store
links as ground truth to rewrite local re-export pages back to the
defining upstream package (e.g. references to cardano-ledger-byron's
Address via Cardano.Api.Byron). Phase 3 HEAD-validates each rewritten
URL and rescues dead ones by probing subdirectories (api/, protocols/,
framework/) and parent-module fallbacks with #t: fragment
reconstruction.
Dead-link CI policy (two buckets)
Actionable (FAILS CI) — CHaP packages the probe couldn't resolve.
Usually a gap in IOG_DOC_BASES; fix by adding the doc site or
adding the package to KNOWN_UNDOCUMENTED if genuinely unpublished.
Unfixable (logs only, does NOT fail CI) — three sub-causes, all
outside this repo:
a. Module-level 404s on valid upstream sites; empirically
upstream publishes only umbrella modules (Cardano-Binary.html)
while Haddock generates hrefs to the defining sub-module
(Cardano-Binary-FromCBOR.html).
b. Packages in KNOWN_UNDOCUMENTED (no published Haddocks
anywhere — currently kes-agent and kes-agent-crypto).
c. Haddock-emitted versionless Hackage URLs that Hackage's
routing doesn't accept.
GitHub Actions actionable entries emit ::warning:: annotations;
unfixable ones are plain log lines so they don't flood the UI.
Env escape FIX_HADDOCK_LINKS_ALLOW_DEAD=1 forces exit 0 anyway.
feat: clear dangling dreps (#2035)
Signed-off-by: Chris Guiney <[email protected]>
refactor: simplify k6 performance tests (#889)
Signed-off-by: William Hankins <[email protected]>
filip(feat): apply feedback on homepage and adjust styling to fit consistency
Fix Rust and Python security advisories
- Upgrade rand 0.8.5→0.8.6 in crypto-benchmarks.rs (GHSA unsound with custom logger) - Upgrade rand 0.8.5→0.8.6 and 0.9.2→0.9.3 in sim-rs - Upgrade nbconvert 7.16.6→7.17.1 (path traversal in HTMLExporter and attachments) - Upgrade tornado 6.5.1→6.5.5 (cookie attribute injection) - Upgrade Pygments 2.19.2→2.20.0 (ReDoS via GUID matching) Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Fix npm security advisories across all website packages
Upgrade dependencies and add overrides to resolve 20 open Dependabot alerts for postcss, vite, serialize-javascript, uuid, lodash, follow-redirects, brace-expansion, path-to-regexp, and node-forge across site/, ui/, cost-dashboard/, and post-cip/mempool-sim-viz/. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
fix: repair mithril snapshot bootstrap correctness and resume handling
Signed-off-by: Chris Gianelloni <[email protected]>
docs: release v0.165.3 notes (#1709)
Co-authored-by: sg-doc-holiday[bot] <219201796+sg-doc-holiday[bot]@users.noreply.github.com>
More correct string splitting
Signed-off-by: Matthieu Pizenberg <[email protected]>