# Lixity v0.7.4

Released 22 October 2026. This release brings the published package and public demo
onto the same interface revision, clarifies passage research and addresses
feedback from everyday scene and style review.

## Share a reading website

**Project actions → Reading website** downloads a ZIP reading copy of the
selected project. The same assembler is available through `lixity export-site`
and the Python API in `lixity.site_export`. Open the unzipped `index.html`
directly or place the folder on static hosting. The recipient needs no Lixity
installation or running service.

Choose one of three formats:

- **Review workspace:** manuscript and analysis, with optional internal Research
  history and cited excerpts.
- **Novel and companion:** manuscript reading text and author-selected dossier
  sections, images, diagrams, citations and offline geography.
- **Companion only:** the selected background material without novel text or
  internal analysis.

Curated formats use named `site_publications` profiles in the selected project's
settings, with current or explicitly pinned dossier versions and chapter release
gates. A reader explicitly confirms progress; preview does not advance it.
An export chapter limit physically excludes later entries and their assets;
novel mode also truncates the manuscript. Local progress alone only hides bytes
already included in the copy. Original sources require a separate choice for
every export. Internal claims, decisions, history and reverse associations are
not automatically published as companion content.

The versioned manifest records mode, scope, source identities and file hashes.
Source archive schemas remain unchanged. Exports have no editing, import, project
switch or write API, and no implicit analytics or map-tile requests. This is a
copy, not authenticated hosting or a backup; review the content and redistribution
rights before sharing. The public fictional demo now uses the same production
export path and read-only UI profile.

## Read a passage and follow its research

The paragraph menu now has one **Explore passage** entry. Its right context
offers **Explain measurement** and **Research for this passage**. Measurement
cards distinguish the counted sentence from the paragraph value and chapter
comparison. Hover, touch and keyboard inspection keep their existing exact
source checks. Analysis and highlight preferences remain independent.
Both visual layers remain available together. **Counted text** explains the
underline/tint and **Paragraph comparison** explains blue/orange backgrounds
relative to the chapter. The active metric's color explanation stays visible;
unavailable exact evidence is reported rather than silently painted.

Research titles open the current entry. An explicit **Linked version** button
opens the earlier version retained by a quotation; viewing an entry never
changes that association. **Versions** loads history on demand without changing
the displayed record or discarding an editing draft. Repeated quotations of one
claim share a compact card; current dossier decisions have a separate count.
Shorter version labels apply across the seven UI languages and human CLI output.
Technical IDs and provenance remain available.
Human section-diff previews can report the actual heading subtree being replaced;
the guide explains H1 scope and how several edits in one exported draft become
one guarded dossier revision.

Settings popups fit short screens and enlarged text. Help no longer appears
when content moves beneath a stationary pointer, and an old hover dismissal
cannot close a later touch explanation.
An unchanged Review refresh also preserves the entry button, so closing its
viewer returns keyboard focus correctly even when a delayed read finishes.

## Review scenes, echoes and register targets

Stale scene assignments still stop analysis rather than silently moving a
register. Their error now identifies the chapter, measured scene count and
recognized divider count, with choices to review the text/configuration or
explicitly declare an unwritten planned scene.

The existing local phrase echoes are visible in human `lixity motifs` output
and the analysis overview. Local counts remain distinct from whole-book phrase
counts. Bounds refer to chapter-prose words, not source lines; the default
window is 300 words. Chapter navigation does not pretend those bounds are exact
text anchors.

Configured motif patterns now agree across chapter measurements, the live
overview, the motif panel in `build` dashboards, CLI and Python reports.
Other optional build panels keep their existing scope. Canonical `motif_regexes`
and compatible legacy `motifs` combine distinct names and reject conflicting duplicate names.
Explicit patterns replace configuration; empty configured patterns count zero.

`research dossier show ID --export-edit PATH` now works like the direct ID
form. Export still requires a new file outside archive storage; incompatible
modes and existing destinations remain rejected.

Human Research lists now show complete IDs. Dossier lists can filter exact tags;
`--section --format text` now returns the selected section body, including nested
content and the requested saved version. `research compare` inherits the selected
root's project language when omitted; explicit `--language` wins, and a missing
root setting falls back to English. The Python API retains its English default. See the
[research command guide](../research/USAGE.md) for selectors and failure behavior.

Chapter register controls and target rows show their shared feature units,
including per-thousand densities and HD-D's 0–1 scale. Scene targets and chapter
profiles remain separate author settings; display filters do not recalculate
the whole-book reference. Human style passports correctly label robust
deviations as **z*** rather than ordinary standard deviations. Analysis
measurements, their JSON contracts and archive formats are unchanged.

## Everyday documents and installation checks

`lixity pdf expose.md --layout document -o expose.pdf` adds a neutral A4 layout
through the shared composer and native PDF selector. It retains authored titles,
sections and supported inline text without adding analysis, title pages, bylines,
headers/footers, line numbers or correction margins. Entered title/author remain
PDF metadata only. The demo offers [five PDF copies](../guides/research-pdf.html#manuscript-export)
of the same manuscript. EPUB, DOCX, custom trim sizes and PDF/UA/PDF/X conformance
are not added. PDF/dashboard CLI exports now reject the source and symbolic or
hard-link aliases, including a final guard before atomic replacement.

`lixity doctor --json` reports imported/distribution/service versions,
module/interpreter locations, contract versions and explicit issues under
`lixity-doctor/1`. It does not open manuscripts, repair an installation or
restart a service. A healthy stopped service is valid; mismatches or unavailable
metadata/status exit 1. Out-of-range numeric ports or invalid `LIXITY_PORT`
produce the versioned error envelope; non-integer explicit `--port` remains a
normal usage error (exit 2).

**Automation compatibility:** `service status --json` now uses
`lixity-service-status/1`, replacing its older lifecycle envelope. `ok` means a
successful inspection; known stopped, starting and unmanaged-port busy states
exit 0, and `running` is true only for a ready owned instance. Unknown state
remains `ok: false`, `running: null`, exit 1. Log paths and raw errors are omitted.
Human stopped status still exits 1; `start`/`restart`/`stop` JSON remains
`lixity-service-local/1`. See the [command reference](../USAGE.md#lixity-service).

## A richer example and matching installation

The six-chapter fictional manuscript is about 15% longer, with richer dossiers,
conflicting citations, author decisions, version history, causal links and five
exact manuscript associations. Read-only demo controls reuse the product UI;
imports and writes still require the local application. README, guides,
screenshots and walkthroughs follow this release.

Stop the managed service before replacing an installation, install v0.7.4
using the [installation guide](../INSTALLATION.md), then restart it and reload
browser tabs. Inspect `lixity doctor`, `lixity --version` and `lixity service status`; an
existing running service is not updated by a source checkout or package download.
No archive migration is required.
Windows archive exports now sync their candidate through a writable descriptor.
Service inspection compares path and descriptor timestamps within their own
clock semantics; identity, ownership and genuine in-place-change checks remain.

## Local verification and release publishing

The local release gate checks source/tag identity and release notes before heavy checks, runs the
full Python suite once, verifies generated documentation and builds/smoke-installs
the package. Development checks report slow tests and use checkout-local caches.
Browser change selection rejects failed Git comparisons and conservatively runs
all suites for shared helpers or unknown suite paths. Heavy GitHub checks remain
manual fallbacks; the tag workflow builds and attests the release, publishes the
package and deploys Pages from that same tag.
