chore(deps): bump printpdf from 0.7.0 to 0.9.1#10
Conversation
Bumps [printpdf](https://github.com/fschutt/printpdf) from 0.7.0 to 0.9.1. - [Release notes](https://github.com/fschutt/printpdf/releases) - [Changelog](https://github.com/fschutt/printpdf/blob/master/CHANGELOG.md) - [Commits](https://github.com/fschutt/printpdf/commits) --- updated-dependencies: - dependency-name: printpdf dependency-version: 0.9.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
Addresses 6 of the 8 deferred CODE_REVIEW_REPORT.md findings (#5, #7, #8, #10, #13, #14). Skipped #12 (SharingError refactor — pure churn, no functional/security impact) and #15 (constant-time pairing compare — the report itself says timing attacks are impractical for a 6-digit LAN-only code; adding a 'subtle' dep is YAGNI). Fixed: - #5 HTML sanitizer: loop the regex until stable so nested/leftover tags are stripped, not just the first pass. (A '>' inside a quoted attribute still can't be handled by a regex — that needs ammonia — but the loop covers the realistic user-paste case.) - #10 strip_html: decode the five common HTML entities (& < > " '/') after stripping, so stripped text rendered elsewhere doesn't carry encoded markup. - #7 Auth proxy: add a 30-min overall timeout to both reqwest clients so a hung upstream can't tie up a proxy connection forever. - #8 Vocab regex: move the per-call regex cache to a process-wide LazyLock<Mutex<HashMap>> so a stable vocabulary compiles once instead of 100+ regexes on every transcription. Bounded to 1024 entries. - #13 machine_id: remove the redundant nested rfind parser, keep only the simpler split('"') approach. - #14 allow_public: was a real bug, not just a doc gap. The toggle in Settings only saved the setting — it didn't call reinitProviders, so the new policy wasn't applied until something else triggered a reinit. Added the reinitProviders call + a doc comment on OllamaProvider::new explaining the captured-at-construction semantics.
|
Closing: printpdf 0.7→0.9 is a major API change across 2 major versions. The pdf.rs module uses 'use printpdf::*' glob import, meaning every renamed/removed API will be a compile error. PDF export is a stable feature that works; no benefit to breaking it. Revisit if a needed PDF feature appears. |
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
… removal Fixes all 7 privacy/security findings from the application review, plus 10 review bugs found in the initial implementation. Privacy fixes: - P1: Audio recordings now encrypted at rest (AES-256-GCM, key derived from the keychain DB key via SHA-256). New medical-security::file_crypto module. WAVs encrypt on capture-finalize; decrypt transparently on transcription load and audio-levels check. Atomic temp+rename prevents data loss on crash. - P2: Silent plaintext-DB fallback eliminated. The 4 keychain/encryption- failure arms now return InitError::EncryptionUnavailable (surfaced as a recovery screen) instead of silently opening unencrypted. Fresh-install with no data still proceeds plaintext (nothing to protect yet). - P3: Orphaned transcripts now encrypted (.enc) via the same file_crypto helper. Falls back to .txt only if keychain unavailable. - P4: Removed dead ElevenLabs cloud TTS provider (AGENTS.md hosted-AI violation). Default TTS is now "local"; settings migration rewrites stale "elevenlabs" configs via a positive SUPPORTED_TTS_PROVIDERS list. - P5: Webview CSP enabled (was null). default-src 'self', inline styles allowed (Svelte), IPC + asset protocols permitted, no external origins. - P6: PHI-adjacent names redacted from logs. RAG ingestion logs entity_type + name_len; template/audience logs use name_len instead of raw names. - P7: save_recording_field now enforces per-field 500K char cap. Guard test ensures every EDITABLE_FIELDS entry has an explicit cap. Review-bug fixes (found in self-review): - Bug #1: unwrap_or_default() could destroy recordings on I/O failure -> new encrypt_file_in_place propagates read errors + is atomic. - Bug #2: compute_audio_levels didn't decrypt -> shared open_recording_wav helper now used by both load + audio-levels paths. - Bug #3: import_audio_file never encrypted -> now uses encrypt_file_in_place. - Bug #4: encrypt_file non-atomic -> temp+fsync+rename. - Bug #10: CSP missing asset: in connect-src -> added. - Bug #5: Doc said HKDF but impl is plain SHA-256 -> corrected. - Bug #8: TTS migration != "none" was dead -> positive allowlist. - Bug #9: max_chars_for_field _ fallback -> guard test added. - Bug #11: decrypt_bytes untested on truncated/malformed input -> tests added. Verified: cargo test --workspace --lib (14 crates), clippy --all-targets -D warnings (0), fmt clean, vitest (355), svelte-check (0 errors).
Bumps printpdf from 0.7.0 to 0.9.1.
Commits
You can trigger a rebase of this PR by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)