- V+schwa phrases now need their coda consonant to agree with the
family they join: door hinge keeps orange's R, sloth hugs no longer
rides over/shoulder. 3-vowel and full-vowel phrase runs unchanged.
- Synonyms lemmatize the query (keys -> key) and return sections:
synonyms, opposites, broader, related (antonyms, hypernyms,
satellites, derivational forms) — frequency-ranked, deduped.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mode=rhyme now returns perfect rhymes plus a "near" list; the panel
shows them as one view with dashed chips for the slant side.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Definition button is gone — every lookup shows the dictionary card
above whichever list is active (rhymes / near / synonyms).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tab renamed Dictionary, Definition is the default submode, and every
navigation (Go, double-click, chip click, card buttons) routes through
the same word + submode state.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
KET-a-mine can now rhyme from its first primary stress, not just its
dictionary-final one, so it joins meth-am-PHET-a-mine's family; multi
buckets claim biggest-first since tokens carry several anchor keys.
The lookup panel grew a fourth mode: Dictionary.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- mode=syn now served locally by NLTK WordNet (already a g2p-en dep),
sense-grouped by part of speech and frequency-ranked; Datamuse gone
- Double-clicking a word in the draft opens its definition card; the
card grew a Rhymes button for the old jump
- NLTK wordnet data baked into the Docker image and CI
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Clicking a lookup result now opens a dictionary definition card
(dictionaryapi.dev) with insertion as an explicit button
- Meter-break warnings live behind a "meter check" toolbar toggle
(persisted, off by default)
- Lines starting with #, ( or [ are annotations: never highlighted,
no scheme letter, and they don't split stanzas
- Removed stanza reordering
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The prototype's .seg (display:flex segment control) clobbered the new
highlight segments, turning every rhyme span into a full-width bar.
Highlight segments are .hseg now.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Phrases now compete in the perfect-rhyme pass anchored at their first
word's stressed vowel ("stir up" = ER AH P = "syrup"), render as
underlines while words render as fills, and can overlap in different
colors — the syrup/cup knot finally displays both schemes. Stopword-
anchored phrases attach only on exact rime identity. Segment-based
highlight renderer replaces the span-per-token one.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
When >=60% of a stanza's lines share a syllable count (+-1), outliers
get a wavy underline and the readout names the target count.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Browser-tab-style chips above the editor; docs live in localStorage
with auto-titles from the first line, deletion backup, and migration
of the single-draft era.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CMU stress markers -> stress string per line, scored against the
classical feet (iamb, trochee, anapest, dactyl, amphibrach) with
flexible monosyllables. Syllable count + best-fit meter shown in the
toolbar readout for the caret line.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>