Fix the docs deploy: a colon in a test name breaks artifact upload - #365
Merged
Conversation
The docs deploy has failed on every push since #360. The site builds fine; upload-artifact then rejects the whole upload: The path for one of the files in artifact is not valid: /parts/examples/delegation-examples-test.rb-test-budgets-layer:-the- agent-wide-ceiling-and-the-per-delegation-limit.html Contains the following character: Colon : doc_example_output names its output after the test, "budgets layer: the agent-wide ceiling..." keeps its colon through dasherize, VitePress emits a page at that path, and the action refuses the characters NTFS cannot store. So docs.activeagents.ai has been serving pre-#360 content for three days, including the SolidAgent section merged in #364. Sanitized in the helper rather than by renaming the test: the next colon in a test name would otherwise break the deploy again, and nothing in the failure points at the test that caused it. The one include referencing the old filename moves with it. Also fixes the "no status" cross-repo integration badge. A workflow_call run is attributed to the caller, so integration.yml had no runs of its own however often it passed. It now triggers itself on main, and ci.yml calls it for pull requests only, so there is one check per PR and a badge that reflects main. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NGn2NzpzFZT4JGKBdFMpxh
TonsOfFun
marked this pull request as ready for review
August 18, 2026 00:39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs.activeagents.ai has not deployed since Aug 14. Every
Deploy VitePress site to Pagesrun onmainhas failed since #360 — five in a row, including the merge of #364, so the site is still serving pre-delegation content and the SolidAgent section isn't live.What's wrong
The site builds fine.
build-currentthen dies on the upload:doc_example_outputnames its output file after the test method.test "budgets layer: the agent-wide ceiling and the per-delegation limit"keeps its colon throughdasherize, VitePress renders a page at that path, andactions/upload-artifactrefuses the characters NTFS can't store (" : < > | * ? \r \n). One bad name rejects the entire artifact,deployskips, and nothing ships.The
build-versioned (0.6.3)job passes throughout, which is why the run looks half-healthy.Fix
Sanitize in the helper, not by renaming the test:
Renaming the one test would unbreak today and break again the next time someone writes a colon in a test name — and the failure message points at an artifact path, not at the test that produced it. The single
@includereferencing the old filename moves with it.Also: the "no status" integration badge
integration.ymlwas only reachable throughworkflow_callfromci.yml, and GitHub attributes a called run to the caller — so it had no runs of its own and its README badge readno statusno matter how often the suite passed. It now triggers itself onmain, andci.ymlcalls it for pull requests only: one combined check per PR, and a badge that reflects main.Testing
docs/parts/examples/contains a rejected characternpm run docs:buildclean;find docs/.vitepress/dist -name '*[":<>?|*]*'returns 0 — the exact condition that failedbin/rubocopclean (460 files)The proof this works is the deploy run on merge, since the failure only reproduces inside
upload-artifact.🤖 Generated with Claude Code
https://claude.ai/code/session_01NGn2NzpzFZT4JGKBdFMpxh
Generated by Claude Code