v3.2.0
This release turns the dictionary into a full study hub (kanji stroke-order animations,
radical search, English lookup, pronunciation audio) and makes Mirumoji installable as
an app on every device via a one-time certificate install
Breaking Changes
REST API→ The dictionary lookup response was restructured to carry the richer
data below (senses with multiple glosses and readable tags, examples with translations,
furigana, fuller kanji profiles). Clients of/dict/queryand/dict/analyzeneed to
adopt the new shape
Added
-
Frontend→ TheDictionarypage is now a study hub. One search bar covers
Japanese words, wildcard patterns, English meanings, and finding kanji by their
radicals (matching all or any of them), a breadcrumb trail connects every view, and
the landing page offers your recent lookups plus kanji and words to explore -
Frontend→ Kanji show animated stroke-order diagrams that draw themselves
(with replay, step, and speed controls on the kanji page), their radical components,
pronunciation clips, words that use the kanji, and example sentences -
Frontend→ Word entries show accurate furigana above the headword, senses with
plain-language grammar tags instead of dictionary codes, common-word and JLPT badges,
antonym and see-also links, and example sentences with English translations -
Frontend→ The word pop-up in the player was reorganized into collapsible
sections (Entry, Names, Kanji, Examples, Grammar) with playable stroke animations,
grammar terms that explain themselves on hover, and a link into the Dictionary
Changed
-
Server→ Dictionary lookups run onkotobase 0.4.1and use the sentence context
of a clicked word (its reading and part of speech) to rank the right entry first, so
words that share a written form resolve to the reading you actually clicked -
Docker Images→ The server images now bake the pronunciation audio pack
alongside the dictionary database
Fixed
PWA→ Mirumoji can be installed as an app (with offline interface caching) on
phones and other devices. The server now runs a persistent local certificate
authority, and installing its certificate once per device (downloadable from the
running app, see the new docs guide) makes the connection fully trusted. The app couldn't
be installed before because browsers require a fully trusted certificate for service
worker registration
Details
Dictionary Backend
Kotobase 0.4 is a rewrite of the package exposing Pydantic v2
DTOs with substantially more data, which the server and frontend now make available
New Data
View All Attributions At The Third-Party Notice Section
- Furigana Segmentation →
JmdictFurigana - Example Sentence Translations →
Tatoeba - Radical Decomposition →
KRADFILE / RADKFILE - Stroke-Order SVGs →
KanjiVG - Pronunciation Audio →
Kanji Alive - Full
JMDictTag Extraction
Endpoints
The server flattens kotobase's nested DTOs once, expanding tag codes server-side so that clients never handle raw JMdict codes. The local kotobase type stubs were deleted now that the package ships py.typed. The following endpoints were added to the dict/ router
kanji profilestroke-order SVGaudio listing + clip streamingwords-with-kanjikanji example sentencesEnglish reverse lookupcross-reference resolutionradical inventoryfind-kanji-by-radicals
Relevance Ranking
/dict/query accepts optional reading and pos hints from tokenization, and /dict/analyze supplies them per token.
Entries are re-ranked by a stable lexicographic key (list.sort(key=rank)) based on the following priority order
reading matchdated-entry demotion(senses all tagged arch/obs/dated)primary-form match(headword or first reading)UniDic to JMdict POS-family matchusually-kana preference for kana queriesform-level common flagentry common flagsense countpriority-list membershipnf frequency band
This resolves the classic homophone cases without extra queries
Frontend Study Hub
-
The Dictionary page is now a routed hub (
/dictionary,/word/:term,
/kanji/:char,/radicals) with one integrated search control (Japanese /
English / radicals modes), a navigation-state breadcrumb trail, and a landing
page offering recent lookups (localStorage) and explore starters -
Kanji draw themselves stroke by stroke from sanitized inline
KanjiVGSVGs (replay / step
/ speed controls, reduced-motion aware, scalable glyph fallback) -
The in-player
WordDialogwas reorganized into collapsible sections with furigana
ruby headwords, readable tags, translation tooltips on examples, grammar-term
tooltips, playable stroke diagrams, and external links into the hub -
Word lookups reuse the sentence tokenization so the clicked word's in-context
reading and POS pick the right entry
Installable PWA
-
The frontend container now runs a persistent local
CA(newcertsvolume)
that signs a short-lived leaf for the LAN IP -
Installing the CA once per device (served at
/mirumoji-ca.crt, also over plain HTTP) makes the origin
fully trusted, so the service worker registers and the app becomes
installable with offline interface caching -
The launcher prints the install URL and a docs guide covers per-platform installs and reverse-proxy
alternatives
Other
-
FastAPI parameters migrated to the
Annotateddeclaration style, B008
lint exemption removed -
Server images bake the Kanji Alive audio pack (
kotobase db pull, ~150MB)
Breaking Change
The /dict/query and /dict/analyze response shape changed
- senses are structured (gloss lists, readable tag lists, antonyms, xrefs)
- examples are objects carrying translations
- name entries expose
name_types - kanji profiles gained fields
Clients of these endpoints must adopt the new shape. The bundled frontend already has