Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Type check

on:
pull_request:
push:
branches: [master]

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
typecheck:
name: Pyright (Python ${{ matrix.python-version }})
runs-on: windows-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
# The widened stub bound selects distinct releases on 3.9 and 3.10+.
python-version: ["3.9", "3.10"]
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
with:
persist-credentials: false
- name: Set up uv and Python
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
with:
version: "0.13.4"
python-version: ${{ matrix.python-version }}
enable-cache: false
- name: Install declared development dependencies
run: uv sync --group dev
- name: Show resolved Windows stubs
run: uv run --no-sync python -c "from importlib.metadata import version; print(version('types-pywin32'))"
- name: Run configured Pyright
run: uv run --no-sync pyright --pythonpath .venv/Scripts/python.exe
60 changes: 60 additions & 0 deletions agent-notes/repair/task6-libloader-pr15-ci.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Exercise the changed Windows stubs in PR CI

## Goal

Wire the existing dev-group/Pyright authority for libloader PR #15. Smallest
change: one roughly 40-line workflow and this single task note; no product,
dependency, support, test or existing release-workflow changes.

## State

Exact origin git@github.com:accessibleapps/libloader.git. Fresh master/base
a753993f635fe355a0e98e8e4f51a357e7667a89; original open PR #15 head
f1da9d1237881fa87c00ac4f1f90f6e52b4141bf on
dependabot/pip/types-pywin32-lt-313.0.0. The PR only widens the dev-only stub
bound from <310 to <313. Actual Claude approved that original source diff but
identified missing type-check execution. The push-only distribution build is
green; it does not install dev dependencies or run Pyright.

New isolated branch repair/task6-libloader-pr15-ci is feature-derived at
task-6/worktrees/libloader-ci. Separate local-review and remote feature backups
backup/task6-libloader-pr15-local-before-ci and
backup/task6-libloader-pr15-remote-before-ci both retain the original f1da9d1
head. Canonical master, detached review checkout, ignored environment/lock and
untracked test_architecture_fix.py/tmpclaude-085a-cwd remain untouched.

## Decisions and why

Read global instructions, all tracked source/config/workflow/readme files,
repository-ci skill and current primary PyPI metadata. No repository AGENTS,
CLAUDE, .agents or existing task note. No tracked lock or tracked tests.

Python 3.9 resolves changed stubs 311.0.0.20251008 (Requires-Python >=3.9), while
3.10+ resolves 312.0.0.20261006 (>=3.10). Python 3.8 retains unchanged
308.0.0.20241221. Therefore use only 3.9 and 3.10 on Windows to exercise the two
changed dependency branches, not a support-version/platform matrix. Keep
requires-python >=3.8 and configured Pyright pythonVersion=3.8 unchanged.

Install the existing dev group, print the actual installed stub version, run
configured Pyright with the selected venv interpreter. Static checking calls
no COM service and loads no user DLL. CI resolves dependencies because there is
no authoritative tracked lock; no lock is added. Existing push build/tag release
workflow remains byte-identical. New workflow uses verified full action pins,
uv 0.13.4, contents:read, no stored checkout credentials/cache, 10-minute timeout
and workflow/ref cancellation. No extra lint/tests/scripts are introduced.

## Surprises

Canonical uv.lock is ignored user work, not tracked command authority. The
original workflow's green package build does not test the changed stub bound.
The new workflow is not yet published or claimed green; no local CI is run.
Actionlint v1.7.12 passed and zizmor v1.31.1 offline reported no findings for
the authored YAML. CRLF-aware diff check and unchanged source/manifest/release
workflow checks passed. No project lock or runtime output was generated.

## Next step

Return the committed workflow/note diff and exact local head for coordinator
review before publication. Obtain actual final-head Claude review
and relevant hosted success before merge. Preserve original feature tips and
do not edit PR descriptions, release workflow or source.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ dependencies = [
dev = [
"ruff>=0.8.0",
"pyright>=1.1.0",
"types-pywin32<310.0.0",
"types-pywin32<313.0.0",
]

[tool.ruff]
Expand Down
Loading