Repository navigation
chore(python): enforce repository quality standards - #173
Merged
Merged
Conversation
This was referenced Sep 17, 2026
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
Closes #172. The repository had no uniform Python formatting, lint, typing, coverage, package-inventory, or supported-platform CI contract, so new Python packages and untested branches could bypass review safeguards.
What changed
Adds the canonical Python quality specification, package inventory, aggregate local command, staged-file hook, and a Linux/macOS Python 3.10–3.13 workflow with a stable
Python qualitystatus. The observability backend now uses locked development dependencies, Ruff, strict mypy, deterministic Hypothesis properties, separate 95% line and branch gates, a fresh runtime-only install check, and measured incremental-I/O/batching performance checks. Production modules and tests were typed and decomposed to meet the complexity contract; the plugin version is 0.5.0, and its attribution guidance now states completeset/clear/autoprecedence.Verification
bun run check:python: 104 tests passed; line coverage 98.40%, branch coverage 95.07%; Ruff formatting/lint and strict mypy passed.bun run check:python:inventory: the synthetic unregistered-package guard passed.bun run check:python:performance: matched 200-turn control/candidate inputs; candidate read 219,543 bytes versus 22,123,095 and used 200 exporter requests versus 804, while reporting startup, steady-state, and peak-memory measurements.bashand/bin/bash.bun run lint,bun run lint:shell,bun run lint:ts,bun run typecheck,bun run check:decisions, andbun run check:docspassed.Review notes
The broadest review surface is the behavior-preserving decomposition of the observability backend needed for strict typing and the complexity ceiling. CI exercises every declared Python minor on Linux and macOS. The isolated live Langfuse ingestion procedure remains manual release evidence and was not rerun because this branch does not change the external ingestion protocol.
Checklist
CONTRIBUTING.md, including the contributionlicensing terms.
this change does not affect a capability invariant.
behavior.
change does not affect plugin content.
bun run check:python, or this change does not affect registeredPython packages or their repository quality infrastructure.