LM-Kit OneDocs2026.10.4lm-kit.comEULA
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, .html or .dclg after --output-format.
  • MCP tool document_parse: Markdown inline or linked, the JSON parse as a resource.
  • Playground > Parse: parse at Low, Medium or High effort 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 osd OCR dictionary is no longer shipped under lm-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/logout clears 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/setup and the sign-in enrollment answers carry qrSvg: 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-markdown first.
  • 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-convert watermark: a visible text or logo watermark (tiled, centered or in a corner) at the output size; a character no font draws answers 422 unsupported_characters.
  • POST /lmkit/v1/image-convert rights: copyright notice, creator, credit line, usage terms and rights page written into the file as XMP, even with keep_metadata false.
  • 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 or pages; marking again replaces it; 422 signed_document, pdfa_forbids_transparency, unsupported_characters.
  • POST /lmkit/v1/pdf-remove-watermark: removes the watermarks pdf-watermark laid.
  • 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_watermark and pdf_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 ModelWorkDirectory names a shared mount; the per-node fallback below would split the fleet's imports.
  • The startup line, the dashboard and lmkit doctor give the file system's reason when a model or work directory refuses writes.
  • document-to-markdown with the TextExtraction strategy no longer takes a completion slot (MaxConcurrentCompletions): it runs no model.
  • lmkit run document-to-markdown splits 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_only until ModelWorkDirectory was set; with the setting empty they now write under work/ in the state directory.
  • The startup line, the dashboard, the Models strip and lmkit doctor name 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 .json files 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-redact and image-color-palette routes.
  • image-normalization: flip, deskew, crop, fit_box and output_dpi stages; deskew_angle in the response.
  • page_index on every image route (multi-page TIFF); tiff as an output format.
  • image-convert route: format, size (never past the master unless allow_upscale), colour space (sRGB, gray, CMYK via ICC), metadata, every TIFF page, inline or file_id delivery; GET image-convert/capabilities.
  • HEIC / HEIF images decode on every platform.
  • Container image: vulkaninfo included; 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.
  • ModelWorkDirectory setting: 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-unlock reports 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_argument instead 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 the downloads list 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.