diff --git a/CHANGELOG.md b/CHANGELOG.md
index bc0c85f..916203a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,13 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi
---
+## [1.12.93] — 2026-07-04
+
+### Added
+- **Deterministic Unknown-resolution pass during casting** — measured on a full book, the LLM left ~44% of dialogue "Unknown" even with all deduction rules in its prompt, so the two most mechanical rules are now applied in code after each passage, where they can't be ignored: the colon rule (narration ending in ":" names the next quote's speaker — with a non-agent-noun stoplist so "rief in die Runde:" resolves to the Ork, not "Runde"), post-quote inquits ("fragte Uriens leise." after a quote), and the "Der Krieger, der gesprochen hatte" pattern. Only fills segments the LLM left Unknown; never overrides an actual attribution. Verified against the exact failure cases from the reported screenshots.
+
+---
+
## [1.12.92] — 2026-07-04
### Fixed
diff --git a/VERSION b/VERSION
index ebc03cf..0fec8f2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.12.92
+1.12.93
diff --git a/static/index.html b/static/index.html
index f218b7f..28dd8ca 100644
--- a/static/index.html
+++ b/static/index.html
@@ -10,7 +10,7 @@
-
+
@@ -27,7 +27,7 @@
-
+
@@ -365,7 +365,7 @@ window.toggleNavTree = function(treeId, chevronId) {
-
+