29 lines
2.9 KiB
Markdown
29 lines
2.9 KiB
Markdown
# Changelog
|
|
|
|
## Unreleased
|
|
|
|
- Added deterministic, token-bounded product-family normalization in the article resolver for `Stex`/`Secutex`, `Bfix`/`Bentofix`, and `Sgrid`/`Secugrid`.
|
|
- Added a minimal OpenWebUI Pipe that maps each OpenWebUI user/chat to the
|
|
existing RollCalc conversation API, renders only deterministic messages, and
|
|
exposes validated reports through a configurable browser-public URL.
|
|
- Added friendly adapter errors, per-chat asynchronous request serialization,
|
|
server-side Basic Auth without credential-bearing links, deployment/demo
|
|
documentation, and mocked OpenWebUI Pipe tests without a RollCalc dependency.
|
|
- Added a direct, dependency-free Ollama `/api/chat` client, defaulting to the configurable `qwen3.5:35B-A3B` model, with temperature `0`, thinking disabled, timeout handling, and JSON-schema-constrained output.
|
|
- Added strict `new_calculation`, multi-field `modify_calculation`, and `unsupported` NLU validation; calculated and unknown fields are rejected.
|
|
- Added process-local conversation state, deterministic German clarification/result templates, and temporary input-only PDF references.
|
|
- Added authenticated conversation creation/message/report routes and a `python -m rollcalc_chat` terminal demo with optional diagnostics.
|
|
- Added mocked Ollama, schema, conversational workflow, API, and authoritative conversational PDF tests; normal tests do not require Ollama.
|
|
- Added `roll_calculation.py` as the authoritative headless service for direct diameter ranges, optional roll weight, article/core resolution, and warnings.
|
|
- Added JSON-serializable calculation request/state/result models, structured clarification/failure statuses, and controlled mutation/recalculation.
|
|
- Reject caller-supplied result fields in both requests and calculation state, and require clarification for duplicate exact article identifiers.
|
|
- Added authenticated calculation and modification API boundaries for future tool use; no LLM integration was added.
|
|
- Routed the active direct-diameter UI and PDF generation through the deterministic service and rejected caller-supplied engineering result fields.
|
|
- Added archive-safe PDF filenames with date and `HHMMSS` time.
|
|
- Added an authenticated **Download PDF** action for valid direct roll-diameter results.
|
|
- Added compact, one-page A4 reports with article data, material inputs, minimum/average/maximum diameter, optional roll weight, active forklift warnings/notes, generation time, and build metadata.
|
|
- Embedded repeated diagonal `INTERNAL USE ONLY` marks directly in the PDF page content stream. This is an internal-use marking and deterrent, not DRM or a tamper-proof control.
|
|
- Added strict report-model validation and filesystem-safe archive filenames.
|
|
- Added PDF model and endpoint tests without adding a new runtime dependency.
|
|
- Renamed the PDF result section to **Calculation Results** and added the effective roll length as a fourth primary result card.
|