|
| 1 | +# Issues |
| 2 | + |
| 3 | +Findings that outlived the session in which they were discovered. IDs are |
| 4 | +stable and never renumbered; fixed rows stay, with `Status: FIXED` and the |
| 5 | +evidence that closed them. |
| 6 | + |
| 7 | +Totals: 7 open, 2 fixed (9 total). |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## M-001 — Morpheus accented form keeps the `,lemma` suffix |
| 12 | +**Status: FIXED** (2026-08-05, engine `797f779` / site `1cb1771`) |
| 13 | +`parseAnalysisLine` stored `currito_,curro` as the accented form instead of |
| 14 | +`currito_`. Python reference strips it (`postags.py:434-436`). Corrupted DP |
| 15 | +alignment for every out-of-wordlist word on return visits. |
| 16 | + |
| 17 | +## M-002 — `addEntry` left a stale `entriesCache` |
| 18 | +**Status: FIXED** (2026-08-05, same commits) |
| 19 | +`ensureAnalyzed` cached the empty lookup for a missing word; the Morpheus row |
| 20 | +written immediately after was invisible to `getAccents`, which fell through to |
| 21 | +the `tag_to_endings` heuristic. Broke first visits: `currito` → `currītō`. |
| 22 | + |
| 23 | +## M-003 — Scansion feet vanish when a line number trails the line |
| 24 | +**Status: OPEN.** Reported on r/latin. Reproduced on Catullus 1: line 4 |
| 25 | +renders no metrical notation while the macronized words stay correct. |
| 26 | +Cause is display-side — `scannedFeet[lineIdx]` in `macronizer.html` (~line |
| 27 | +1150) misaligns when a trailing line-number token shifts the line index. |
| 28 | +Engine macronization is *not* affected. Not a parity bug. |
| 29 | + |
| 30 | +## M-004 — Output is not editable |
| 31 | +**Status: OPEN.** Adoption blocker per r/latin feedback: users macronize to |
| 32 | +catch typos and normalize spellings (`-īs` → `-ēs`) and cannot correct the |
| 33 | +result. Winge's original site made the output `contenteditable` in May 2017 |
| 34 | +plus per-vowel click-to-toggle. Substantial build: contenteditable + |
| 35 | +re-macronize + re-export + surviving the cycle/click handlers. |
| 36 | + |
| 37 | +## M-005 — Word popup shows no dictionary definition |
| 38 | +**Status: OPEN.** Users cannot tell *populus* (people) from *populus* (poplar), |
| 39 | +or the two *malus* lemmas, from the readings list alone. Add a dictionary link |
| 40 | +per reading — `accentedSources` already carries lemma+tag per row. |
| 41 | + |
| 42 | +## M-006 — Popup buries the useful section under debug detail |
| 43 | +**Status: OPEN.** r/latin feedback: "Possible readings" is the only part users |
| 44 | +want; the RFTagger/Morpheus detail reads as debug output. Move readings to the |
| 45 | +top, collapse the rest behind `<details>`. Also the heading is misleading — it |
| 46 | +lists *distinct macronizations*, not all morphological readings (readings that |
| 47 | +differ only in a short vowel collapse into one row). |
| 48 | + |
| 49 | +## M-007 — Individual words/lines cannot be selected or copied |
| 50 | +**Status: OPEN.** Only the bulk "copy" button works. Structural: words render |
| 51 | +via `<span class="ipa" content="…">` painted with CSS `attr(content)`, so the |
| 52 | +selectable text is empty, and the popup/cycle handlers own the click. |
| 53 | + |
| 54 | +## M-008 — `rftagger.js` ships an assertions (debug) build |
| 55 | +**Status: OPEN.** CodeRabbit finding on PR #7. `assert()` bodies, |
| 56 | +`checkStackCookie`, `runtimeDebug` and the missing/unexported symbol tables are |
| 57 | +all present, unlike the release-style `cruncher.js` beside it. Inflates the |
| 58 | +one-time download and keeps assertions on hot paths. Fix belongs in the engine |
| 59 | +repo's build, then re-sync `dist/`. |
| 60 | + |
| 61 | +## M-009 — Deployed WASM assets are untracked |
| 62 | +**Status: OPEN.** `macronizer/wasm/cruncher.*` is untracked (not ignored), so |
| 63 | +the bytes actually served have no verifiable provenance. Commit them, or record |
| 64 | +the build SHA that produced them. |
0 commit comments