Skip to content

Releases

Assistant X 0.6.1

Choose a tag to compare

@github-actions github-actions released this 05 Nov 15:01
  • 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 FILE runs 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 export builds 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 --yes or --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

Choose a tag to compare

@github-actions github-actions released this 04 Nov 11:20
  • 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 calls library_guide with 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 lmstudio and 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. --full and --reader still give the tools apart; assistant-x update moves every connection to the new
    default unless its tool set was chosen. Claude Code allows library (and the reading tools for a service of an
    older version); Codex lists library in 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 (private notes 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 kimi writes the library into the Kimi CLI (~/.kimi/mcp.json) and Kimi Code
    (~/.kimi-code/mcp.json), the rules into their AGENTS.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_quotes under [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\admin with 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_filter turns it off, admin_accept takes a file in anyway, and assistant-x check warns 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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 18:32

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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 15:19

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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 14:17

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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 13:10

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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 12:35

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 /.gemini/GEMINI.md),
    antigravity (
    /.gemini/antigravity/mcp_config.json), cursor (
    /.cursor/mcp.json) and cline (the MCP settings of the
    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

Choose a tag to compare

@github-actions github-actions released this 30 Oct 09:13

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

Choose a tag to compare

@github-actions github-actions released this 29 Oct 18:54

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

Choose a tag to compare

@github-actions github-actions released this 29 Oct 01:28

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.