Changelog v0.14.0

Eine einzelne Version, vollständig — mit allen Änderungen dieser Version.

Aktuelle Version v0.15.0 · Stand 752c495 (2026-08-17) · 1175 Änderungen ausgewertet.

Zurück zur Versionsübersicht

v0.14.0 2026-08-12

Überblick

Diese Version bringt 41 neue Funktionen, 56 Fehlerbehebungen, 45 weitere Änderungen.

Technische Änderungen (für Entwickler:innen)

Neue Funktionen (41)
  • bump the rubric to adr007-v3 and widen the clause that should have required it scoring 775c963
  • stamp the rubric fassung on the scorecard so the report stops guessing it — refs #1010 #992 #898 scoring cb4ead1
  • give every Figure a provenance — which evidence made it a figure — refs #1026 #970 #136 parse 85e79ed
  • give the #683 class its own cohort and an advisory monotonicity assurance — refs #1022 #683 #997 eval 8d46a68
  • give GET /jobs/{id} a response_model that is true, not just present — refs #1041 #726 api 35f6d59
  • give the conformance-stub D3=0 a finding that says why — refs #1003 #975 #970 #726 scorecard 1f011e7
  • publish the advisory AAA contrast screen on the report surface — refs #993 #726 report a58f6e7
  • make the 15-005 header-association findings cost D6 points — refs #1013 #990 #726 scoring a3248a6
  • re-freeze the gold at v2.2 — the spacer rows are out and the contract says so — refs #1018 eval a598728
  • model WCAG 1.4.6 enhanced contrast as a structurally advisory screen quality 271bdd5
  • attach the persisted narration to the audit page now that a slot exists api 05f2bf3
  • render the advisory AI narration with its label on the audit page audit f4cdcfe
  • admit doc-lang-present to the in-place lane, and measure what it is worth — refs #1027 #970 quality f1845a5
  • publish the veraPDF rules that actually passed — refs #1017 sidecar 4f57b69
  • put the contrast-render degrade on the delivered-bytes ledger — refs #946 #928 #892 pipeline ad62c0d
  • count the SLOW pages the frugality cap drops — refs #1019 observability 83152c1
  • record the word-shape exemption on the page, not just in a log line — refs #983 #954 pipeline 63bab70
  • run the corroborated tree check on the in-place routes, report-only — refs #970 #726 #1001 #1025 #861 spine 9f561e5
  • replace the n=1 synthetic good cohort with ten measured real documents — refs #997 #683 eval 009bc89
  • widen _VLM_OUTCOMES to nine and count the two causes that had no true value — refs #1000 #942 #973 observability 5a511d2
  • carry the passed veraPDF rules so the protocol is the whole check run — refs #994 #726 report 5e096b6
  • widen the stage taxonomy to 12 and instrument the merge + re-do loop — refs #1008 #944 observability f9c5a81
  • carry the WCAG tree-leg tri-state onto the JSON surface — refs #1002 #970 #726 api 00817ce
  • record the structural damping factor on the AAVS triple — refs #1010 scoring e17ce54
  • carry the endpoint's token counts into the provenance slots — refs #1007 #974 narration 6c279e0
  • wire the eight struct checks that had zero production callers — refs #990 #726 scorecard 5d56954
  • persist the advisory narration once at job completion and serve it — refs #971 #726 narration 6fe2574
  • publish the rubric version and the structural damping so quality_score can be recomputed — refs #992 #726 #683 report f1dd51c
  • emit the narration VLM counter and refuse to fake CAPPED — refs #973 observability cbb1f37
  • surface the OpenAI usage block through an opt-in UsageSink — refs #974 vlm 0a15d94
  • surface the advisory AI narration on the AAVS report — refs #772 report 468b975
  • reuse bulk SLOW results on the verdict-less redo pass 0 — refs #936 pipeline 9fec6d3
  • add the advisory AI narration engine behind the model endpoint — refs #772 report af815f4
  • read /E expansions and resolve RoleMaps in the spoken view — refs #810 #966 eval ec53b96
  • version the class ordinal in the sidecar and export PP-DocLayoutV3 to ONNX — refs #910 layout 8cfc3b9
  • count overlay heading drops behind a default-off gate — refs #919 tag eaaea43
  • emit per-gold-table pair scores and preregister the K1 crop run — refs #911 eval 1c58b38
  • read each layout region as its own crop on the SLOW path — refs #860 pipeline 6515c94
  • count OCR call outcomes on the shared VLM counter and refresh the target map parse b34bc36
  • split the contrast abstention into render-degrade and honest no-text causes quality db899d9
  • count VLM call outcomes with failover attribution and split AltSource honestly observability 212f4f4
Fehlerbehebungen (56)
  • bump the two version locations cz could not reach, and teach it to reach them release c090623
  • close the private cross-module import class and guard it mechanically scoring,sidecar acb9a1c
  • strip internal issue refs at the OpenAPI publication boundary — refs #1041 #843 #800 api 769ba87
  • drop the header ERROR on pages the tag tree declares no table on — refs #1038 #1024 scorecard 80c36c8
  • refuse WORKER_COUNT above 1 — it is per-process concurrency, not processes config 6c2c866
  • replace the SLOW fan-out's false safety claim with the measurement parse 226385f
  • stop reading a verdict out of a language tie — refs #1028 #1023 #726 quality,merge 7a5a72d
  • measure the links gap before re-freezing it — the 99 gold docs have nothing to gain eval 609ae75
  • stop the disabled visual judge from measuring its own no-op — refs #1016 #1009 #1008 observability 530f8d7
  • register the label #993 shipped without one, and lift the 10 s bucket cap — refs #1008 #1009 #1016 observability 8bce3cf
  • close the three wave gates the AAA advisory and the memory bump opened quality bb36230
  • register figure-alt-stub in the reason and tag maps quality 6e45a6e
  • detect the document language instead of stamping de unconditionally tag 9f7880c
  • serialise the sync /jobs path — PyMuPDF is not thread-safe pipeline 0b55810
  • make the measurement reproducible — PyMuPDF is not thread-safe eval 75c7f2c
  • stop emitting the RIS spacer rows the tagged PDF never had — refs #1018 gold 2854a68
  • announce nothing when a /RoleMap hop hides the carrier — refs #981 scoring 668f71f
  • stop double-counting the crop path's OCR calls — refs #972 observability 9a279c1
  • stop demanding alt text from signature-widget appearance streams — refs #970 #726 quality 1ae0134
  • bind the auto-fix credit to the seam that renders the repair — refs #1025 #970 #726 quality e23ff93
  • wire the tree-gate abstention so a check that never ran stops awarding points — refs #1001 #970 #726 scoring 29292db
  • resolve the RoleMap, narrow footnote-pairing to the spec, give the ToC check a condition that can fire — refs #1012 #990 quality 8d183a7
  • abstain the tree-gate-fed dimensions instead of scoring 100 from an absent count — refs #1001 #970 #726 scoring 70ffdba
  • distribute a table's spoken segments by cell carrier, not by position — refs #998 #977 eval 16b11c2
  • match the undetermined sentinel by substring, not equality — refs #976 review c97ed21
  • demote the overlay conformance stub in both D3 branches — refs #975 scoring 5d45dea
  • ledger the composite honesty cap as its own attribution row — refs #991 scoring 5c97d86
  • report a WCAG tree leg that never ran as NEVER_RAN — refs #970 scorecard e95b52b
  • emit the missing VLM outcomes for the alt-text no-call paths — refs #942 observability ce73241
  • put the scoring code inside the provenance stamp — refs #898 eval 0aac690
  • correct six false skip-reasons and pin a skip-count ceiling — refs #989 tests dbbb0ee
  • walk /Table elements in document order, not LIFO-reversed — refs #977 eval 4b81522
  • close the figure-kind negation in the ablation instrument — refs #982 eval 870f904
  • declare pypdfium2 and import-or-skip the real_gold gate stack — refs #965 #950 eval 393d23e
  • reconcile the alt-text accounting across dimension, counter and augment route — refs #861 scoring cf5a9e1
  • admit the narration surface to the VLM call registry — refs #772 observability 7bf5a41
  • exempt tagged documents from the word-shape demotion arm — refs #954 triage 224fbfb
  • bridge the as-is struct tree into table_teds instead of hard-skipping — refs #902 eval b785c56
  • wire the gold gates into the real_gold build path and check reader independence — refs #965 #964 eval 6513bd3
  • contain per-crop failures and bound the page wall-clock on the crop path — refs #960 #959 pipeline 7c75792
  • lift pdfjs-dist past CVE-2026-16633 in the ax spike — refs #950 deps 4061807
  • lift aiohttp and pypdf past CVE-2026-69244 and CVE-2026-71852/71870 — refs #950 deps cd7443c
  • exclude advisory dimensions from the structural-presence factor — refs #890 scoring d3228db
  • emit record_vlm_call per crop on the crop path — refs #958 observability 1a8f42a
  • thread source_lang into the redo-loop structure tree — refs #940 remediate e7543ab
  • move the gold-audit verdicts to a sidecar — manifest.jsonl is a preregistered selection seed — refs #905 eval 626e3bb
  • calibrate the table-probe matcher floor to the empty band and footnote published coverage — refs #906 eval 561b7c9
  • audit the real_gold corpus and annotate gold defects in the manifest — refs #905 eval be7dfe4
  • separate alt-text and OCR series with a bounded surface label observability 7783fa7
  • skip line-spanning texttrace spans in duplicate-text detection parse 74ffe79
  • normalize /MCR struct kids so PyMuPDF stops reading latex_ua as structureless scoring 2f32348
  • regenerate overlay fixtures without the never-painted default Helvetica test d9af784
  • stamp the fallback model into per-page backend provenance after a failover parse c24d9fb
  • harden every eval-lane open_metadata call and route reads through the src XMP readers eval 28e6ce9
  • thread the degrade ledger into the doc-title reconcile and add the doc-lang fifth reconcile report 4f1f660
  • make the STAGE-1 table renderer span-aware — the third copy #857 missed (#908) eval 703adfd
Performance-Verbesserungen (1)
  • collapse the contrast span walk to one pass per job — refs #993 #1033 quality f2c1326
Refactoring (intern) (2)
  • promote the passed-rules derivation to a public seam — refs #994 #1017 #726 report 05818a9
  • project the damping factor instead of recomputing it — refs #1010 #992 report 9c219dc
Dokumentation (34)
  • freeze the v0.14.0 snapshot ADR-028 requires before the tag openapi c375684
  • close the 0.14.0 section and regenerate the served artifacts changelog 85cee9b
  • retire the PVC blocker the runbook authorized as a normal outcome eval bb2e98a
  • record the 107 commits the 0.13.5 bump left untagged changelog 5f48c98
  • codify the inflow rules #1058 asked for, and give a veto a home that does not truncate rules 71dc477
  • separate "gate could not run" from "gate found something" — refs #1030 ci fcb281a
  • codify the measurement discipline three sessions paid for rules 0137a16
  • profile the scanned path — the quadratic is in our own output, not in fidelity — refs #1033 research ea5dff0
  • correct the 1-of-15 corroboration ratio the signature-widget fix superseded 7938f36
  • record what the provenance split measures — 33% -> 100% on raster, 0% on vector — refs #1026 #970 eval 6e34d86
  • correct the stale wiring note that claimed #1001 was unwired test 7d75041
  • cite the primary measurement behind the ~4 % scan share — refs #955 roadmap e30ddd1
  • use role terms instead of a named operator in the tree-leg measurement eval 4eb9dd5
  • neutralise the customer name and publish the capacity envelope — refs #1031 #1033 1af989c
  • fix scanned throughput in the minimum-viable row — refs #1031 eval b649d79
  • derive the concurrency cap for the sync /jobs path — refs #1031 eval bcecf30
  • de-pin a slow.py line reference the fix shifted — refs #972 observability b52d5dc
  • relabel the 94,5 % figure as a fidelity-route share, not conformance — refs #955 eval 5d26876
  • document the commit types cz actually enforces — refs #1004 rules 1ae477d
  • measure what the never-run WCAG tree leg would find on overlay/augment — refs #970 #726 eval e3af31f
  • write the metrics catalog OBS-003 has required all along — refs #944 observability d96934d
  • correct the gate count and class split that contradicted the code — refs #995 #522 #675 aavs 84b26d3
  • retire the table-axis prose that #902 and #977 made false — refs #987 #977 #902 eval 04e0e01
  • dispose of setuptools PYSEC-2026-3447 — no suppression, lift instead — refs #985 security fb3e900
  • retire the prose this session's fixes made stale — refs #940 #936 #902 #954 cecbe8a
  • measure the reflow text-layer discard class and draft the guard policy — refs #935 eval 98a5ef8
  • measure the triage threshold noise and simulate hysteresis policies — refs #954 eval 68866e4
  • measure the bulk-plus-redo double VLM spend and the cache-key dedupe feasibility — refs #936 eval ce286c6
  • replace the stale 90.4 percent with the provenanced 95.61 resweep and mark unbacked numbers — refs #955 architecture 5c1b900
  • freeze the OSS extraction landscape 2026-08 before the probe data evaporates — refs #953 #952 #951 eval 26ade78
  • draft the SR-evidence MVP decision — AC1 shipped, AC2/AC3 blocked by the ADR-016-vs-030 contradiction — refs #769 eval 4510513
  • unblock the audible-probe kappa calibration — spoken_view is structure-aware post-#925 — refs #749 eval 1d09ebd
  • measure overlay heading drops on the real corpus — repair option (a) falsified — refs #919 eval 68b2ec4
  • re-measure the augment heading delta post-#925 — denominator 17 to 32, no default promotion — refs #896 eval 742f2bb
Tests (6)
  • reset the job-store global the same way the settings global is reset api 5d32f82
  • assert the contrast_aaa delta, not the process-cumulative sum observability c76be6d
  • pin why the single-word title bar cannot be loosened where it stands — refs #1037 quality 1167024
  • measure figure-alt-present corroboration per provenance class — refs #1026 #970 eval a9e5181
  • attribute the verdict cause for the four conformant FAILED documents — refs #1024 #516 #726 eval 14eda55
  • pin the client budget to narration_timeout_s — refs #772 #599 narration c3765b6
Build-System (1)
  • lift setuptools to >=83 via a uv constraint and drop the CVE-2025-3000 ignore — refs #999 deps 8565e25
Sonstiges (1)
  • version 0.13.5 → 0.14.0 5c0ab4e

Frühere Versionen

Jede dieser Versionen ist vollständig abrufbar — mit allen Änderungen, unverkürzt. Hier steht nur der Überblick; der Link führt auf die ganze Version.