pypi lintlang 0.3.1
v0.3.1 — AST prompt extraction, provider-neutral preflight, input-integrity channel

latest releases: 0.8.3, 0.8.2, 0.8.1...
3 months ago

Changed

  • Python source scanning uses AST extraction for embedded prompts and the P1/P2 pipeline checks while preserving the offline, deterministic scan contract.
  • An unsupported embedding experiment was removed from the candidate before release because an unavailable backend could not be distinguished from a clean result.

Added

  • Provider-neutral preflight candidate: deterministic analysis of one present
    instruction plus typed explicit context, with PF001-PF005 exact evidence,
    ALLOW | NOTICE | HOLD | UNAVAILABLE | ERROR, redacted-by-default JSON, and
    explicit source-bound correction previews. It never retrieves history or sends to a provider.
  • Version-of-record consistency gate (tests/test_version_consistency.py): asserts lintlang.__version__ equals pyproject.toml's [project].version, reading source directly so it holds in a fresh clone. Fixes and guards against the prior drift where __version__ reported 0.2.1 while the published artifact was 0.2.2. This is the "separate gate" that test_docs_consistency.py names as out of its scope.
  • Fatal input-integrity channel: missing, unreadable, or malformed requested inputs now produce explicit ERROR results in the CLI, scan_file(), and scan_directory(), and the CLI exits 1 regardless of --fail-on; another valid input can no longer mask omitted coverage.
  • compute_verdict(result) and the public terminal/Markdown formatters preserve that ERROR state instead of treating an unread input with zero findings as clean; passing a findings list remains compatible after successful input.
  • JSON output includes input_error for every path and uses verdict: ERROR for input failures instead of converting parse errors to INFO/PASS lint findings.
  • README examples now report 0.3.1, and verdict/detector language is scoped to
    structural findings rather than runtime guarantees.
  • Documentation consistency checks now forbid brittle suite-size claims and
    scope the bundled samples as regression fixtures rather than accuracy evidence.

Notes

  • Zero runtime dependency change — pyyaml remains the only runtime dependency.
  • 0.3.0 was never published to PyPI or created as a GitHub Release. A public
    v0.3.0 Git tag already points to an older, pre-fix commit, so this release
    advances to 0.3.1 rather than moving or reusing that immutable tag.

Don't miss a new lintlang release

NewReleases is sending notifications on new releases.