# Inkhaven 1.3.11 — Drift depth + the world report

_Rounds out the world-consistency pillar (1.3.8 hard facts, 1.3.10 soft
drift): a deeper drift retriever and one consolidated consistency snapshot.
Full plan: [WORLD-3_PLAN.md](../PROPOSALS/WORLD-3_PLAN.md)._

## Drift reads pronouns now (and in five languages)

The 1.3.10 retriever kept only paragraphs that *named* the entity, missing
the commonest description shape — "Mara crossed the yard. **She** was taller…"
1.3.11 adds **coreference-lite**: walking each chapter, it tracks the most
recently, *unambiguously* named entity per kind and attributes a name-less,
pronoun-carrying paragraph to it. Two same-kind names clear the anchor (no
guessing); attribution never crosses a chapter — precision-favouring, with the
AI judge as the backstop.

It's **multilingual**: built-in pronoun sets ship for English, Russian,
French, German, and Spanish, keyed by the project `language` (so "Она была
выше" attributes in Russian exactly as "She was taller" does in English).
Articles and high-frequency homographs are excluded; the `mentions`
word-boundary check is Unicode-aware (so "Мара" / "José" don't mis-match
mid-word). Nothing to configure — re-run `drift scan`.

## `inkhaven world` — the consistency snapshot

```sh
inkhaven world            # the dashboard
inkhaven world --json     # CI gate
inkhaven world --deep     # refresh facts-check / facts-scan / drift / continuity first
inkhaven world --entity Mara   # zoom to one entity
```

A sectioned snapshot — a health line (`World: 2 issue(s) — 1 fact conflict ·
1 drift`), then Facts (established / internal conflicts / prose contradictions),
Drift, Continuity, Anachronisms, and Coverage. It **complements** `inkhaven
edit`: `edit` is a walkable worklist of everything; `world` is a focused
*snapshot* of the world layer, grouped by fact and entity. The same one-line
summary now banners the top of the `Ctrl+V Shift+L` story bible.

## Coverage: the dangling cast

`world` (and `inkhaven edit`, as an `info` `coverage` finding) flags entities
defined in the Characters / Places / Artefacts books but **never named in the
prose** — a character you sketched but never wrote in. The `edit` finding jumps
to the entity's bible definition. Silent on an unwritten draft.

## Smaller niceties

- **Anachronisms, named** — `world` lists each flagged term + its chapter, not
  just a count.
- **`--entity` drilldown** — `world --entity <name>` shows one entity's drift,
  description trail, tracked attributes, and prose-named status; `drift list
  --entity <name>` scopes the retrieval preview.

## Under the hood

- Zero new dependencies. Drift depth is pure heuristics; the world report
  aggregates existing sidecars + cheap counts.
- New pure, unit-tested code: `drift::attribute_continuations` /
  `pronouns` (per-language) / `mentions` (Unicode boundary), and
  `world_report` (`issue_count` / `summary` / `undescribed_of`).
- Tests 1346 → 1354.

## Deferred

- **A TUI deep-refresh chord** — running the multi-minute AI batch from inside
  the editor hits DuckDB's single-writer lock (a subprocess can't open the DB
  the TUI holds) and would otherwise freeze the UI; the CLI `world --deep` /
  `edit --deep` (also runnable from the embedded shell) cover it. A proper
  background-thread version is a future item.

## Carryovers (still open)

- **The Whole-Book AI Editor** (general retrieve-then-reason) — the 1.4
  headline.
- PDF N-up / booklet presets; CMYK-JPEG grayscale; ePub inline images + popup
  footnotes; sixth supported language.
