Repository navigation
PDF import: take the warnings a patched hayro-interpret adds - #1
Merged
Merged
Conversation
vectorcraft-pdf matched hayro-interpret's two InterpreterWarning variants exhaustively. A workspace that links PdfCraft beside VectorCraft patches in PdfCraft's hardened hayro-interpret for both ([patch] reaches every crate), and that copy now adds ContentTruncated: page content cut at its safety budget (storytold/pdfcraft#669, storytold/pdfcraft#797). So vectorcraft-pdf stopped compiling there (OctoSense, moving its pdfcraft pin to upstream main). A wildcard arm now reports any further warning as part of a page skipped; against crates.io's hayro-interpret the arm is unreachable and allowed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🤖 AI Code ReviewClaude CLI exited with code 1: ✅ No significant issues found. Tokens used: 0 | Powered by r9s.ai |
Owner
Author
|
Merged on the local evidence in the description: the steps of |
ymote
added a commit
to OctoSense-org/OctoSense
that referenced
this pull request
Oct 11, 2026
Moves the pdfcraft engine and its patched PDF stack from 615ff308 to 51f09eea: ymote/pdfcraft's merge of storytold/pdfcraft main (f22b5d42, 318 commits, ymote/pdfcraft#2) plus the fork's 4 MiB cap on the total of decoded page-label prefixes (ymote/pdfcraft#3), which upstream's code had dropped. All ten pdfcraft pins in the root Cargo.toml move, #501's pdfcraft-edit included. - The lock pins hayro-jbig2 to the engine's hardened copy. Its patch had been unused: crates.io's 0.3.1 outranked the vendored 0.3.0, so JBIG2 images were decoded without the engine's bounds on bitmap and dictionary pixels and on decoding steps that never advance. That also drops second copies of fearless_simd and hayro-ccitt. tests/skill.rs now fails if any of the five patches goes unused or isn't at the engine's revision. - vectorcraft moves to 2cd3a1ca (ymote/vectorcraft#1), whose PDF import takes the warning the engine's hayro-interpret adds (ContentTruncated). The patch reaches vectorcraft-pdf too, which otherwise stops compiling. Only the vector skill's revision lines change. - The pdf skill is regenerated: twelve new engine commands, each classified from its implementation in skill/safety-rules.json, and fill_sign_add is file now (its new `path` reads an image signature). ADR 0013's count of generated ids follows (4,569). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote
added a commit
to OctoSense-org/OctoSense
that referenced
this pull request
Oct 11, 2026
Moves the pdfcraft engine and its patched PDF stack from 615ff308 to 51f09eea: ymote/pdfcraft's merge of storytold/pdfcraft main (f22b5d42, 318 commits, ymote/pdfcraft#2) plus the fork's 4 MiB cap on the total of decoded page-label prefixes (ymote/pdfcraft#3), which upstream's code had dropped. All ten pdfcraft pins in the root Cargo.toml move, #501's pdfcraft-edit included. - The lock pins hayro-jbig2 to the engine's hardened copy. Its patch had been unused: crates.io's 0.3.1 outranked the vendored 0.3.0, so JBIG2 images were decoded without the engine's bounds on bitmap and dictionary pixels and on decoding steps that never advance. That also drops second copies of fearless_simd and hayro-ccitt. tests/skill.rs now fails if any of the five patches goes unused or isn't at the engine's revision. - vectorcraft moves to 2cd3a1ca (ymote/vectorcraft#1), whose PDF import takes the warning the engine's hayro-interpret adds (ContentTruncated). The patch reaches vectorcraft-pdf too, which otherwise stops compiling. Only the vector skill's revision lines change. - The pdf skill is regenerated: twelve new engine commands, each classified from its implementation in skill/safety-rules.json, and fill_sign_add is file now (its new `path` reads an image signature). ADR 0013's count of generated ids follows (4,569). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
OctoSense links VectorCraft beside PdfCraft. A consumer workspace doesn't get a dependency's
[patch]sections, so OctoSense's own workspace patches in PdfCraft's hardened PDF stack:hayro,hayro-interpret,hayro-syntax,hayro-jbig2andlopdf. That patch reaches every crate in the workspace,vectorcraft-pdfincluded.Upstream PdfCraft's
hayro-interpretnow has a thirdInterpreterWarning,ContentTruncated: page content cut at its safety budget (storytold/pdfcraft#669, storytold/pdfcraft#797).vectorcraft-pdf's warning sink matched crates.io's two variants exhaustively, so it stopped compiling there (E0004) when OctoSense moved its pdfcraft pin to upstream main (OctoSense-org/OctoSense#502).The change
crates/pdf/src/import.rsgets a wildcard arm. It reports any further warning as "part of a page's content could not be read and was skipped".hayro-interpret0.7.0, which this workspace uses, the arm is unreachable.#[allow(unreachable_patterns)]keepsclippy -D warningsclean.No
ROADMAP.mdline: this is a compatibility fix with no milestone change, and it keeps the next upstream merge clean.Checks run on 0daf404
On a Linux x86_64 host with Rust 1.99.0, in a fresh clone of this branch, I ran the steps of
cargo xtask ci(xtask/src/main.rscmd_ci) one at a time. The host has no wasm32 target, sowasmran on the Mac.cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspacecargo xtask assetscargo xtask brandscargo xtask layerscargo xtask wasm(macOS, Rust 1.97.1)In OctoSense, with PdfCraft's
hayro-interpretpatched in:vectorcraft-pdfcompiles;cargo test --locked -p octosense-vector-servicepasses;host_toolssuite passes withcraft-engines.Not merged: it waits for the maintainer. The fork has no GitHub Actions.