fix(preprocess): unify PR Newswire identities#124
Merged
keli-wen merged 3 commits intoJul 23, 2026
Conversation
Use the public news identity builder when collecting PR Newswire documents so callers can reproduce stamped identities. Add offline regressions for discovery and collection.
6 tasks
keli-wen
added a commit
that referenced
this pull request
Jul 23, 2026
…outs (#137) ## Summary The dependency-install step used `uv pip install -e .`, which ignores the tracked `uv.lock` and re-resolves the whole dependency graph on every run. On the warm `ci.yml` cache this is fast (~80s), but the path-filtered/scheduled `e2e.yml` jobs run rarely, so their uv cache is usually evicted (GitHub drops caches after 7 days of no access). On that cold cache, resolution alone took ~6m — probing sdist metadata and backtracking across the 200+ package tree — and the `news` job's 10-minute timeout cancelled the install before it finished, failing e2e on otherwise-green PRs (for example the run on #124). This switches every job to `uv sync --frozen` (CI adds `--extra dev`), which reads the exact pins from `uv.lock` and skips resolution entirely, and keys the `setup-uv` cache on `uv.lock` instead of `pyproject.toml` so the cache invalidates on the resolved set rather than the source manifest. Cold-cache installs now only download the locked wheels, landing well under the job timeouts; warm CI installs also drop the redundant re-resolution. No smoke-test behavior, network dependency, or public API changes — this is install mechanics only. ## Related Issue No tracked issue; the failing e2e install surfaced while validating #124. Root cause and fix are described above. ## Verification - `bash scripts/verify.sh` — 405 passed, 85.66% coverage, verify loop passed. - `uv sync --dry-run` and `uv sync --dry-run --extra dev` both resolve against the committed `uv.lock` locally, confirming the runtime and dev sets and the `dev` extra. - The real cold-cache timing is confirmed by re-running the affected e2e job after merge. ## Checklist - [x] The title uses English Conventional Commit format: `type(scope): summary`. - [x] The related issue or design discussion is linked when applicable. - [x] `bash scripts/verify.sh` passes. - [x] Every applicable live-network component smoke test passes, or this PR states why none applies — none applies; this changes dependency install only, not smoke-test or network behavior. - [x] Public behavior has focused tests, an example, and documentation where applicable — not applicable; CI-workflow-only change with no public surface. - [x] The PR is complete, small, and contains no unrelated changes. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Summary
PR Newswire observations now use the public
build_news_identityhelper, so callers can reproduce the identity stamped on collected documents. The focused regressions cover both discovery observations and collected documents.Related Issue
Closes #110
Verification
.venv/bin/python -m pytest -q --no-cov tests/preprocess/test_pr_newswire.py— 10 passed.lint-importspassed.basedpyrightreports the same 12 unresolved optional-dependency imports with and without this diff in the minimal local environment;bash scripts/verify.shtherefore does not complete locally.Checklist
type(scope): summary.bash scripts/verify.shpasses.