Releases: chasen2041maker/GroundGuard
Release list
GroundGuard 0.4.0rc1
Added
- Added a synchronous, request-scoped Checker protocol, immutable CheckRequest, structured Issue findings, and Fact context fields for subject and observation metadata.
- Added deterministic issue output to groundguard.report.v1, assertion metadata, Markdown, HTML, and GitHub renderers without changing the report schema version.
- Added opt-in OrphanNumberChecker and RelativeFreshnessChecker.
- Added opt-in finance_cn checks for explicit SSE/SZSE consistency and normal-phase price limits.
Fixed
- Prevented SH.600519, SZ.000001, SSE.600519, and SZSE.000001 from being reported as orphan numbers.
Release Candidate
- This release candidate is for downstream integration validation.
- finance_cn supports only explicitly supplied SSE/SZSE context; BSE, Hong Kong, US, and other markets are unsupported.
v0.3.1
GroundGuard v0.3.1 publishes the latest distribution engineering work: groundguard-init templates for GitHub Actions, OpenAI, promptfoo, LangGraph, PydanticAI, CrewAI, AutoGen, and FastAPI; packaged public report/config schemas; launch-ready social, benchmark, and flow copy; and centralized runtime policy action selection. Verified locally with 114 passing pytest tests, mkdocs strict build, and python -m build.
v0.3.0
Highlights
- Added
FactGate, a high-level runtime API for config-driven record/check flows. - Added built-in scoped extractor packs for finance, SaaS, ecommerce, and ops metrics.
- Added stable
groundguard.report.v1protocol objects and report renderers. - Added Markdown, HTML, and GitHub PR comment report output.
- Added dependency-free OpenTelemetry-style event export plus Langfuse and Phoenix payload exporters.
- Added a minimal dependency-free
groundguard-serverentrypoint withPOST /check.
Install
python -m pip install -U groundguard-ai==0.3.0The PyPI distribution name is groundguard-ai; the Python import name remains groundguard.
Quick Check
from groundguard import FactGate
gate = FactGate()
gate.record_tool_result("q3_revenue", "5.2", "billion_usd")
report = gate.check("Q3 revenue came in at $4.8 billion [fact:q3_revenue].", required=["q3_revenue"])
print(report.output_claims[0].status) # contradictedVerification
python -m pytest -q: 103 passedpython -m mkdocs build --strict: passedgroundguard-benchmark: 200-case bilingual realistic dataset, 71/71 expected failures detected, 0 false positives, 0 false negatives
v0.2.4
Highlights
- Added a 200-case bilingual realistic benchmark dataset covering English and Chinese outputs, currencies, percentages, basis points, business-count units, latency, storage units, omissions, contradictions, ambiguity, invented claims, and bare-number extraction limits.
- Expanded numeric extraction for EUR, GBP, CNY/yuan, bps, operational units, latency units, storage units, and English/Chinese business-count units.
- Fixed short magnitudes like
Mstealing compact units such asmsandMB. groundguard-benchmarknow prints a concise smoke plus realistic-dataset summary.
Verification
python -m pytest-> 84 passedpython -m build --outdir .tmp\dist-release-024-> built wheel and sdistpython -m twine check .tmp\dist-release-024\groundguard_ai-0.2.4*-> PASSED
GroundGuard v0.2.3
PyPI distribution renamed to groundguard-ai while keeping the Python import package as groundguard. This release also includes the expanded benchmark, before/after OpenAI demo, py.typed marker, and Python 3.13 CI coverage.
GroundGuard v0.2.2
GroundGuard v0.2.2
GroundGuard v0.2.2 tightens correctness and multi-tenant behavior after the
v0.2 extractor and policy expansion.
Highlights
- Repeated facts with the same key now match against the latest registered
value, which prevents false contradictions after tool retries or refreshed
data. extract_output_claims(...)andLedger.coverage_report(...)now accept
request-scoped extractors, so services can avoid process-global extractor
mutations.Ledgerprotects its in-memory indexes with a re-entrant lock for safer
parallel tool-call registration inside one session.- Matcher unit buckets are sorted and searched with
bisect, reducing
same-unit candidate scans for larger ledgers. - Shadowed duplicate implementations were removed from the core extractor and
unit normalization modules.
Install
python -m pip install "git+https://github.com/chasen2041maker/GroundGuard.git@v0.2.2"
groundguard-demo
groundguard-benchmarkGroundGuard v0.2.0
GroundGuard v0.2.0
GroundGuard v0.2.0 turns the v0.1 fact gate into a more usable integration
surface for real agent stacks.
Highlights
- Extraction transparency: reports now expose
suspected_numbers,
uncovered_numbers, andextraction_coverage, so users can see which
numeric-looking spans were not covered by deterministic extractors. - Pluggable extractors:
register_extractor(...)lets teams add custom claim
extraction without forking GroundGuard. - Policy actions: tagged contradictions can be repaired from
Fact.display_value, or sent back through one reask pass. - Eval adapters: promptfoo and DeepEval helpers convert
CoverageReportinto
assertion-friendly payloads. - Performance groundwork: Ledger key lookup is indexed, and matcher candidate
lookup is bucketed by normalized unit.
Verification
python -m pytest
68 passed
GroundGuard v0.1.4
GroundGuard v0.1.4
This release implements the first phase of REFACTOR.md: precise claim span
offsets. The goal is to make downstream highlighting and text operations more
reliable without changing the public high-level APIs.
Added
OutputClaim.startandOutputClaim.endoffsets.- Span offsets in assertion JSON claim objects.
REFACTOR.mdroadmap committed with an execution-status audit.
Changed
- Unverified claim stripping now uses span offsets when available, so repeated
text spans do not cause the wrong occurrence to be removed. - README installation and GitHub Action examples now point to
v0.1.4.
Verified
python -m pytest
59 passed
GroundGuard v0.1.3
GroundGuard v0.1.3
This release tightens the fact gate around the review issues that matter most
for real agent outputs: English numeric formats, unit normalization, ambiguous
matches, safer stripping, and richer assertion JSON.
Added
- README hero demo GIF plus a reproducible PowerShell renderer for regenerating
it locally with ffmpeg. - Shared numeric unit normalization for registered facts and matched claims,
including CNY magnitude units such as亿元and万元. ambiguousclaim status when multiple unkeyed facts match within tolerance.- Top-level per-claim details in assertion JSON for downstream highlighting.
- Regression coverage for compact English magnitudes and percentages such as
1.2M,3,830 million dollars, and21.5 percent.
Changed
- Financial report demo output now colorizes failed and passing gate states for
recordings and terminal demos. on_unverified="strip"now fails reports until unverified claims are actually
removed, keeping policy behavior in one place.- English sentence stripping is more conservative around punctuation.
- Installation and GitHub Action examples now point to
v0.1.3.
Verified
python -m pytest
58 passed
GroundGuard v0.1.2
GroundGuard v0.1.2
This release widens the deterministic numeric claim extractor for English-first
agent outputs while keeping the v1 boundary narrow: important numbers still need
a unit, magnitude, or explicit fact marker.
Added
- English USD amount extraction for common forms:
$3.83 billionUSD 10.25M2.5 million dollars
- Regression tests covering currency prefixes, short magnitudes, and dollar
suffixes.
Changed
- README and Chinese README now explain the concrete leadership-report failure
mode earlier in the page. - Claim extraction docs now list both Chinese and English amount examples.
- Installation and GitHub Action examples now point to
v0.1.2.
Verified
python -m pytest
50 passed