Repository navigation
Releases: Apheironn/pasr
Release list
PASR v0.4.0
PASR 0.4.0
pasr doctorchecks a real MCP subprocess, default tool catalogue, source provenance and token budget without changing the inspected project. Temporary directories and tokenizer caches must remain outside that project; reports omit source, paths and raw exceptions.- Token accounting preserves signed differences and unknown measurements. Expansion is negative, missing counters remain null, and incomplete measurements are not priced. These are source-context estimates, not measured model/API savings.
pasr reportfails closed on malformed, torn, unreadable or non-object JSONL records: exit 2, sanitized diagnostics, no partial totals and no ledger rewrite. Valid Unicode separators in strings are retained.- Installation, diagnostics, consumer migration and opt-in feedback guidance updated. Retrieval defaults and historical frozen evaluation evidence are unchanged.
Compatibility
Report consumers must accept signed and nullable counters, differences, ratios and estimates; unmeasured_calls identifies unmeasured records. Do not coerce null to zero or clamp negative differences. Existing ledgers need no rewrite.
Verification and exact artifacts
CI run 37283601255 passed all six jobs for commit 52a9d0b8c11ae477e7efb6a240a89df87f06df74: Linux source tests on Python 3.10/3.12, and installed wheel/sdist CLI+MCP+doctor checks on Linux/Windows × Python 3.10/3.12. These attached files are the retained green CI artifacts, not subsequent rebuilds.
| Artifact | SHA-256 |
|---|---|
pasr_mcp-0.4.0-py3-none-any.whl |
393897e88cc1d97982f204fd8cee14ea5fcd861abbfd1314bcd76a8d093b610d |
pasr_mcp-0.4.0.tar.gz |
97518dc0a732855a668e0a0be8c771e4f76f94a79e210fed81e038f3a838c12d |
PyPI and MCP Registry publication are separate verification steps; this release does not by itself establish either registry's availability.
Workflow study 2026-10-05 - no production promotion
Research/data release for the frozen 2026-10-05 workflow study. Not a new PASR product version; v0.4.0 remains the latest product release and its published artifacts are unchanged.
Result: no production retrieval promotion
The selected evidence-first candidate used 18.26% more cumulative provider tokens than unchanged split-4 on Luna: mean ratio 1.18258, paired 95% interval 1.04594–1.35231. Strict compound-rubric/source support was 4/40 versus 3/40, with 3 versus 5 material-error answers. These support scores are not ordinary answer accuracy. The frozen token objective failed; two requests retain unknown provider usage. Production retrieval defaults remain unchanged.
Evidence
- All 10 PASR methods: 420 successful local MCP-text output measurements, separately from provider usage and answer quality.
- 664 attempted answering trajectories: 192 original development, 24 corrected Serena, 48 across two frozen candidates and 400 confirmation attempts on 40 new questions.
- Actual Aider RepoMap in development, Repomix and Serena under the shared answer harness, not full coding-product equivalence.
- All 400 held-out semantic reviews validated. AI-mediated review, compound criteria, source-snippet qualifications and cross-repository limitations are retained.
- The explicit continuation approval completed only the remaining 128 attempts, without retrying or replacing failures. All original 272 rows and 2482 prior ledger entries remained unchanged. Full unknown reservations and the $5 ceiling were preserved; automatic promotion was forbidden.
Accounting
3081 answering requests: 3079 complete usage records and two unknown requests. Known published-rate charges: $0.636401240. Unknown full reservations: $0.008003750. Conservative bound: $0.644404990. These are not invoices. Authoring/coding/review assistant-session tokens are excluded and unmeasured.
Downloads and reproduction
The ZIP has 285 hash-verified members, including its manifest: protocols, cases, 33 exact licensed production-source snapshots, review packets and decisions, method measurements, bootstrap correction, failures, continuation approval and request ledger. Public trajectory rows omit duplicated request histories and encrypted replay state and retain original-row hashes. Each microbenchmark export redacts 12 personal-home prefixes after measurement; original token counters and original text/file hashes remain. Those redacted strings need not retokenize identically.
pasr-workflow-study-20261005-evidence.zip SHA-256:
5fd78f28078e665c9e02abd46339177e023aac38236007d1c9813c2d6c7449a8
Use SHA256SUMS.txt to verify both data assets. The standalone JSON contains all stage summaries, method-mode statistics, the frozen gate, accounting and limitations. The ZIP manifest binds the actual distributed bytes. Original protocols retain workstation-specific paths: install the pinned components and create a new relocated protocol rather than rewriting this freeze. New model runs cost money and need not reproduce sampled answers.
Original development implementation: 020c226; corrected Serena: 6858acb; approved continuation: 95987cf. This tag retains that history.
Verification and report
577 local source tests passed, four Windows symlink checks skipped; Ruff passed for all 114 files. The actual remaining 128 trajectories ran, all 400 reviews validated, all archive member hashes were checked after reopening, and the public JSON passed denominator/accounting/unknown-usage checks. The updated evidence section was rendered in Chromium at desktop and mobile widths without horizontal overflow or broken images.
PASR v0.3.0
PASR 0.3.0: local, token-budgeted, source-traceable context for coding agents.
What ships
- Rendered-context budget enforcement, coherent source fingerprints/line provenance, strict UTF-8/BOM/newline handling, and revision-pinned Git review inputs.
- Default MCP catalog: find_files, find_symbols, find_evidence, find_usages, select_context. Optional tracing, receipts/packs and split search/read exposure remain explicit.
- Shell-safe headless CI action; clean wheel/sdist CLI and real MCP stdio validation across Linux/Windows and Python 3.10/3.12.
- A runnable isolated Codex demo and observed website transcript. The maintained driver completed with two model-selected PASR calls and checked source citations; its 364 selected tokens are not its 50,545 host input tokens.
- Published evaluation records retain failed quality/cost gates. Five workstation-identifying records use labeled public derivatives; their frozen local originals were not altered.
Upgrade boundaries
- Receipt/pack format 2 replaces format 1: regenerate old persisted selections/packs. Source cache format changes are not a model-quality claim.
- Requests are independent: the server does not own a host question lifecycle, global tool-call budget, or global audit of everything an agent saw.
- The opt-in search_code tool discovers/selects by query; use read_code(query, files) for known paths/ranges. Removed scope arguments are rejected rather than silently widening the request.
- Ordinary select_context is capped at 1,500 rendered-context tokens, not total MCP/API tokens. Computed spans may be partial. Compact split tools do not persist receipts or append ledger entries.
Evidence and limits
This is not a claim of better general answer accuracy or lower total API cost than competent native grep/read. The untouched 40-task comparison's gate failed; subsequent reused-question results are exploratory. Local selection does not stop a client forwarding source to a cloud model, and default redaction is a no-op.
Real-client records: https://github.com/Apheironn/pasr/blob/main/eval/agent_bench/client_demo_20261004.json
Reproduction: https://github.com/Apheironn/pasr/blob/main/scripts/demo_client.py
Full changes: https://github.com/Apheironn/pasr/blob/v0.3.0/CHANGELOG.md
Distribution channels
The attached wheel/sdist were promoted unchanged from green CI and are now also published on PyPI with matching SHA-256 values. The manual publish-pypi workflow verified these exact files before Trusted Publishing. The matching MCP Registry entry is active.
Install from PyPI:
python -m pip install pasr-mcp==0.3.0Or launch the pinned MCP server without a checkout:
uvx --from pasr-mcp==0.3.0 pasr-mcp --workspace /absolute/path/to/projectInstall the GitHub wheel:
python -m pip install https://github.com/Apheironn/pasr/releases/download/v0.3.0/pasr_mcp-0.3.0-py3-none-any.whlVerified revision and artifacts
Commit: 9cebfdaef67cc8332c1bc5a4db6b39887807fa60
CI: https://github.com/Apheironn/pasr/actions/runs/37191283736 — all six jobs passed.
SHA-256:
b43dbc2cc95aa57b3630263d1256e36158eedb0a76cb396c280377c2d45afdd8 pasr_mcp-0.3.0-py3-none-any.whl
22bba7dbe0df438249d2ebf607409109379ec4c5c5aecc25599a64a0c056ea4c pasr_mcp-0.3.0.tar.gz
Post-publication verification
Both the public GitHub wheel URL and PyPI pasr-mcp==0.3.0 were installed into separate fresh Windows/Python 3.12 environments. The installed CLI and real default/split MCP stdio smoke passed, including receipt/budget checks and rejection of paths outside the workspace. GitHub and PyPI artifact SHA-256 values match the CI files listed above.
PyPI workflow 37191531085, attempt 3 succeeded after the maintainer configured the Trusted Publisher. The first two attempts failed with invalid-publisher; those failures are retained in the workflow history. The PyPI 0.3.0 metadata now returns the published wheel and sdist.
The documented pinned uvx command also passed a real MCP client smoke using a fresh uv cache and a workspace path containing spaces: all five default tools, symbol lookup and source-backed selection, with 24 context tokens under a 180-token budget.
MCP Registry
The official version endpoint returns io.github.Apheironn/pasr version 0.3.0, status active, PyPI pasr-mcp==0.3.0, stdio transport and the required --workspace argument. The unchanged manifest passed official publisher validation before publication on 2026-10-04. Registry metadata is not a claim of GUI-client compatibility or independent adoption.
Maintenance instructions: PyPI publishing and MCP Registry publishing.
PASR v0.2.1
Packaging and docs only — no code changes. pip install --upgrade pasr-mcp is optional.
- README renders on PyPI. Image and doc-link URLs are now absolute, so the project description shows correctly off GitHub.
pasr-mcpsdist is scoped. The source distribution now ships only the package source, tests, and project metadata — not theeval/harness (that's its own distribution,pasr-bench) or thedocs/assets.pasrreserved as an install alias.pip install pasrnow pulls inpasr-mcp; the import package and the CLI were alreadypasr.
Full detail: CHANGELOG.md
PASR v0.2.0
First public release — a zero-setup, offline, deterministic context-broker MCP for coding and document agents. (0.1.x was the internal M0–M12 build; never published.)
MCP tools (stdio)
select_context— a budgeted, provenance-tracked slice of the workspace for a query. BM25 + lexical coverage + tree-sitter symbols (+ optional in-process semantic scorer), fused by reciprocal-rank fusion, assembled under a hardbudget_tokenscap. Returns the context, aspanslist withfile:line+ token count + reason each, aroute(lossless/selected), full token accounting, and aquery_class/confidence/advicetriple that says when PASR is the wrong tool.map_tokens=N— a query-ranked symbol-index header carved out of the budget. Ties a full repo-map on the offline bake-off (retrieval_ok0.70 → 0.90) at 100% critical-file coverage, without dropping the bodies.trace="<symbol>"— fold a symbol's dependency closure into the same slice.
trace_dependencies— deterministic transitive definition closure for a symbol (Python, JS/TS).direction="callers"reverses it for impact analysis.explain_selection— the stored receipt for a prior selection (kept spans, dropped candidates, budget accounting).expand_context— re-run a prior selection once with a larger budget.
CLI
pasr explain · pasr trace (--callers) · pasr pack · pasr review (diff-aware: touched defs + their callers) · pasr context (headless / CI, + a composite GitHub Action) · pasr report (usage ledger: tokens & round trips saved).
Other
- Receipts — byte-stable
.pasr/receipts/<id>.{json,md}audit records. - Context Packs — committable warm-start slices with staleness detection.
- Torch-free,
mcp-SDK-free core;tiktoken+pathspec+tree-sitterruntime. - PASR-Bench — the evaluation harness as a standalone package (
pip install ./eval→pasr-bench). Pre-registered 50-task / 10-repo protocol, paired non-inferiority vs a whole-repo dump.select_contextscores 0.48 at 5.8k context tokens vs a 59k dump's 0.38 (+0.10 paired; point estimate clears the −0.05 margin, 95% CI still crosses at n=50), and gets the answer's file into context 46/50 vs 33/50. A bounded efficiency result, not a superiority claim — seeeval/RESULTS.mdanddocs/competitors-benchmark.md.
Full detail: CHANGELOG.md