Repository navigation
Releases
Assistant X 0.6.1
- An agent installs the program and a base package with one command and a few polls (a colleague's agent spent
199 model calls and its plan limit on 0.6 with a base of 37.5 GB):Setup.bat --online --yes --json --background --models --base FILEruns the whole chain in a process of its own with no window that outlives the agent (out of
its job, through the WMI service where its sandbox forbids that) and returns at once;assistant-x status --json
prints one short line: the stage, the percent, the minutes left, an error with its code and its fix, when to poll
again. A worker that died is started again by the poll; every end is written (an error, a signal, a sleep of the
PC). INSTALL_FOR_AI.md is short, with a token budget on top; the rest is in docs/INSTALL_REFERENCE.md. - A base install that was cut continues where it stopped: the extraction notes every file it copied (each hashed as
it is copied) and copies only the rest, and the package is checked whole once, not on every run. The fragments its
vectors leave are computed on the processor when there is no video card and they are few (--cpu: however many). - A new title in a card has the text fragments of the document embedded again: the model reads the title in front of
every fragment, and a build kept their vectors (412 fragments of 4 documents of a library had vectors of the old
title; a package exported from it carried none for them, so a colleague's install had them left). The first embed of
this version finds such vectors once and computes them again.base exportbuilds and embeds first and refuses a
base that is behind its texts. - A workspace and the folder of the PC on another disk (
--workspace D:\…,--machine-dir D:\…) reach every app and
every later command by themselves. - Setup.bat names the Python it took (one that is here, else the installer of the medium or of python.org; never
winget) and waits for no key with--yesor--json. - The background jobs of the server say why they ended (the exit code in words, a signal, the PC restarted).
- A test holds every call the documents and the skills show to the live schema of the server.
Assistant X 0.6
- docs/API.md: the library from a program of one's own, with no AI: the service, its entry points (
/mcp,
/health,/shutdown), the token, every command with its parameters (made from the schemas of the server by
gen-docs) and three examples run against a real library (Python, curl, the MCP client library). - LM Studio, said plainly: a small local model (Qwen) is much weaker than Claude or ChatGPT, so the quality of the
assistant there is much lower and not guaranteed. It is kept to a narrow reference mode (quotes with references);
getting more out of it is not a goal of this version. - The installer connects Claude Desktop with the one tool
library(it wrote every tool apart: 25 questions), and
says the one tool at its end. An online install that fails names an antivirus that scans HTTPS (Kaspersky) and the
sites to allow. - The skill is thin: it switches the assistant on by the key
AX:and callslibrary_guidewith its id; the
rules of the answers come from the program, always current, and replace any older skill (an older skill uploaded
in Claude Desktop kept «Independent assessment»). A skill of another id, or Claude Desktop passing none, is told
once a session to update it; a session that never calls the guide gets the rules with its first search. - Qwen in LM Studio: a search of the reference mode waits for the models a new service loads (the first answer went
by words only); the order to answer with the quote lines comes after the results too;connect lmstudioand the
installer set a context of 32768 as the default of every model of LM Studio (the GUI loaded 8192). - A page shown leaves no image file and no link: the link to open it at full size was plain text in Claude Desktop.
- One tool,
library, for every app (Claude Desktop, Claude Code, Codex, LM Studio, DeepSeek Harness, Gemini,
Antigravity, Cursor, Cline, Kimi): it carries every command by its name and arguments
(library(action="search_library", args={"query": "..."})), so an app asks once, or keeps one rule to allow it,
instead of once a tool. LM Studio gets the commands of the reference mode through it, its answers cut and formed as
before.--fulland--readerstill give the tools apart;assistant-x updatemoves every connection to the new
default unless its tool set was chosen. Claude Code allowslibrary(and the reading tools for a service of an
older version); Codex listslibraryin enabled_tools. - A service that kept the code of before an update is replaced by itself: /health names a stamp of its code, a bridge
of other code asks it to stop (POST /shutdown) and starts a new one once it has gone; a service of before the stamp
is used as it is. - A plan-schedule of revision, inspection, repair or maintenance with no results stays out of the library like the
other administrative papers; an act, a record, a report or a defect list with results goes in. assistant-x intake redo --fill CODES: a part of a set without its text is read (its text layer, or the recognition
of a scan) and named in the card of its set; an older intake left out every part of 1500 characters or less. The
author's library: 636 drawing sheets, schemes and appendices joined the search.- Audit 0.6 (
privatenotes of the author): the update moves Claude Desktop to the new version and keeps the chain of
environments; the folder of export_references refuses a network or device path and a link into the library; the
marks of a quote never land inside another number; no clause made of a date; filters of the search read once per
state of the base (1–2 s less a question); the docs say what goes to the provider of a cloud model. - One form of a reference in every app and mode, built by the search itself:
[code, cl. N, table N, p. N, PDF N]
(in Russian[шифр, п. N, табл. N, стр. N, PDF N]); the clause above the quote, the caption of its table, the
printed page (the page label of the PDF, else a number of its header or footer that keeps one offset over 3 pages);
a part not found is left out, never made up. - The quote marked on its page:
page_image(code, page, quote=…)marks it in yellow (highlight=false: the page
clean);export_references(folder, lines)copies the files of the documents cited into a folder of the user and
makes there one PDF of the pages cited, a page a sheet, the reference on top and the quote marked. Only words of the
text layer of a page are marked, a scan says it is not; the originals never change, a file there already is
replaced only on the user's yes, a network or device path and the folders of the library are refused. Every answer
ends with a line on both. - Kimi:
assistant-x connect kimiwrites the library into the Kimi CLI (~/.kimi/mcp.json) and Kimi Code
(~/.kimi-code/mcp.json), the rules into theirAGENTS.md(not yet checked with a running Kimi). - LM Studio: the reference mode answers with up to 15 verbatim quotes of the library with their references
(reference_quotesunder[search]), grouped by the level of the documents; no analysis of its own. - Answers follow the hierarchy of documents (the law, technical regulations, national standards and sets of rules,
company documents …; plain "Constitution" at the top); the user may set their own (library_hierarchy). - Key norms of the design topics: found, verified on their pages and given first in every answer
(index\key_norms.json, brought up to date by every build,assistant-x key-norms). - The jurisdiction of a document (a field of its card, found by the intake) and a filter of the search; the home
norms answer, foreign national norms (American, European, British, German) come after them as a supplement, first
only when the question names them. - The engineering form of an answer: initial data, the requirements by level with quotes, the calculation by the
documents found, checks and conflicts, what the library lacks. - Search: the FAISS index looks into 1 024 clusters; a line of a table of contents is not quoted and weighs less; a
hit shows the lines around its best one. - Setup from a plain git checkout: Setup.bat downloads a signed Python when there is none, passes the exit code of the
installer on, and the installer needs no package before the packages are installed. - Administrative pages stay out of the library: a file of only such pages (a title page, an approval or familiarization sheet, an implementation plan, an order putting a document into force, a cover letter, a service memo, the explanatory note to a draft norm, a transfer act) goes to
inbox\_rejected\adminwith a manifest after its text is read, a document or a part of a set alike; bound with a real document in one file such pages go in with it. Catalogs, reviews, the results of pilot tests, methods, notices of change and orders that approve rules are never set aside, a doubt is a warning;[intake] admin_filterturns it off,admin_accepttakes a file in anyway, andassistant-x checkwarns of such documents already in the library. - Commercial proposals and the prices of materials, equipment and works are technical data (the author, 2026-11-04): a file with a price of equipment, materials or works next to an amount, or an invoice, an estimate or a price list, is never set aside, a letter about prices included (the rule that set such letters aside is gone); a bare sum of a contract in an order on payments does not keep a file. A power of attorney, a business trip paper and a contract without a scope of work, technical requirements, a specification or prices are set aside like the other administrative papers; a work schedule alone is taken in with a warning. A price no longer matches the start of a word such as "центробежный".
Assistant X 0.5.11
Answers from the whole library and no question before every page.
- Claude searches 2-3 times with other terms and once more on the shelf of the standards and the company documents
(shelf N) before it answers, and puts the company documents after the standards in the priority: an answer no
longer stops at the first handbook (the skill, the guide and the instructions of the server). - assistant-x connect claude_code adds the eight reading tools of the library to the permissions of Claude Code
(~/.claude/settings.json, permissions.allow): Claude Code and the Code tab of Claude Desktop stop asking before every
page; the tools that change the library still wait for the user's yes, and disconnect takes only these out. - The install of a base package into an empty workspace kept its assistant_x.toml whole only when a comment stood
between [documents] and languages; with languages at once below it the two lines were joined and the install
stopped on a TOML error. - Answers in the form of the assistant with a reference after every fact, also from a small local model: the guide
(library_guide) starts with the mandatory form (short answer, from the library, independent assessment,
recommendation, sources) and the rule never to answer without references; every page hit of search_library
carries a line "Cite: [code, p. N, PDF N]" and read_pages its references on top. - LM Studio: assistant-x connect lmstudio writes the preset "Assistant X" (the guide as the system prompt, thinking off),
picked once in a chat; disconnect removes only it. The compact search gives the 3 best fragments and the 3 best of
the standards and company documents (shelf N), so that a small model gets the norms without asking for them. - A subject the library has no document on: when the reranker is not sure of its best fragment (below 0.88; the
questions the library answers score 0.945-1.00) the answer of search_library starts with "Weak match", and the guide
says to stop after two searches that find only neighbouring subjects and to tell the user so.
Assistant X 0.5.10
The install of a big base package is reliable and fast: the colleague test of a real base of 30 GB found three faults.
- An install interrupted midway and resumed skipped files: the resume listed again the files left to place, and the
indexes of the moves noted done no longer matched that list (2099 documents without their texts on a real base). The
list of the moves stays the one of the start now. - The journal of an install was written whole after each moved file: 22 660 files rewrote a journal of megabytes
22 660 times, about 90 GB written for a base of 30 GB. It is written every few seconds now; a resume and a rollback
take a move whose source is gone and whose target is there as done, so a power cut loses nothing. - Windows refuses to replace a file another program (an antivirus, an indexer) reads at that moment: the journal is
tried again for a few seconds instead of stopping the install. - Install-Base.bat after an interrupted install asks to continue it ("Continue it? [Y/N]") and goes on with a double
click, no command line; Setup.bat says so when the base stops. The answers "lf" (да in the English layout) count as
yes too.
Assistant X 0.5.9
The base export and install of a big library in minutes, not an hour.
- The vector cache found every key alone in a big-endian array, which numpy converted at every call: about 1-2 ms a
key, 73 minutes for the export of a real base of 945 000 fragments (30 GB). The keys are searched at once and the
vectors read in one pass now (20 000 keys: 90 s before, 0.1 s now); assistant-x base export, base install, base
update and embed take the cache the same way. The vectors of a package are byte for byte the same. - assistant-x base export shows its progress: the files of the documents with the gigabytes done and the minutes left,
then the vectors.
Assistant X 0.5.8
A base installed without a command line, for a colleague who has LM Studio only.
- Setup.bat offers at its end a base package (a .axbase file) beside it or in its base folder, with its title and
its count of documents ("Install it? [Y/N]"); with none, the Windows window "Open a file" asks for one, Cancel goes
on without a base. With --yes it asks nothing and opens no window (an agent gives the package with --base). - Install-Base.bat installs a base later with a double click: the file beside it or one chosen in the window "Open a
file", the plan of the installation, one confirmation, "Base installed: N documents". - Update.bat takes the latest release with a double click (assistant-x update --from the page of the project).
- The two find the program in use after an update too (python.txt of the machine folder, written by Setup.bat and
by the update); the messages follow the language of Windows (English, Russian). - docs/LMSTUDIO, README and INSTALL_FOR_AI describe the program as one archive and the base as a separate file.
Assistant X 0.5.7
The release for colleagues after the trial intake of a big real folder and a full audit: the intake by cost,
attachments of documents, assistant-x update --from a release, Gemini CLI, Antigravity, Cursor and Cline, a guide for
LM Studio, the measured speed of the search, and the fixes the audit and the install from the medium found.
- Intake: a card may be written in the document language first ("en_later": true in meta.jsonl): it is checked without
its English part, its file name is its title transliterated, and the card carries an issue that lists it for the
English part later. - The intake run by itself (python -m assistant_x.intake.pipeline, apply_job, search.reindex) with its output in a file
of a legacy code page no longer stops on a character such as an arrow: an apply stopped so on the line of the
recognition vocabulary. - Intake: two files of one design series (another volume or variant in the designation of the file name, such as
...-EM.03.01-GCh01 and ...-GCh02) are no duplicate by themselves even when most of their phrases match: the second
stays a suspect for the assistant to decide; a copy under the same designation or with no designation in its name is
still a duplicate. - Intake: loose pictures and photos, web pages (htm, html) and spreadsheets are set aside by default ([intake]
pictures, web_pages, spreadsheets = "reject"): they are not read, they go to inbox_rejected\pictures, \web pages,
\spreadsheets when the batch is applied, "set aside" in the ledger, and the summary and the status list them as taken
on request with how to take them (--pictures include, --web-pages include, --spreadsheets include). A folder of page
scans is still joined into one PDF and read. - Intake: the check of a card line accepts a title that shares a word with the file name when it shares none with the
first pages: a document joined from phone photos is read badly by OCR and gets its title from its file or folder
name. - Intake: a duplicate, a file set aside or a program file moved by an apply keeps its outcome in the ledger of the
next batch (before, every moved file read "done", and a part line naming such a file stopped the apply with "no
source file"); the summary counts only the files moved into the library as moved into it. - assistant-x remove (library_remove) of one part of a document (N-00268-02) takes the part out of the card of its
document, with its issues and hidden texts, the card as it was aside; before, the card still named the part, the
base could not be built and the removal failed again on every resume. - Attachments of a document (file.attachments of the card): a workbook of its appendices or a calculation is kept
beside the document under its code (<code>_attachment-N_<what>), neither read nor searched, and named by the card;
the intake places it from a meta line {tid, attach, what}, and remove, base export and install (new codes too) and
assistant-x check take it with the document. assistant-x check also warns of a file of the library that no card
names. - Intake: the batches of a big inbox go by cost by default ([intake] order = "cost"): a run takes the fast files (a
PDF with a text layer, office files, text), the next one the medium ones (a scan of up to 100 pages, a .chm), then
the slow ones (DjVu, a longer scan) [intake] slow_batch at a time; the other files wait in inbox untouched and the
summary counts them. order = "all" (or intake run --order all) takes everything at once as before. - Intake: an empty folder of inbox marked read-only (copied from a share or a disc) is removed after a batch too; before,
Windows refused it and such folders were left (the service folders stay as always). - Intake: a file whose designation is written as that of a document of the library, its year too, is proposed as a
duplicate of it ({"dupof": code}; a better copy may replace it on the user's word); another year stays the question
of a new version. - Intake: the draft year is no year to come, no number after the number sign (reg. No 1928) and no year of the heads of
a table of years (an economic model with columns 2025..2028 got 2027); on the 4 186 texts of a real library the
drafts agree with the checked card years 3 184 times instead of 3 181. - assistant-x connect gemini (Gemini CLI:
/.gemini/settings.json and the short rules in/.cursor/mcp.json) and cline (the MCP settings of the/.gemini/GEMINI.md),/.gemini/antigravity/mcp_config.json), cursor (
antigravity (
Cline extension of VS Code): connect auto, connect --check, update and Setup know them. - assistant-x update --from installs the latest release with a
tag beside the version in use: its wheel checked against the SHA256SUMS of the release, a new environment
venv- that sees the packages of the old one, the apps connected again and doctor run there; when a step
fails the apps go back to the old version. The library and the settings are not touched (INSTALL_FOR_AI, step 10). - MCP server: the closest words of a page (verify_quote), the names of the files of inbox (intake_list,
intake_status) and the plans of intake_apply and library_remove get the "Suspect text" mark too when they speak to
an AI assistant, as the search hits, the pages and the cards did. - Intake: an archive (with its nested ones) of more than [intake.unpack] max_files files (20 000) is refused like one
past its size, and two members whose names differ only in case are both kept (the second as name_2); before, a
small zip of 20 000 empty files gave 20 000 files of the batch, and Windows kept one of the two names. - Intake: intake_card names every field of the card from the schema, adopts, amends and page_offset among them:
they were left out, so the drafts had them and no card did (a national standard was not found by the foreign one
it adopts). - Intake: "en_later" is refused for an English document (it gets its bilingual card at once, the author's rule);
before, its English card with en_later was refused and a card without English passed. The skill and docs/INTAKE
name en_later now. - journal.md: a file taken out of the library (remove) or given another name (a "renamed" event) is no longer
counted "in the journal but not in the manifest": 10 false alarms of a real library hid a real one. - [paths] data moves the base, the batches of the intake, the packages and the debug journals as its comment says
(before, only the models, the fingerprints and the recognition vocabulary, which the intake then wrote where the
recognition score did not read it). - prepare-media puts the license texts of the models on the medium (models\LICENSES: bge-m3 MIT, bge-reranker-v2-m3
Apache-2.0), prepare-media --check misses none, and THIRD_PARTY_LICENSES names the license of the Python installer;
before, the medium said the models carried their own license files, which they do not. - Intake: a TIFF of several pages, or of a sheet of 2 000 pixels and more, is a scanned document and is read; it is
no loose picture set aside (the sheets of an assembly drawing went to inbox_rejected\pictures). - Intake: a folder of 4 pictures and more that stand upright like pages (a vessel passport of 6-10 phone photos) is
joined into one PDF like a book of 8 scans and more; photos of a site, lying across, stay pictures. Before, such
passports were set aside photo by photo and 51 of them were joined by hand. - docs/LMSTUDIO.md (and its Russian twin): Assistant X with a local model in LM Studio step by step: what is needed, the
install in three steps, how to ask, a preset for small models, what to do when it fails. - Setup: the self-test of the install loads the search modules again (it imported them by an old name and failed on
every new PC: "No module named 'search'"; its test only looked for the sections of the report), and a new workspace
with no document yet lists no missing base among its problems. - The installer and the medium say what the search does on a processor (about 2 s a question, the reranker on the
best candidates), not "0.1-0.3 s, without reranking"; README names the measured speed of the search (0.63 s a
question on a video card, 2.1 s on a processor) instead of "in seconds".
Assistant X 0.5.6
The trial intake, continued: no memory deadlock on long documents, damaged files set aside by themselves, and a
Word file LibreOffice cannot draw read from its .docx.
- Intake: a long document whose pages go as images (after the watchdog) no longer fills the memory: the copy is built
25 pages at a time (a .doc of 2 428 pages grew a worker to 13 GB); on a memory emergency the worker that holds the
most memory is not suspended, so it ends its task and gives the memory back (before, every worker was suspended and
the batch waited for hours). - Intake: an office file LibreOffice cannot open and reads as raw bytes (a .doc with a broken inner directory came out
as 2 428 pages of signs) is reported as a damaged file to get again, not converted for hours. - Intake: a damaged file (a cut PDF or Office file, an archive that cannot be read, an office file LibreOffice can only
read as raw bytes) is moved after the batch to inbox_to_delete\damaged with its folders and its SHA-256 in the
journal; the ledger says damaged and the summary lists them. - Intake: a .doc, .rtf or .odt LibreOffice cannot draw even with the doubled memory (a textbook of embedded equations)
is saved as .docx by LibreOffice and read from it: its text kept, the equations drawn as objects lost.
Assistant X 0.5.5
The trial intake of a big real folder in batches, continued: spreadsheets held in inbox by default, drawing sheets
and long documents read many times faster, and the fixes the batches found.
- A PowerPoint deck with macros (.pptm) is read like any deck (LibreOffice converts it to PDF without running a macro);
before, it was left as a file the intake does not process. - A compiled HTML help file (.chm, a book or a handbook) is one document now: 7-Zip takes its pages out, the contents
of the file gives their order and titles, scripts, styles and pictures are left out, and the pages are laid out on A4
like any HTML. Before, the 11 help files of a trial inbox were files the intake did not process. - A folder of page scans (8 pictures and more, most of them with the shorter side of 800 pixels and more: a book
scanned page by page) becomes one PDF named after the folder, its pages in the natural order of the names, the
pictures to _to_delete; before, every page was a document of its own (a book of 240 pages in a trial inbox). Icons
and the pictures of a site stay as they are. - Sets of drawing sheets drawn in curves (A2 and up, no picture, no text layer) are planned by what they cost: about 25
s a sheet, and a set of them goes in page ranges on several workers. Before, such a set of 16-18 sheets went to one
worker as a cheap text file while the others idled (450-500 s, CPU 19 %). - A folder of HTML pages (an e-book or a site saved article by article, 10 pages and more) becomes one HTML document
named after the folder, its pages in the natural order of the names, scripts and pictures left out; the pages go to
_to_delete. - [intake] to_delete_ext names the extensions the user sends away (a list, or a table of extension = folder: dwg, cdw
and bak into one folder): prepare moves such files, loose or out of an archive, to _to_delete<folder>\ keeping their
folders, a line of the journal each. - By default the intake sends away the files it cannot read and that are no documents: programs (exe, dll, msi, lnk),
CAD drawings (dwg, dwt, dwl, bak, cdw, spw), .gsfx, logs, videos and the scripts and icons of a site go to
inbox_to_delete<kind>\ with their folders, loose or out of an archive, each with its SHA-256 in the journal;
nothing is deleted. [intake.to_delete_ext] extends or changes the table, an empty folder keeps an extension, a list
replaces it (docs/INTAKE.md). - The default sends a GIF or an ICO away only when it is smaller than a page scan (an old page or a diagram saved as a
GIF is read as a picture: GIF is a picture kind now), and a .bak or a .dwl only beside a drawing of the same name (a
.bak of a Word file or of a database stays). - The letters an archive holds are taken apart after the archive is unpacked (before, they were left as files nobody
read), and a second reading of the page images that fails (a sheet of 2 x 3 m read at 29 dpi) keeps the text of the
first reading instead of failing the file. - A page without a text layer drawn of more than 20 000 vector paths (a sheet whose text is curves, a scheme of 2 x 6
m) is read from its image: its layout analysis took more than 10 minutes (a project volume of 174 pages ran 40
minutes in a trial batch; the page now 12 s). A watchdog limits a conversion to 180 s a page ([intake.timeouts]
page): a range or a file it stops is prepared once more with all its pages without a text layer read as images, so
one page cannot stall a batch. - Search: the reranker orders the candidates and the hybrid score breaks its ties ([search] rerank_weight 100, was 1).
On 80 control questions of real documents the page came first 57 times instead of 45 (MRR 0.705 -> 0.801; on a
processor 44 -> 54), on the questions of 87 cards the MRR of the document 0.484 -> 0.512; the 10 questions the
library cannot answer still say Low closeness. - The tail of a batch starts the longest tasks first: once every file is prepared and no more conversions wait than
there are workers, the costliest page range goes first, so a long range started last no longer holds the batch alone
at its end; before that, the cheapest first as ever. - intake redo no longer fills the disk: the copies of a document in its work (the copy of the library PDF, its
variants, their page images) go as soon as the document is read, and a variant links to the copy instead of copying
it again (one night had left 23.5 GB of copies). - A PDF with no page that can be read (a cut download whose end is zeros, a broken tree of pages) is reported as a
damaged or cut file to get again, not as a file without text. - The page images read instead of a broken text layer are drawn at 300 dpi but at most 12 000 pixels on their longer
side: a sheet of 2.4 m asked 210 MB at once and the worker failed a project volume of 174 pages. - LibreOffice writes each conversion into a folder of its attempt and the file is moved into place: a LibreOffice
stopped at its memory cap may still hold its half-written PDF, and the second attempt failed to store it (a chapter
of a book in a trial batch). - Letters and archives are taken apart until nothing new comes: an archive attached to a letter that an archive held is
unpacked too (before, it was left as a file nobody read). - A workbook (.xlsx, .xlsm) LibreOffice cannot draw (it crashed on a book of 83 sheets every time) is read from its
cells: each sheet under its name as a table on text pages, the why naming the crash; before, the file was an error. - An empty file (0 bytes) is skipped as nothing to read instead of failing as an error of the batch.
- An archive whose names hold signs Windows refuses (a letter saved under its subject: 'RE: FW: ... "Name" ') is
unpacked with those signs as underscores; before, the whole archive was refused. A path that climbs out, an absolute
path and a device name of Windows stay refused. - A page with a text layer drawn of more than 100 000 vector paths (a plan of 485 000 held the layout analysis for more
than half an hour) loses its line art in the copy the intake reads, its text and pictures kept: the page converts in
a second. - A Word document (.docx, .docm) LibreOffice cannot draw even with the doubled memory (a report of 87 embedded PDFs
went past 6 GB) is read from its parts: its text (headings, tables) and the PDFs embedded in it (an Acrobat object or
a PDF part) are laid out as one PDF. - Intake: drawing sheets (A2 and up) with a text layer lose their line art past 10 000 vector paths, and those whose
text is drawn as curves (fewer than 300 characters in the layer) are read from their image; a set of A1/A0 drawings
took 34 minutes, now 3. - Intake: words of a legacy code page shown as Latin-1 in a text layer (the stamp of the sheets of a CAD export) are
read back in the code page of the document language. - OCR: a scanned page that stays weak after the retries is also read turned (the turn Tesseract guessed, else 180°)
when Tesseract cannot tell its orientation; an upside-down offer of six pages went from 25-30 to 82-87 points. - Intake: an Office file cut before the directory of its zip archive (a half-copied .pptx) is reported as a damaged
file to get again, not as a failure of LibreOffice. - Intake: a document of 300 text pages and more is converted in page ranges of 100 pages at least on every worker, as a
long scan is; a workbook laid out on 1 029 pages took 33 minutes of one worker, now 7. - Intake: spreadsheets (xls, xlsx, xlsm, xlsb, ods) are held in inbox by default ([intake] spreadsheets = "skip"):
untouched, "held" in the ledger, listed in the summary and in intake_status with how to take them ([intake]
spreadsheets = "include", or intake run --spreadsheets include). A workbook is mostly a dataset, not a document to
cite.
Assistant X 0.5.4
The documents for people in Russian too; the fixes found by the trial intake of a big real folder in batches of 50 files.
- The models of the PC no longer stay in the folder of the Microsoft Store app of Claude Desktop (which removing or
resetting the app would delete): any command moves them into %USERPROFILE%.assistant_x when nothing holds them, and
doctor names the state until then. - A PC without a video card reranks too: the reranker reads the first 8 candidates (rerank_cpu_top). On 40 control
questions the page came first 24 times instead of 18 (MRR 0.70 instead of 0.59) for 2.6 s a question. - The documents for people have Russian twins (README.ru.md, CHANGELOG.ru.md, docs/*.ru.md and the rest), with a line
to switch the language at the top; gen-docs makes INSTALL_FOR_AI.ru.md and docs/CLIENTS.ru.md from Russian templates,
and a test keeps every pair together (headings, code blocks, links, versions). - Card drafts (Q6): capitals spaced out over several words are split again by the seed vocabulary
(УСТАНОВКАОСУШКИГАЗА), a word OCR broke into pieces or at a hyphen is joined, the English title is left out of the
title of a Russian standard, a garbled head line still gives the title of a standard, a series line is no title, a
textbook is no plain book, the imprint line gives the year, and an OCR tilde in an RD designation reads as a dash. On
the 40 hard documents of the rounds the titles came right 32 times instead of 26 (year 36/39, designation 35/35); the
recognition snapshot moved only for the intended patterns. - The ledger of a batch (ledger.csv in its work folder, a line at the end of summary.md): every file the batch met in
inbox has exactly one outcome - done, duplicate, error, unsupported (a kind of file the intake does not process),
skipped, moved aside (a letter, an unpacked archive, personal papers) or queued - with its pages, OCR pages,
recognition score and seconds, so the totals add up to what the folder held. - Intake summary and ledger wording: the load line says how long the regulator held workers back (it was called
paused), a temporary Office file (~$) is no longer called a Word file, and a card draft whose text gives no title (a
drawing, a scan without words) takes the name of the file. - Card drafts of pictures: a photo whose recognition score is below 30 is proposed to drop even when OCR read its
shapes as many words (26 of 31 photos of a trial batch had more than 25 such words), and a file name whose UTF-8
bytes an old archiver showed in another code page is mended for the title. - Letters: the small pictures of a letter body (a logo, a signature: an attachment with a Content-ID, under 100 KB)
stay in the letter instead of becoming documents of the batch; the summary counts them. A bigger picture (a
screenshot pasted into the letter) and the real attachments are taken out as before. - An archive split in volumes (X.7z.001, X.zip.001, X.001 with .002, .003 … beside it) is unpacked from its first
volume by 7-Zip; the next volumes go aside with it. Before, the first volume was left as a file the intake does not
process. - A drawing sheet too big for the page image (read at 80-120 dpi on A1/A0, its labels noise) has its title block - the
bottom right corner with the name, the designation and the sheet - read again at 300 dpi; that reading is kept when
the reading of the whole sheet is weak or scores lower. On one-page project drawings of a trial batch: score 68
instead of 39, the designation read, 22 s instead of about 70 s. - A page of A2 and bigger is a drawing sheet whatever the length of its document: one sparse-text pass and its title
block, no retries (a set of 10 A1/A0 sheets of a trial batch: 127 s instead of 441 s). The corners where the title
block is looked for are data of the settings (QUALITY title_blocks, default the bottom right 200 x 80 mm that holds
the blocks of GOST 2.104 and ISO 7200); the block is kept only when it scores higher than the reading of the whole
sheet. - The workers of a batch in a new workspace no longer fail a file with Permission denied while they build the missing
vocabulary of the recognition score at the same time: each writes a temporary file of its own and a busy replace is
tried again.