Skip to content

feat: accent-aware spell check, outline-driven page map, template refresh and uninstall (0.9.0) - #24

Merged
JheisonMB merged 10 commits into
developfrom
feature/texforge-0.9.0
Aug 26, 2026
Merged

feat: accent-aware spell check, outline-driven page map, template refresh and uninstall (0.9.0)#24
JheisonMB merged 10 commits into
developfrom
feature/texforge-0.9.0

Conversation

@JheisonMB

Copy link
Copy Markdown
Collaborator

Six specs through the loop (qwen3.7-plus implementer, claude-sonnet-5 reviewer), plus three fixes found by using the result.

What the loop delivered

  • f1b1bf5 spell — LaTeX accent macros are resolved before word splitting. violaci\'on was being read as violaci + on; on a real thesis document that was 154 of 200 warnings.
  • fd08c09 install — the skills wizard gets a terminal under curl … | sh, and degrades cleanly where there is none. The guard opens /dev/tty rather than testing -t 0, because under a pipe stdin is not a terminal while /dev/tty still is.
  • c579ea8 templates — a TTL-based refresh with offline fallback, plus texforge template refresh. Downloaded templates used to be cached forever with a version field nobody read.
  • da4cca4 uninstalltexforge uninstall, plan first and ask, itemised with sizes. The personal spell dictionary is treated as the user's own writing: preserved unless --include-spell-words is passed.
  • b3f0fd2 + df6df8e pdf pages — the page → section map now comes from the PDF outline instead of matching heading text. The outline carries the section number in its destination name (subsection.2.4), so nothing is inferred from the title.

Three fixes from actually running it

273a2aa — pre-existing clippy errors from Rust 1.98's new chunks_exact_to_as_chunks lint, unrelated to any spec but fatal to a -D warnings gate. Fixed separately, which is where they belonged.

4b60835 — the accent fix left one case open: impor\-tancia still split, because \- is a discretionary hyphen, not an accent. \- and \/ are now transparent — no character, and no word break either. Measured on the same document: 53 → 51 warnings, the last two fragments gone.

6baeaf2 — the outline path attributed each page to the last section that opened it instead of the first, contradicting the rule 4947308 established. Checked against the PDF's own table of contents: page 2 opens sections 1, 1.1, 1.2, 2, 2.1, 2.2 and 2.3, and the answer is 1, not 2.3. Four of five multi-section pages were wrong. A test in the previous commit asserted the wrong behaviour — it described what the code did rather than what the command promises — and was corrected with the measured ground truth.

Measured end to end

Against a real thesis document (clasificacion-exoplanetas):

before   200 warnings, 154 of them accent fragments
after     51 warnings, 0 fragments, 0 errors

Against the committed capabilities PDF, every multi-section page now matches the document's own table of contents.

Gate green: cargo fmt --all, cargo clippy --all-targets -- -D warnings, 732 tests.

@JheisonMB
JheisonMB merged commit 2869dd2 into develop Aug 26, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant