What's new in Lixity: numbers you can compare, evidence that survives edits
You open a report from last week and one number looks wonderful — for a chapter that is barely two paragraphs long. Or you edit a scene, and the dashboard keeps showing yesterday's chapter count. Neither is a crash; both quietly erode trust. Lixity 0.4.8 is about closing that gap: numbers you can actually compare, and research notes that survive your edits.
Small chapters no longer shout
Short texts are noisy. A three-sentence stage note can look extreme in a z-score table — not because the writing is extreme, but because three sentences are simply not much to measure. So comparisons now have a floor, and they tell you when they cannot say something useful:
- Chapters under 100 words get no z-scores, no effect sizes, no FDR marks.
- Features about sentence variety (staccato, cascade, sentence length variation) need at least five sentences.
- Showing/telling comparisons use the same 100-word floor and mark short chapters "not comparable" instead of giving them a ranking.
Where a value is withheld, the interface explains why — in all seven supported languages. If you have older reports, rebuild them once before comparing; the new numbers are honest, the old ones were optimistic.
On the same theme: sentence counting now respects blank-line boundaries. A salutation, a stage note or a sign-off stays one unit, and chapter rhythm, scene units and the corpus statistics finally agree with each other.
The dashboard notices when your manuscript changed
The local dashboard checks your manuscript when the page loads. If the file changed on disk since the last build, it rebuilds itself instead of showing yesterday's numbers with today's confidence.
Quotes that survive your edits
Research links between a source quote and a claim are stored as exact anchors — the quote, the paragraph, the line range. Editing is normal, so the review view now tells two cases apart:
-
Changed outside the quote (the quote is still there, the paragraph moved or grew): the link is marked adjusted and can be re-pinned in one step — in the review tab or with
lixity research reconcile-manuscript --accept-moved. - Changed inside the quote: the link stays in review. Lixity never re-pins it on its own, because only you can decide whether the meaning survived.
Small thing, same spirit: you can now type a plain hyphen between years (1929-1933). Lixity reads it as the range you meant.
A calmer research workspace
The research side keeps sources, dossiers, claims, decisions and evidence in one local archive. Recent polish:
- The timeline is a view, not a separate world: switch between List and Timeline right where your claims live. The decisions pane says what it is for — deliberate choices with a reason, not historical claims.
- Zotero stays a catalogue, visibly. Cards show a quiet Zotero ↗ link and a type line; tags filter the list. Capturing a source into your archive is still a deliberate click, never a background sync.
- Evidence panels keep their citations when other lists refresh — nothing you loaded gets rebuilt under your hands.
One look, everywhere
The interface had collected a decade of small decisions: ten border radii, fifteen font sizes between 0.72 and 0.84 rem, three different spinners, two kinds of tabs. That is now one small system:
- One scale for corners, text sizes and spacing — shared by the app and the documentation site.
- One control language: the workspace switch and the research tabs are the same control, badges and tags are one family, and touch devices get 44-pixel targets everywhere.
- A component layer now renders the list panels (plain vendored JavaScript, no build step). It also fixed a real annoyance: the "Loading…" placeholder no longer lingers next to the loaded list.
- A test suite now fails the build if a new one-off value sneaks in — the system cannot quietly drift back.
Logs you can actually find
Diagnostics now go through one logging setup: one line format, standard levels, and a log file that stays bounded (older entries are rotated, not deleted silently). --debug, LIXITY_DEBUG and LIXITY_LOG_LEVEL choose how much you see, and lixity service status prints the path. Request logs keep the route but never the query string, so research context and project tokens stay out of the file — and log records never contain manuscript text.
Your privacy, in plain words
Lixity runs on your computer. Nothing is uploaded, there is no account, and the browser page only runs the scripts that ship with it (that is what the strict Content Security Policy means). Loopback bind, host allow-list, payload limits and explicit non-goals are written down in the project's SECURITY.md. The statistical signals support your review; they are not a quality score, and they are not an instruction to rewrite your prose.
Try it
- Demo report — invented text, opens in your browser, no install.
- Effi Briest and Pride and Prejudice — complete analyses of public-domain novels.
- First look — from chapter comparison to the passage behind a number, in three minutes.
- For your own manuscript:
uv tool install --python 3.12 --managed-python lixity, thenlixity service start --open.
If you try it: tell me which passage surprised you — that is the feedback that shapes the next release.
Lixity home · Blog · Report a reproducible issue · Legal notice
Top comments (0)