Skip to content

Small version: update command, highlighted listings, strict quality gate - #27

Merged
JheisonMB merged 39 commits into
developfrom
feature/sv-update
Oct 5, 2026
Merged

JheisonMB merged 39 commits into
developfrom
feature/sv-update

Conversation

@JheisonMB

Copy link
Copy Markdown
Collaborator

Small version of texforge, ready for review. Squash-merge: the branch carries loop commits with spec scopes.

User-facing

  • texforge update: explicit, consent-first self-update with checksum verification (always asks; refuses cargo-managed installs). update --check contract: exit 0 up to date, 1 update available, 2 check failed.
  • Code listings: syntect-based syntax highlighting with a per-line frame that handles page splits; the capabilities example showcases native code blocks; listings docs.

Quality

  • Strict quality gate (file size, clippy complexity lints, cargo-deny, cargo-machete) passes; large modules split, dependencies updated.
  • Mutation testing on the whole crate in the cloud (8 shards, memory-capped): 1348 mutants, 1287 caught, 0 missed, 0 timeouts, 61 unviable. The previous run had 53 missed and 18 timeouts; the quality pass killed them with tests and bounded loops.
  • The bounded-loop rewrites in the TeX parser (for _ in 0..src.len() caps, skip_to_inline_dollar, page_breaks_from_outline, build_spell_text) are behaviour-neutral: every capped iteration consumes at least one byte or breaks. Checked on a scratch project: check (same findings), stats, outline, fmt --check, pdf pages, pdf text, pdf check produce the same output as the build before the pass.
  • Two equivalent mutants excluded in .cargo/mutants.toml, each with its proof (verified).
  • release.yml grants actions: read so the release reuses the binaries built in the PR to main.

Checked locally on the installed release build: new -t general, check, stats, outline, build (3-page PDF with sections, accents, \href, \lstinline, inline math with \$), pdf pages/info/check/text; cargo fmt/clippy/988 tests and rust-quality.sh green.

Known, pre-existing, queued (not in this PR): spell warnings report the line where a multi-line text token starts and print in a non-deterministic order; config tests can write to the real ~/.texforge/config.toml; the general template never \inputs sections/body.tex, leaves {{user.name}} raw without a configured name, and loads inputenc; dead level_counters state in the PDF outline walker.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JeZdT4Zae1BxeLEoKd6kEs

@JheisonMB
JheisonMB merged commit b3de8b6 into develop Oct 5, 2026
10 of 12 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