feat(release): ship v0.2.0 CLI-first digest pipeline and release hardening#6
Merged
feat(release): ship v0.2.0 CLI-first digest pipeline and release hardening#6
Conversation
set up GitHub Actions for CI
Replace setup.py and requirements files with pyproject.toml and uv.lock. Add Makefile.
…73 high-signal tests
## Summary Replace the vendored Pollux source (`src/pollux/`) with the `pollux-ai` PyPI package (`1.0.0rc1`) and adopt its full feature set: `Source.from_text()` for structured paper content, `RetryPolicy` for built-in retry with exponential backoff, and type-safe provider configuration. ## Related issue None ## Test plan All existing tests pass with no modifications—the mock target (`paperweight.analyzer.run`) is unchanged by the PyPI switch. The boundary tests in `test_analyzer.py` cover LLM fallback behavior (missing key, invalid provider) and happy-path summary extraction. ``` make test # 73 passed, 4 skipped make typecheck # 0 errors, 11 source files ``` No new tests added: the behavioral contract is identical—`run()` is still called with the same arguments and returns the same `ResultEnvelope`. The integration differences (Source vs string concat, RetryPolicy vs tenacity) are internal to the call and tested by Pollux itself. ## Notes - **RetryPolicy replaces tenacity for the LLM call.** `tenacity` remains a project dependency because `scraper.py` still uses it. The Pollux `RetryPolicy(max_attempts=3)` provides equivalent behavior (exponential backoff + jitter) without the decorator. - **`Source.from_text()` separates prompt from context.** Instead of string-concatenating paper content into the prompt, we pass it as a structured `Source`. This lets Pollux handle the prompt/content boundary and potentially apply provider-specific optimizations (e.g., caching). - **Mypy stubs ship with `pollux-ai`**—no `ignore_missing_imports` override needed. - **Default models updated** to `gpt-5-nano` and `gemini-2.5-flash-lite`.
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.
Why
v0.2.0is the first release focused on a practical CLI workflow: triage papers quickly, emit deterministic digests, and keep delivery options script-friendly.What this PR delivers
run,init, anddoctor(paperweightstill defaults torunfor backward-compatible invocation).stdoutas the default delivery mode, plusatomand optionalemailpaths.--max-itemsfor automation and scripting use cases.doctor --strictfor CI/release gating.uv, updates CI to required checks, and adds trusted publishing release workflow.0.2.0and excluding test-only mocks from distribution artifacts.Upgrade and compatibility notes
>=3.10.Validation performed
make lintmake test(95 passed, 4 skipped)make typecheckuv build --out-dir dist_v020_check(verifiedsrc/mocksis excluded from wheel/sdist)