Repository navigation
Fix malformed math allocation and footnote ownership recovery - #625
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unclosed math delimiters in free translation could consume a later formula across paragraphs, leaving allocation and XML fill with incompatible targets. Shared lexical scanning now preserves complete TeX formulas, including multiline matrices, row spacing and nested text math, while recovering complete inner formulas from malformed outer delimiters. Allocation feedback identifies missing identities and available targets, and clarifies whole-expression bindings without changing the artist response.
Footnote refinement now decides body/note ownership independently of printed paragraph boundaries. Model input includes raw measured line geometry, and the response describes ownership before paragraph decisions; program validation still only sees the refined current page. The private repair/cache protocol is updated; PCEX persisted semantics are unchanged.
Accepted empty translations retain their markup without restoring source prose. Anchored assets recognize canonical-validated text changes while preserving slot identities, tags, attributes and source formulas. Configured failure logs now retain source and translated asset XML when final structural acceptance fails.
Adds the complete DeepSeek-only paid regression entry point, aggregating the existing 14 groups without changing gold or acceptance gates:
The public entry points propagate fill=12 to allocation and XML fill, independently of analysis budgets and library defaults. Translation remains unrestricted, cross-chapter grouping remains bounded, and no neighbour semantic gate is introduced.
Validation on final head 1a737a9:
These are successful regression runs, not a statistical reliability guarantee. The earlier failed asset run did not retain its final DOM, so the deterministic empty-asset regression is not claimed to reconstruct that exact historical response. No customer content, credentials, full logs or generated artifacts are committed.
Related to PR #624, #623 and #622; background incidents oomol/pdf-craft-service#310, oomol/pdf-craft-service#313 and oomol/pdf-craft-service#314. Implements VGE issue 988. No additional GitHub issue is automatically closed.