Commit Graph
1961 Commits
Author SHA1 Message Date
Naseq c37b150950 PPTX: parse each tags part once, cap copied tags, and bound cache (#1164)
- Parse each tags part once per import and cache in `Imp::tags_by_part`
- Cap total copied tags into the model at `MAX_TAG_BYTES` (64 MiB), charging each pair a fixed size_of::<(String, String)>() in addition to text
- Bound the cache: once `tags_capped` is set, return early before parsing or caching any subsequent part
- Tests covering deduplicated part copies, empty-tag pair budgets, and verifying unread tag parts are not parsed or cached after the budget is reached
2026-11-01 11:30:12 +04:30
MarekSpodBiedry 74d7b844fe Merge origin/main into issue-1153 2026-11-01 07:41:05 +01:00
MadhasoekiandCopilot f3d8ba85a6 tests(fonts): add specific tests requested by reviewer for monospace resolution
Verify Consolas, Courier New, Fira Code, Monotype Corsiva, Monoton,
and ensure proportional family substitutes remain unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-01 11:35:53 +07:00
Dylan M. Taylor e690829543 ci: grant packages write permission to release workflow 2026-10-31 23:43:08 -04:00
MadhasoekiandCopilot c0468b59cd Fonts: classify Cascadia Code PL as monospace (#1598)
Add Cascadia Code PL and Cascadia Mono PL to the monospace family
matching list, and add regression tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-01 10:31:17 +07:00
NetterSilverandClaude Haiku 5.5 5d27461fa6 Keep Xfrm::rot_norm within 0..360 for tiny negative rotations
Found while testing crates/geom/src/lib.rs:155-158

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 02:55:58 +01:00
NetterSilverandClaude Haiku 5.5 773133ec42 Apply alphaMod and alphaOff in ColorRef::alpha
Found while testing crates/model/src/style.rs:59-63

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 00:52:04 +00:00
MadhasoekiandCopilot 8ec4f29059 Fonts: refine monospace heuristic and preserve office_twin order (#1598)
- Avoid false-positive monospace match on 'code' in split_whitespace for
  proportional families like Code Pro.
- Check office_twin before is_monospace_family in document_face so alias
  families like Courier New CE resolve to Courier New when installed.
- Add negative tests for Code Pro and test Courier New CE mapping.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-01 07:19:41 +07:00
NetterSilverandClaude Haiku 5.5 87a10fc8e2 Keep combining marks inside spell-check words
Found while testing crates/engine/src/spell.rs:693 (paragraph_words, the `inside` closure)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 00:19:15 +01:00
NetterSilverandClaude Haiku 5.5 3fb6c43136 Lowercase word-final Σ as ς in title and sentence case
Found while testing crates/model/src/edit.rs:470-497 (change_case_parts, title/sentence branch)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 00:08:51 +01:00
Dylan M. Taylor 82573331a8 packaging(flatpak): add OCI image build and GHCR publishing helper (#1625) 2026-10-31 18:52:58 -04:00
Simon Koch-Sultan d990678b32 render: keep even-odd holes open in shadow, glow and reflection silhouettes
effects_below merged all subpaths into one silhouette and filled it
with the NonZero rule, discarding each subpath's even_odd flag, so the
holes of donut, frame and similar preset shapes filled in under outer
shadows, glows and reflections. Fill each participating subpath under
its own fill rule at the three effect fill sites, mirroring
fill_geometry; the glow stroke keeps the merged silhouette.

Fixes #1596. The picture-content shadow clip path is unchanged
(that is #1597's territory).
2026-10-31 17:18:44 -04:00
Elliot Graham cd19752bb5 FIX-1621: let no-fill interiors pass clicks to underlying objects 2026-10-31 19:38:08 +00:00
MadhasoekiandCopilot 2ed2ce18d8 Fonts: unavailable monospace fonts fall back to a monospace substitute (#1598)
When a document uses a monospace font that is not installed on the
system (such as Cousine, Source Code Pro, JetBrains Mono, Consolas, or
Cascadia Code), document_face previously fell back to the generic
proportional MISSING_FONT_FAMILY (Calibri), causing code snippets and
columns to misalign.

Add is_monospace_family to recognize monospace families, ensure
substitutes returns open monospace replacements (Liberation Mono,
Courier New, Menlo, Courier, DejaVu Sans Mono), recognize Cousine as
a metric twin of Courier New, and keep monospace families on their
substitute chain in document_face.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-31 22:25:50 +07:00
DominicTheD3v c5ac1dd44b docs: add missing docstrings 2026-10-31 07:52:55 +00:00
DominicTheD3v 84ac51a439 fix: addressing more issues 2026-10-31 07:04:09 +00:00
NetterSilverandClaude Haiku 5.5 c3e9bd07e5 Reject invalid slide index in design.background
Found while testing crates/engine/src/cmd/design/slide_background.rs:65 (index via usize_param); write_background at :175

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:38:17 +01:00
Dylan M. Taylor a3fbf02952 Merge pull request #1592 from aiongg/docs-tidy
docs: tidy agent, contributor and roadmap docs
2026-10-31 01:06:52 -04:00
Dylan Taylor 92bf7fc67d fix(xtask): update SHARED_REV for craft-libs update 2026-10-31 01:05:27 -04:00
Dylan M. Taylor 0ed4b394ac Merge pull request #1599 from aiongg/update-result-dialog
Updates: shared check-result dialog from craft-update
2026-10-31 01:05:19 -04:00
dotCooCoo e747bff425 Shape Fill: the gradient help lists every kind and key the command takes
The shape.fill params doc listed only linear and radial gradients with
stops, angle and kind. The command also takes the rectangular and path
kinds, focus and rotateWithShape. The doc now names them, and a test
checks the doc's gradient keys and kinds against what the command reads.
2026-10-30 22:02:08 -07:00
Brandon Thomas f7a7fd7f5f Merge pull request #1584
Animations: animation.add and animation.set take the points of a custom motion path
2026-10-31 00:59:38 -04:00
Brandon ThomasandClaude Opus 5.5 800ffeaa59 Motion paths: check raw path strings without deckcraft-anim, which the engine only has as a dev-dependency
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:59:38 -04:00
Brandon Thomas d080a23dc0 Merge pull request #1584
Animations: animation.add and animation.set take the points of a custom motion path
2026-10-31 00:56:36 -04:00
Brandon Thomas 243c1a269f Merge pull request #1582
Ogg: bound the work and the warnings of damage recovery
2026-10-31 00:56:35 -04:00
Brandon Thomas 06a1ca4672 Merge pull request #1521
Slideshow click targets follow animated shapes
2026-10-31 00:56:35 -04:00
Brandon Thomas 40728b5362 Merge pull request #1591
Preserve gradient flip mode in PPTX

# Conflicts:
#	crates/pptx/src/read/dml.rs
#	crates/pptx/src/write/dml.rs
#	crates/pptx/tests/it/roundtrip.rs
2026-10-31 00:56:34 -04:00
Brandon ThomasandClaude Opus 5.5 d2504e5f8b Motion paths: a raw path string must parse to at least two finite points
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:56:17 -04:00
Brandon Thomas d92874f541 Merge pull request #1574
Add read-only slide action inspection
2026-10-31 00:56:17 -04:00
Brandon ThomasandClaude Opus 5.5 6a34f13808 Ogg: the budget-spent warning goes last, after the capped warnings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:54:52 -04:00
Brandon ThomasandClaude Opus 5.5 6058fc7882 gaps.md: drop the stray 10-28 click-target row from among the 10-13 rows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:54:38 -04:00
Brandon ThomasandClaude Opus 5.5 04b0958bee Gradient flip: drop the blank lines before the new flip fields
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:54:16 -04:00
Brandon ThomasandClaude Opus 5.5 acf054852c slide.actions refuses a bad index instead of using the selected slide
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:53:14 -04:00
Brandon Thomas 861879f8ee Merge pull request #1519
Use private directories for print previews
2026-10-31 00:51:49 -04:00
Brandon Thomas e626625d40 Merge pull request #1514
Reject picture slices in codec configuration records
2026-10-31 00:51:48 -04:00
Brandon Thomas 4a0f48a04c Merge pull request #1590
Preserve inset line alignment in PPTX

# Conflicts:
#	crates/model/src/style.rs
#	crates/pptx/tests/it/roundtrip.rs
2026-10-31 00:51:48 -04:00
Brandon Thomas 8f6e1b420a Merge pull request #1589
Preserve bullet Follow Text settings

# Conflicts:
#	crates/pptx/tests/it/roundtrip.rs
2026-10-31 00:51:37 -04:00
Brandon Thomas c0db6ebeba Merge pull request #1585
Preserve explicit line miter limits
2026-10-31 00:51:37 -04:00
Brandon Thomas a667e13a03 Merge pull request #1594
Parse uppercase exponent in custom geometry path numbers
2026-10-31 00:51:36 -04:00
Brandon ThomasandClaude Opus 5.5 3bf35c801f Custom geometry: 'E' is an exponent only when digits follow, so 'M 0 0E' keeps its end command
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:51:36 -04:00
Brandon Thomas 47eb6732fa Merge pull request #1581
contributors: add names for marshiyar
2026-10-31 00:49:38 -04:00
Brandon Thomas 8a2eccc863 Merge pull request #1583
MCP: insert_chart takes x, y, w and h
2026-10-31 00:49:38 -04:00
Brandon Thomas fb05eaa30f Merge pull request #1490
Make layout/master placeholder formatting reach slides

# Conflicts:
#	crates/engine/src/tests.rs
2026-10-31 00:49:37 -04:00
Brandon Thomas 231a52438c Merge pull request #1587
Reject invalid colour in format.highlight instead of clearing it
2026-10-31 00:49:36 -04:00
Brandon Thomas a00b7e8a51 Merge pull request #1577
Reject invalid index in transition commands instead of using selection
2026-10-31 00:49:36 -04:00
aiongg 9678ed7d7f updates: show check results with craft-update's CheckResultDialog 2026-10-31 04:42:16 +00:00
NetterSilverandClaude Haiku 5.5 1de7b44a8d Parse uppercase exponent in custom geometry path numbers
Found while testing crates/pptx/src/custgeom.rs:334

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 05:33:56 +01:00
Harrison Booth 5a235590dd Move gradient editor test module to file end 2026-10-30 23:26:55 -05:00
aiongg a96dcdbe8f docs: tidy wording 2026-10-31 04:25:45 +00:00
Harrison Booth 98138f563b Trim whitespace in bullet point sizes 2026-10-30 23:24:07 -05:00