Changelog
LM-Kit One Changelog
Notable changes to LM-Kit One, newest first. Versions follow YYYY.M.PATCH. A version marked
"not yet published" is on the development branch and has not shipped.
2026.10.52026-10-04#
Changed
- Improved document parsing accuracy.
- Improved query rewriting support for RAG.
2026.10.42026-10-03#
Added
POST /lmkit/v1/document-parsing: turns a PDF, scan or image into typed, positioned elements;effort,pages,output_format(Json,Markdown,Html,DocLang),include_figure_images.lmkit run document-parsing: writes.json,.md,.htmlor.dclgafter--output-format.- MCP tool
document_parse: Markdown inline or linked, the JSON parse as a resource. - Playground > Parse: parse at
Low,MediumorHigheffort in the document viewer; pages streamed, elements boxed and linked to the export, type filter, effort comparison, SDK and REST code, samples. - Guide: Document Parsing.
POST /lmkit/v1/admin/area-ticket?persist=true: the area ticket of a remembered session survives a browser restart, for its 12-hour validity.
Changed
- Switching areas holds the current page until the next one can paint, then swaps without a crossfade.
Removed
- The
osdOCR dictionary is no longer shipped underlm-kit/tessdata-fast/: the OCR engine recognizes with LSTM only and reads page orientation with its own classifier.
Fixed
- App bar: a signed-in browser without a valid area ticket completes the bar in place instead of missing the operator areas until a reload.
- Opening a gated area behind an expired ticket no longer flashes the sign-in prompt before the area.
- Playground: the sidebar, history and model name paint once on open instead of redrawing after the configuration loads.
Security
POST /lmkit/v1/admin/logoutclears the area-ticket cookie.
2026.9.82026-09-25#
Added
POST /lmkit/v1/admin/memory/release-device: returns idle attachment prefill contexts, backend scratch and vision encoder buffers to the device.- Admin dashboard, VRAM attribution: Attachment prefill, Vision encoder and Backend scratch segments, and a Release idle action.
Inference:IdleDeviceMemoryReleaseSeconds(default 300, 0 never), editable from Settings > Inference > Contexts & defaults.- Memory page inventory: attachment prefill contexts, vision encoder buffers and backend scratch rows; Collect LM-Kit cache returns them too.
POST /lmkit/v1/admin/2fa/setupand the sign-in enrollment answers carryqrSvg: the otpauth URI drawn as a QR code on the server.lmkit run <task> --in <path> --out <folder>: a REST task on local files without a server, options from its request;document-to-markdownfirst.- Every package ships the default OCR dictionaries (English, orientation) under
lm-kit/tessdata-fast/: OCR works offline and pays no download on its first document. POST /lmkit/v1/image-convertwatermark: a visible text or logo watermark (tiled, centered or in a corner) at the output size; a character no font draws answers 422unsupported_characters.POST /lmkit/v1/image-convertrights: copyright notice, creator, credit line, usage terms and rights page written into the file as XMP, even withkeep_metadatafalse.GET /lmkit/v1/image-convert/capabilities:watermark_layouts,watermark_max_text_length,watermark_installed_fonts.POST /lmkit/v1/pdf-watermark: a vector text or logo watermark over every page orpages; marking again replaces it; 422signed_document,pdfa_forbids_transparency,unsupported_characters.POST /lmkit/v1/pdf-remove-watermark: removes the watermarkspdf-watermarklaid.POST /lmkit/v1/image-watermark: burns a watermark into an image, keeping its size, format and metadata.GET /lmkit/v1/pdf-watermark/capabilities,GET /lmkit/v1/image-watermark/capabilities: layouts, longest text, installed fonts.- MCP tools
pdf_watermarkandpdf_remove_watermark. - The container image bootstrap install DejaVu, WenQuanYi Micro Hei and Lohit Devanagari for watermark text.
Changed
- Admin dashboard, VRAM attribution: the legend is an aligned table with each segment's value and share of the bar.
- Admin dashboard: CUDA runtime + reserved is now the true remainder; memory the runtime holds between requests no longer reads as growth there.
- Settings > Access, two-factor: the setup dialog shows a QR code beside the setup key, grouped in blocks of four.
- Settings > Access, two-factor: the 6-digit code confirms itself once typed, and one footer carries Cancel and the action.
- Settings > Access, two-factor: recovery codes appear in the same dialog, with Copy all and Download.
- The sign-in enrollment step shows the same two-factor QR code.
- A farm node whose model volume is read-only refuses to start until
ModelWorkDirectorynames a shared mount; the per-node fallback below would split the fleet's imports. - The startup line, the dashboard and
lmkit doctorgive the file system's reason when a model or work directory refuses writes. document-to-markdownwith theTextExtractionstrategy no longer takes a completion slot (MaxConcurrentCompletions): it runs no model.lmkit run document-to-markdownsplits a large text-extraction batch without OCR across processes of about eight documents each.- The LM-Kit OCR engine is built on first use; a server start still builds it during startup.
- On Linux only the server caps malloc arenas (
MALLOC_ARENA_MAX); command-line verbs no longer re-execute under the cap.
Fixed
- Search: a deletion-journal flush the store could not take kept only its first tenant and dropped the rest of the batch, leaving their content unreconciled; every entry now stays on the node for the next flush.
- Admin dashboard, VRAM attribution: a "?" tooltip no longer blinks while the dashboard refreshes.
- Repointing the model directory left training jobs and imports writing under the previous one, which refused them once it was gone; the default work directory is decided again per model directory.
- Training jobs and model imports on a read-only model directory answered
503 model_store_read_onlyuntilModelWorkDirectorywas set; with the setting empty they now write underwork/in the state directory. - The startup line, the dashboard, the Models strip and
lmkit doctorname the effective work directory. - Settings > Storage: Browse and Download all read as disabled while the upload directory is empty, and their hints say why; before, they looked live and did nothing.
- Packages carried the
.jsonfiles of build output left in the project directory; publish takes declared content only, and packaging refuses an unexpected top-level directory. - Admin dashboard: the first telemetry payload no longer shifts the page; every card is laid out at its loaded size before data arrives.
- Admin dashboard: Downloads in progress sits last, so it appearing or leaving moves nothing.
- Admin dashboard: Recent requests times older than a day read as a date and no longer overlap the method column.
- Admin: a collapsed sidebar is applied before the first paint instead of reflowing the page.
2026.9.72026-09-17#
Added
- Image Utilities:
image-deskew,image-enhance,image-analysis,image-redactandimage-color-paletteroutes. image-normalization:flip,deskew,crop,fit_boxandoutput_dpistages;deskew_anglein the response.page_indexon every image route (multi-page TIFF);tiffas an output format.image-convertroute: format, size (never past the master unlessallow_upscale), colour space (sRGB, gray, CMYK via ICC), metadata, every TIFF page, inline orfile_iddelivery;GET image-convert/capabilities.- HEIC / HEIF images decode on every platform.
- Container image:
vulkaninfoincluded; the release smoke test proves the Vulkan loader, Mesa drivers and SDK backend inside the image (deploy/containers/check-vulkan-stack.sh). - Container image: ffmpeg included; AMD and Intel GPUs served; a GPU that did not reach the container is diagnosed in the Hardware panel and the startup log.
ModelWorkDirectorysetting: a writable home for training jobs and imported models beside a read-only model volume.- Guides: search on pgvector in containers; Podman GPU pass-through through CDI.
- Changelog page in the documentation, beside Guides and API reference.
Changed
pdf-unlockreports the security the original carried: encryption, revision, algorithm, author permissions, which password opened it.- Access: a new API key preselects the default Search cluster, the choices state their consequence, the token reveal states the key's reach.
- A key without Search access and a read-only model store are refused with their own fact; every refusal keeps its reason in the request trail.
- A training job refused for device memory waits up to ten minutes instead of failing.
- A request value the decoded content rejects (a page index past the last page, a crop outside the image) answers 400
invalid_argumentinstead of 500. - EULA: free production use requires a visible LM-Kit acknowledgement; outgrowing the free thresholds keeps the grant for 90 days.
Fixed
- Windows portable zip: Windows Explorer refused to extract it (entries carried a
./prefix); the release archive now lists the payload files directly and a guard rejects any archive Explorer cannot open. - Setup wizard: the model download step failed with
(entries || []).filter is not a function; the progress poll now reads thedownloadslist the endpoint returns. - A fresh server reachable from the network could not be signed into: the API access policy layered over the admin endpoints.
- Read-only model store: downloads, imports and the Ollama-compatible pull refuse before a byte streams, naming the remedy.
- OpenAI-compatible vector stores pass the Search cluster gate.
- Exported documentation: every link is site-absolute; a directory URL redirects to its trailing-slash form.
2026.9.62026-09-14#
Initial public release.
Added
- REST API under
/lmkit/v1: chat, chat with documents, embeddings, reranking, summarization, translation, rewriting, correction. - Text analysis: categorization, sentiment, language detection, keyword, entity, PII and structured data extraction.
- Documents: OCR, document to Markdown, splitting, validation, thumbnails, search highlight, image to PDF.
- PDF: info, layout, merge, split, edit, unlock, redact, OCR, sign, verify signatures, timestamp, LTV, PDF/A, to images, search.
- Media: audio transcription, voice activity detection, video frames.
- Image Utilities: background removal, normalization.
- Agents, skills, MCP server, training jobs.
- Search: hybrid keyword and vector search with clusters, tenants, collections and per-key grants over SQLite, PostgreSQL, SQL Server and MySQL.
- Compatible APIs: OpenAI, Ollama, Anthropic (Claude Desktop gateway).
- Admin console, Playground, Guides, API reference.
- Deployment: Windows (MSI, portable, service, tray), Linux, macOS, container image (Docker Hub, GHCR); SSO, API keys, network posture, TLS, declarative configuration.