Skip to content

Releases: z-brenner/intern

Intern v0.1.0-alpha.12

Choose a tag to compare

@github-actions github-actions released this 28 Oct 06:35
a759d11

Intern v0.1.0-alpha.12

This is an alpha release for Windows x86-64. It is deliberately published as a
GitHub latest release, not a GitHub prerelease, so installed clients can
fetch the updater manifest at /releases/latest/download/latest.json. The
version and this note still make its alpha status explicit.

Read this first

  • Coming from alpha.11, Intern updates itself. This release uses the same
    update address and the same signing key (ID 23576C5DEB2D7F57). The
    automatic check or Check for updates offers it. Your queue, history,
    settings and learned spellings are kept. From alpha.10 or earlier, download
    this installer once, by hand, as the alpha.11 notes explain.
  • Nothing to download again. Your documents are still named by the
    same pinned Qwen3.5 2B file (1.28 GB). On the first launch after the update,
    Intern checks that whole file once. A second, optional quick model is
    offered in Settings and is downloaded only if you ask for it.
  • Intern now works between two folders, and needs both. Documents in the
    input folder are processed; approved ones move to the output folder
    under their new name. If alpha.11 was watching a folder and filing into a
    destination, those become your input and output folders, with nothing to
    do. Otherwise Intern asks on its first launch, offering your destination
    again as the output folder, and cannot be used until both are chosen.
    Neither folder may be inside the other.
  • Adding a file now copies it. Add files, Add folder, a drop on the window,
    and Send to > Intern copy files into the input folder. The originals
    stay where they were, untouched. In alpha.11 the file you added was the one
    renamed.
  • Intern now renames two kinds of file without asking. Both renames happen
    in the input folder, are marked in the file's name, and can be reversed:
    • A document Intern cannot read for a reason of its own is renamed
      NEEDS REVIEW - <name> in place and waits in review. Reasons include a
      password, a damaged or mislabeled file, or a file too large to read.
      Keep original removes the prefix.
    • A file whose exact bytes Intern has already filed is moved into the
      output folder as COPY - <the original's filed name>, even with
      automatic renaming off. Undo puts it back.
  • Going back to alpha.11 is not supported. A document read by the new quick
    model carries a review reason alpha.11 does not know, and alpha.11 cannot
    list a queue that holds one. alpha.11 also knows nothing of copy filings or
    NEEDS REVIEW renames.

What is new

Names built from facts the document states

  • The local model now gives facts, not the name and description. It
    gives the type, the date, the parties and their roles, and the subject,
    each with the ID of the line in the document that states it. Intern checks
    every fact against what the model was shown, then writes the filename and
    description itself. A fact nothing the model was shown supports is not
    used.
  • A description says only what the document says. Every word, whole
    number, currency symbol and percent sign in a subject or key fact must
    appear in the text the model read. Stray invisible characters, such as a
    zero-width space, are kept out of names.
  • Measured on InternBench's 77 synthetic documents, replaying the new
    pipeline against the previous one on the same pages
    (bench/reports/2026-10-07-phase3-compare.md): correct filenames 26 → 54,
    marked ready under a wrong name 30 → 15, filed under a trap date 11 → 1,
    sent to review 32.9% → 15.6%, and median time per document, as recorded on
    a 4-core Xeon, 38.9 s → 19.2 s. Two later checks, a signing date given
    way to the last signature's and a bare "Agreement" sent to review
    (docs/model-bakeoff.md), take the same replay to 14 marked ready under a
    wrong name and none filed under a trap date, with 16.9% sent to review. A
    live run on the PrismML runtime this release ships, made before those two
    checks, named 52 correctly and marked 18 ready under a wrong name
    (bench/reports/bonsai-linux-cpu-2026-10-27).

Pages read in reading order

  • Every page is read as blocks in reading order: headings, paragraphs,
    tables with their rows and cells, and labeled fields. Intern decides how to
    read each PDF page separately. A plain page is read directly. Columns and
    tables are read by their layout. A scanned page, or a scanned region on a
    text page, is read by OCR.
  • Scans are read with PP-OCR, which runs through ONNX Runtime 1.30.0 and
    ships in the installer. If it cannot load, Intern reads scans with
    Tesseract, as it did before.
  • On InternBench's 72 documents of the time
    (bench/reports/2026-10-07-phase2-compare.md), text in reading order rose
    from 64.9% to 100%, labeled values found from 57.6% to 99.0%, and correct
    filenames from 19 to 24; OCR character error fell from 19.1% to 5.0%. A
    later comparison with newer PP-OCR models and two other engines, on all 19
    scanned InternBench documents, found nothing better at an acceptable cost,
    so the OCR settings are unchanged (docs/ocr.md).

Two local models

  • Qwen3.5 2B names your documents; Bonsai 2 2B (517 MB) is an optional
    quick model.
    A new install downloads the quick model first and opens the
    queue once it passes its checks, while Qwen3.5 2B downloads in the
    background with one line in the window showing its progress.
  • A name from the quick model always waits for you. It is never filed on
    its own, even with automatic renaming on. Review says "Read by the quick
    model — check it, or wait for the accurate model to read it again". Qwen3.5
    2B reads the document again once it can, unless you have already acted on
    it. On InternBench's 77 documents, Bonsai 2 2B named 37 correctly and marked
    23 ready under a wrong name. Qwen3.5 2B named 52–54 correctly
    (bench/reports/bonsai-linux-cpu-2026-10-27).
  • Settings > Model: Automatic (recommended) reads everything with
    Qwen3.5 2B, the quick model standing in only while the computer is short of
    memory. Most accurate uses Qwen3.5 2B whenever memory allows.
    Fastest reads everything with the quick model; every name still waits
    for you and is not read again. Each model has a line with its size, state
    and the one action it needs. The review panel says which model read a
    document and whether the reading is provisional.
  • Memory: One model is loaded at a time. Qwen3.5 2B is loaded only when
    4 GiB of memory is available; if it is the only model installed, it reads
    regardless. A model is unloaded after ten minutes without a document, and
    the next document loads it again.
  • New runtime: both models run on the PrismML fork of llama.cpp, release
    prism-b10826-c9c34bc (alpha.11 used llama.cpp b10361), started with
    --cache-ram 0 -ub 256 --prio -1 --poll 0. With the Bonsai models, turning
    the prompt cache off stopped the server growing by tens to hundreds of MB a
    document with unchanged replies, and -ub 256 made documents 13–14% faster
    on processors without AVX-512. --prio -1 --poll 0 keep the server at low
    priority, out of the way of your other work.
  • One model failing to start no longer stops the queue if the other model
    is installed. Intern sets the failed model aside, shows its error in
    Settings, and the other model reads. Try again brings the failed model
    back. A download you paused stays paused after a restart.

Input and output folders

  • Setup lists the OneDrive and SharePoint folders already on the computer
    and can create an Output folder beside the input folder. Settings shows
    both folders at the top with Change…. The "Watch a folder" checkbox is
    gone; options for a folder shared with other computers are under
    Advanced. A new install turns on running in the background and at
    sign-in once the folders are saved; an updated install keeps its choices.
  • Adding: folders are flattened, a taken name gets " (2)", a file already
    in the input folder is not copied again, and one in the output folder is
    refused. Each copy is written under a temporary name in a hidden .intern
    folder, checked against the original, then given its real name, and joins
    the queue at once. Files sent with Send to before setup wait and are
    copied in once the folders are chosen.

Unreadable files and exact copies

  • Unreadable files go to review. A password-protected, damaged,
    mislabeled or oversized document now waits in review instead of failing.
    When a failure could be the machine's (an unusable reply, a time-out, a
    reader crash), Intern first shows the machine works, by reading another
    document or with its own self-test, and blames the document only if it
    fails again. An outage stops the queue and renames nothing. In review,
    Retry, type a name and approve it, or Keep original.
  • Exact copies are filed as copies, named after the original, with
    " (2)", " (3)" for later ones, and with no description record of their own.
    Undo returns one to the input folder to wait in review as a duplicate;
    Process anyway reads it like any other document.

Reviewing the queue

  • One Queue view. The separate Needs Review page is gone. The toolbar
    shows how many documents need review, and clicking that count takes you to
    each one in turn.
  • Clicking a row selects it; Details opens the review panel, which stays
    open and follows the selection. Enter or F2 opens it at the name.
    Ctrl+Enter, Alt+K and Delete act only while it is open; J/K and Up/Down
    still move between documents.
  • The table copies like a spreadsheet. Click, Shift+click, drag, a column
    heading or Ctrl+A selects cells. Ctrl+C or Copy puts them on the
    clipboard as tab-separated text and an HTML table, so they paste into Excel
    or Google Sheets one value per cell. Status is never copied, a cell that
    start...
Read more

Intern v0.1.0-alpha.11

Choose a tag to compare

@github-actions github-actions released this 06 Oct 00:01
b71d1dd

Intern v0.1.0-alpha.11

This is an alpha release for Windows x86-64. It is deliberately published as a
GitHub latest release, not a GitHub prerelease, so installed clients can
fetch the updater manifest at /releases/latest/download/latest.json. The
version and this note still make its alpha status explicit.

Read this first

  • Coming from alpha.10? Download this installer once, by hand. Intern's
    home moved to z-brenner/intern. alpha.10 looks for updates at its old
    address and trusts only the old signing key, so it cannot update itself to
    this release. Install this one over alpha.10. Your queue, history, settings
    and learned spellings are kept.
  • Updates are signed with a new key. From this release on, an installed
    Intern accepts only updates signed by the key whose ID is 23576C5DEB2D7F57.
  • Going back to alpha.10 is not supported. This release records failure
    reasons alpha.10 does not know, and alpha.10 cannot list a queue that holds
    one.

What is new

Names you can trust more

  • Accented text no longer stops the queue. A character such as é, §, •, °
    or ½ near a date used to crash validation and pause everything. French and
    German invoices and many contracts hit it.
  • A document's own date is recognised. "This Consulting Agreement dated…",
    "Contractor" and "Pursuant to Section 9.2… effective" used to be read as
    references to another document. The right date was then held back, or quietly
    replaced. A date cited from another agreement is still not taken.
  • Due dates, impossible years and ambiguous dates go to review instead of
    into the name.
    • A date the document labels as a due, renewal or expiry date is not used as
      its own date.
    • A year like 2625 (an OCR misread) is flagged.
    • A date written only as 03/04/2026, which could be read either way round,
      is flagged unless the document settles it.
  • Better filenames:
    • ALL-CAPS letterhead names are written in title case: "Orion Glass Studio
      Inc.", not "ORION GLASS STUDIO INC.". Initialisms such as KPMG and IBM are
      kept.
    • A name never says "between" with only one party.
    • Folder names never end in a space or a dot.
    • The same party spelled two ways is named once.
  • Scans read better. OCR now keeps the lines and paragraphs of a page, so
    labelled dates and headings on a scan are found the same way as on a typed
    PDF. A clearly readable page is read in one pass instead of up to five,
    which made four of the six test scans 2.4–6× faster to read. On the
    release's 19 test documents, accuracy holds at alpha.10's level, with no
    document filed under a trap date or party.

More of what you actually file

  • New formats: Word .doc and .rtf, OpenDocument .odt/.ods/.odp,
    PowerPoint .ppt, Excel .xls, and .csv. Watched folders pick them up too,
    and Office lock files are still ignored.
  • Password-protected files are named as such ("This file is
    password-protected. Remove the password and add it again.") instead of
    failing with a generic error.
  • Outlook and email:
    • HTML-only .msg messages are read properly instead of as hex.
    • Accented subjects survive.
    • Message dates use the local date the message was sent, not UTC, which
      could be a day off.
  • Large spreadsheets whose facts sit in the first rows can be Ready rather
    than always going to review.
  • Windows-1252 text files read correctly.

Reviewing is faster

  • Drag and drop onto the window works. It silently did nothing before.
  • Approve is always on screen at the default window size, and the
    inspector no longer scrolls away in a long queue.
  • Keyboard-first review:
    • Ctrl+Enter approves.
    • Up/Down or J/K move between documents.
    • Enter edits the name.
    • Alt+K keeps the original.
    • After each decision the next undecided document is ready.
  • Undo from the toast after "Apply all ready", with progress while it runs.
  • Open and Show in folder for documents in review, ready, and filed.
    Completed items show the name each document was filed under.
  • Analyze again after you edit or sign a document.
  • The right actions for each document: for example, Retry is no longer
    offered where it cannot work.
  • Filename problems are explained inline as you type, before anything is
    sent.
  • Status says what is happening: "Reading document…", "Proposing a name…"
    or "Renaming…", instead of "Processing (0%)".

Working with your own firm and Windows

  • Your organisation's names. List your firm's names in Settings. When a
    document names your firm and someone else, the filename and the party folder
    use the other side.
  • Send to → Intern from Explorer, and Intern adds the files you send it.
  • Adding a batch skips what it cannot read. One .zip among 25
    attachments no longer rejects all 25, and you are told what was skipped.
  • No blank window at sign-in. With Run in background on, Intern starts
    quietly in the tray.
  • Startup problems are reported. If Intern cannot start, it says why
    instead of vanishing.

Reliability you do not have to think about

  • Watched folders no longer lose documents:
    • Files that arrive while Intern is off, or during an update, are processed.
    • A document you remove or cancel stays removed.
    • New files are picked up within about half a minute, once they have
      stopped changing for ten seconds.
  • Undo always works:
    • A rename that met a file open in Acrobat or Word can be retried.
    • Undo works again after an undo that could not finish, and is no longer
      refused while another document is being read.
  • Failures explain themselves. A problem with one document fails that
    document and says why. Only problems that would affect every document pause
    the queue, and the banner says what to do.
  • Corporate networks: the model download and hosted models now trust the
    certificates your organisation installs on Windows, so networks that inspect
    HTTPS traffic no longer break setup.
  • Faster launch. Intern checks the whole 1.28 GB model file once after an
    install or update, not every time it starts.
  • Cancel is clean. Cancelling a document no longer restarts the model
    repeatedly or pauses the queue.
  • Choosing a hosted model frees memory. The local model is no longer kept
    loaded.
  • Hosted billing problems pause the queue once. They no longer burn
    through your backlog one paid request at a time. A provider's Retry-After
    is honoured, up to two minutes.
  • History export includes every row, opens correctly in Excel, and cannot
    carry spreadsheet formulas.
  • Logs for support. Model and parser logs are kept under
    %LOCALAPPDATA%\com.intern.app\logs. They are designed never to contain
    document text.

Privacy you can check

  • The automatic update check can be switched off in Settings. The manual
    button always works.
  • The download page now lists every request Intern can make. These are
    the one-off model download, the update check, a hosted model if you choose
    one, and Microsoft sign-in and Graph only in builds provisioned for
    SharePoint.

Download, model, and update details

Supported target: Windows 10 or 11, x86-64, using the per-user NSIS
installer Intern_0.1.0-alpha.11_x64-setup.exe. It does not require
administrator rights. The installer contains the local parser and runtime but
not the 1.28 GB local text model. On first run, Intern downloads that pinned
model only after you ask it to, or lets you choose an existing verified copy.

With the local model (the default), document text, OCR output, and prompts
stay on the machine. A hosted model, if you turn one on, receives the distilled
text of each document. This build makes no Microsoft connection at all.

The client installs only an updater payload whose detached Minisign signature
verifies against the public key compiled into the application (key ID
23576C5DEB2D7F57). Before creating release evidence, the release workflow
independently verifies:

  • the exact installer;
  • its detached signature;
  • the URL, version, and signature recorded in latest.json.

SHA256SUMS.txt covers every distributable release file exactly once. It
leaves out itself and release-evidence-manifest.json, to avoid a checksum
cycle. The evidence manifest hashes the checksum file. It also binds:

  • the installer and updater manifest;
  • the runtime inventory and notices;
  • the SBOMs;
  • the smoke, evaluation, and fidelity evidence;
  • the logs.

Verify the installer provenance as well:

gh attestation verify Intern_0.1.0-alpha.11_x64-setup.exe --repo z-brenner/intern \
  --signer-workflow z-brenner/intern/.github/workflows/release.yml

The installer is not Authenticode signed: this project has no Windows
code-signing certificate. Windows SmartScreen may warn about an unrecognized
app even when the updater signature and GitHub provenance check pass. PCs with
Smart App Control in enforcement mode block it. Treat the warning seriously,
verify the checksum and provenance, then use More info → Run anyway
only if you trust the release.