Skip to content

fix: install uvx in post-code and post-fix scripts - #843

Merged
ralphbean merged 1 commit into
mainfrom
fix/add-uvx-to-post-scripts
May 14, 2026
Merged

ralphbean merged 1 commit into
mainfrom
fix/add-uvx-to-post-scripts

Conversation

@ralphbean

@ralphbean ralphbean commented May 12, 2026

Copy link
Copy Markdown
Member

Summary

Completes the pre-commit tooling setup by adding uvx installation to scaffold post-scripts. Agent runs were failing when the ty pre-commit hook tried to run Python type checking because uvx wasn't available on GitHub Actions runners.

Note: This fix has already been manually applied to the .fullsend repo in fullsend-ai/.fullsend#29. This PR updates the scaffold templates so future enrolled repos get the complete tooling setup.

Root cause: PR #831 added lychee but didn't address uvx, which is also required by pre-commit hooks (specifically the ty hook that runs via uvx ty check).

Changes:

  • ✅ Install uv/uvx v0.11.14 before running pre-commit hooks
  • ✅ Add SHA256 verification following gitleaks/lychee pattern
  • ✅ Extract both uv and uvx binaries to ~/.local/bin
  • ✅ Update section numbering in both scripts
  • ✅ Applied to both post-code.sh and post-fix.sh in scaffold templates

Impact: This prevents agent run failures where the ty pre-commit hook fails with:

Executable 'uvx' not found

Background: This builds on the tooling setup started in #831 (lychee) and #783 (markdown link linter). Together, these ensure all pre-commit hooks have their required tools available.

Test plan

  • Verify SHA256 hash matches official uv 0.11.14 release
  • Check installation logic follows gitleaks/lychee pattern
  • Confirm both uv and uvx are extracted from tarball
  • Same fix already deployed to .fullsend repo (fix: install lychee and uvx in post-scripts .fullsend#29)
  • Test that new repo enrollments work with ty hook enabled

Related work

🤖 Generated with Claude Code

Agent runs were failing when the ty pre-commit hook tried to run type
checking via uvx. The uvx binary wasn't available on GitHub Actions
runners, causing authoritative pre-commit checks to fail with
"Executable 'uvx' not found".

Changes:
- Add UV_VERSION (0.11.14) configuration constant to both scripts
- Install uv/uvx before running pre-commit hooks
- Download and verify uv tarball with SHA256 checksum
- Extract both uv and uvx binaries to ${HOME}/.local/bin
- Add to PATH for pre-commit hook execution
- Follow same pattern as existing gitleaks and lychee installations
- Update section numbering in both scripts (5→6, 6→7, 7→8)

This completes the tooling setup that PR #831 started by adding lychee.
Both lychee (markdown link checking) and uvx (Python tooling via ty hook)
are now installed before pre-commit runs, preventing agent failures.

Related: #830 (pre-commit security), #100 (ty hook configuration)
Builds on: #831 (lychee installation), #783 (markdown link linter)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

fullsend review is working on this — view logs

@github-actions

Copy link
Copy Markdown

Site preview

Preview: https://63501432-site.fullsend-ai.workers.dev

Commit: 4f605635d94b5bf12b039f384f3ef13e3460418a

@fullsend-ai-review

Copy link
Copy Markdown

Review: #843

Head SHA: 4f60563
Timestamp: 2026-05-12T00:00:00Z
Outcome: comment-only

Summary

The change is well-structured and follows existing installation patterns (gitleaks, lychee) consistently. SHA256 verification, conditional installation guard, and PATH setup are all correct. Two non-blocking findings: the PR body will auto-close issue #100 on merge, but the issue requests removing --ignore flags from the ty hook — this PR only installs uvx as a prerequisite and does not fulfill that request. Additionally, section numbering in post-fix.sh has a collision after the insertion.

Findings

Medium

Low

  • [Style/conventions] internal/scaffold/fullsend-repo/scripts/post-fix.sh — Inserting the new section 4 ("Install uv and uvx") bumps sections 4→5, 5→6, 6→7, but sections 7 ("Iteration-cap warning label") and 8 ("Summary") were not renumbered. After merge, both "Process structured output" and "Iteration-cap warning label" will be labeled section 7.
    Remediation: Renumber "Iteration-cap warning label" to 8 and "Summary" to 9 in post-fix.sh.

Footer

Outcome: comment-only
This review applies to SHA 4f605635d94b5bf12b039f384f3ef13e3460418a. Any push to the PR head clears this review and requires a new evaluation.

@ralphbean

Copy link
Copy Markdown
Member Author

The code agent run that tested this PR (run 25753770793) failed because the lychee binary installation in the post-code script is broken — the tarball has the binary inside a lychee-x86_64-unknown-linux-gnu/ subdirectory, but the extraction assumes it's at the archive root.

Fix PR: fullsend-ai/.fullsend#31

Once that's merged, agent runs against this PR should pass the lint-md-links pre-commit hook.

@ralphbean
ralphbean added this pull request to the merge queue May 14, 2026
Merged via the queue into main with commit b9cf43d May 14, 2026
25 checks passed
@ralphbean
ralphbean deleted the fix/add-uvx-to-post-scripts branch May 14, 2026 19:42
ben-alkov pushed a commit to ben-alkov/fullsend that referenced this pull request May 15, 2026
The script had two sections both numbered 7 ("Process structured
output" and "Iteration-cap warning label") after PR fullsend-ai#843 added
sections without updating subsequent numbers. The header comment
also listed only security layers 1-5 without documenting the
actual script steps 0-8.

Changes:
- Renumber duplicate section 7 to 8, and section 8 to 9
- Update header to separate security layers (now bullet points)
  from a new Steps listing that documents all sections 0-9
- Security layers keep their descriptive content but no longer
  use numbered format that conflicts with section numbers

Note: make lint could not run in sandbox due to network
restrictions (pre-commit requires external downloads). The
post-script will run the authoritative pre-commit check.

Closes fullsend-ai#962
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.

Remove --ignore unresolved-import --ignore unresolved-attribute from ty pre-commit hook

2 participants