Skip to content

fix(ci): fail archived broken live links - #57

Merged
konard merged 3 commits into
mainfrom
issue-54-4596c828ef2e
Aug 12, 2026
Merged

fix(ci): fail archived broken live links#57
konard merged 3 commits into
mainfrom
issue-54-4596c828ef2e

Conversation

@konard

@konard konard commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

  • fail broken-link validation whenever Lychee reports a broken live URL
  • retain Web Archive checks as actionable replacement diagnostics only
  • run the terminal explanation with always() so helper failures cannot hide Lychee failures
  • add a workflow-policy regression test and changelog fragment

Reproduction

Before this fix, a Lychee report containing a dead URL with an available Wayback snapshot caused check_web_archive.py to emit all_archived=true. The final workflow condition required both a nonzero Lychee exit and all_archived != true, so the failure step was skipped and CI passed while the source still referenced the dead live URL.

The regression test was added first and failed against the old workflow because the required unconditional failure step did not exist.

Verification

  • pytest tests/test_workflows.py tests/test_check_web_archive.py -q
  • ruff check .
  • ruff format --check .
  • mypy src/
  • python scripts/check_file_size.py
  • pytest --cov=src --cov-report=term (71 passed, 100% package coverage)
  • sphinx-build -W --keep-going -b html docs /tmp/issue54-docs-build

Fixes #54

Adding .gitkeep for PR creation (default mode).
This file will be removed when the task is complete.

Issue: #54
@konard konard self-assigned this Aug 12, 2026
@konard konard changed the title [WIP] Broken link workflow passes when dead URLs have archives fix(ci): fail archived broken live links Aug 12, 2026
@konard
konard marked this pull request as ready for review August 12, 2026 08:33
@konard

konard commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

Working session summary

Implemented and finalized the fix in PR #57.

  • Broken live links now fail CI even when Wayback snapshots exist.
  • Archive checks remain as replacement diagnostics.
  • Added a regression test and changelog fragment.
  • Local suite passes: 71 tests, Ruff, mypy, file-size checks, and Sphinx.
  • Fresh Broken Link Checker, Security, and CI/CD workflows all pass.
  • Branch is clean, current with main, and PR is ready for review.

This summary was automatically extracted from the AI working session output.

@konard

konard commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Model: GPT-5.6 Sol
  • Provider: OpenAI
  • Public pricing estimate: $2.198127

📊 Context and tokens usage:

  • 68.1K / 200K (34%) input tokens, 6.6K / 128K (5%) output tokens

Total: (68.1K + 1.2M cached) input tokens, 6.6K output tokens, $2.198127 cost

🤖 Models used:

  • Tool: OpenAI Codex
  • Requested: gpt-5.6-sol
  • Thinking level: low (~7999 tokens)
  • Model: GPT 5.6 Sol (gpt-5.6-sol)

📎 Log file uploaded as Gist (908KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard
konard merged commit c3a2eb2 into main Aug 12, 2026
14 checks passed
@konard

konard commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

🎉 Auto-merged

This pull request has been automatically merged by hive-mind.

  • All CI checks have passed

Auto-merged by hive-mind with --auto-merge flag

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Broken link workflow passes when dead URLs have archives

1 participant