Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
387 commits
Select commit Hold shift + click to select a range
5e85f73
Merge pull request #1397
echelon Oct 30, 2026
95a55b0
Merge pull request #1437
echelon Oct 30, 2026
b3c36e8
Merge pull request #1560
echelon Oct 30, 2026
6030fb4
Merge pull request #1471
echelon Oct 30, 2026
5187e01
Merge pull request #1442
echelon Oct 30, 2026
2feb7dc
Merge pull request #1452
echelon Oct 30, 2026
a3d14bc
Merge pull request #1497
echelon Oct 30, 2026
71c5da0
Merge pull request #1568
echelon Oct 30, 2026
234329a
Merge pull request #1323
echelon Oct 30, 2026
0f5d01a
Merge pull request #1324
echelon Oct 30, 2026
5b0871e
Merge pull request #1473
echelon Oct 30, 2026
f08e5f8
Merge pull request #1384
echelon Oct 30, 2026
9749ec9
Merge pull request #1435
echelon Oct 30, 2026
42b0e1d
Merge pull request #1465
echelon Oct 30, 2026
2153f8a
Merge pull request #1467
echelon Oct 30, 2026
e713bcc
Merge pull request #1469
echelon Oct 30, 2026
7554d64
Merge pull request #1517
echelon Oct 30, 2026
9554cc7
Merge pull request #1525
echelon Oct 30, 2026
ecad13d
Merge origin/main into #1418: port the slide drag onto panels/thumbs.…
echelon Oct 30, 2026
359e46f
ROADMAP: place the Picture Styles rows beside the newer entries
JonRC Oct 30, 2026
352fec7
Insert and paste count group members when picking the next automatic …
echelon Oct 30, 2026
11b271b
Tests: the Picture Styles resize test asks that the row grow at 1920 …
echelon Oct 30, 2026
ba29b61
Keep backslash zip entry names with forward slashes so later lookups …
echelon Oct 30, 2026
c1b0cf7
Merge origin/main into #1438: port the Add Animation scroll onto ribb…
echelon Oct 30, 2026
1841ab7
Spelling: check all-caps candidates in capitals so KEEPCASE words are…
echelon Oct 30, 2026
b8cfcf2
Accessibility contrast skips line breaks and blank runs
echelon Oct 30, 2026
f61b7a3
Merge pull request #1560
echelon Oct 30, 2026
63934ef
Merge pull request #1451
echelon Oct 30, 2026
e279461
Merge pull request #1493
echelon Oct 30, 2026
34cfc5b
Merge pull request #1500
echelon Oct 30, 2026
58abe9d
Merge pull request #1513
echelon Oct 30, 2026
6208d3e
Merge pull request #1545
echelon Oct 30, 2026
e6f9e91
Merge pull request #1482
echelon Oct 30, 2026
8713686
Merge pull request #1489
echelon Oct 30, 2026
c8d1a7c
Merge pull request #1532
echelon Oct 30, 2026
2275e56
Merge pull request #1518
echelon Oct 30, 2026
c3d1df6
Merge pull request #1382
echelon Oct 30, 2026
28756fc
Merge pull request #1462
echelon Oct 30, 2026
4d2c1a3
Clipboard HTML: put no HTML on the clipboard when even plain text is …
echelon Oct 30, 2026
087c11b
Merge origin/main into #1447: Size & Properties moves to size_tab, Fr…
echelon Oct 30, 2026
b7bec00
Merge origin/main into #1449: preset tiles move into effects_tab
echelon Oct 30, 2026
c66fee1
Merge origin/main into #1417: the symbol-font space guard moves to sh…
echelon Oct 30, 2026
dc1fc8d
Merge pull request #1418
echelon Oct 30, 2026
cee1d01
Merge pull request #1438
echelon Oct 30, 2026
3e8a919
Merge pull request #1447
echelon Oct 30, 2026
1b5d860
Merge pull request #1449
echelon Oct 30, 2026
3dc66ac
Merge pull request #1417
echelon Oct 30, 2026
bcbdb76
Slide show test: clear the textures of the lone presenter frame
echelon Oct 30, 2026
81eff03
Merge pull request #1439
echelon Oct 30, 2026
c7b8a11
Merge pull request #1406
echelon Oct 30, 2026
7b46958
Merge pull request #1536
echelon Oct 30, 2026
ae08bbe
Merge pull request #1546
echelon Oct 30, 2026
46f2322
Merge pull request #1510
echelon Oct 30, 2026
c4221b1
Merge pull request #1371
echelon Oct 30, 2026
a344918
DC-1521: merge origin/main
Harrison-Booth Oct 30, 2026
ef6fd29
DC-1521: hit-test each shape animation independently
Harrison-Booth Oct 30, 2026
b1dfc61
Merge remote-tracking branch 'origin/main' into dc-chart-title-wrap
Harrison-Booth Oct 30, 2026
9195d75
#1524: keep chart plots visible under long titles
Harrison-Booth Oct 30, 2026
82adf73
fix: address raised issues
DominicTheD3v Oct 30, 2026
327877a
#1524: clip wrapped titles to their reserved height
Harrison-Booth Oct 30, 2026
0768e95
Print preview: merge origin/main
Harrison-Booth Oct 30, 2026
b92a7dd
Merge remote-tracking branch 'origin/main' into dc-fix-1514
Harrison-Booth Oct 30, 2026
2c11865
codec: accept hvcC SEI arrays without allocation
Harrison-Booth Oct 30, 2026
b4c1905
dc-fix-1519: address print preview review
Harrison-Booth Oct 30, 2026
ddd3924
test(codec): strengthen configuration slice regressions
Harrison-Booth Oct 30, 2026
7190c85
test(h264): avoid singleton fixture loop
Harrison-Booth Oct 30, 2026
f816575
Merge origin/main into dc-slide-actions-list
Harrison-Booth Oct 30, 2026
3c068df
test(h264): complete picture slice fixture
Harrison-Booth Oct 30, 2026
446bc52
Make layout/master placeholder formatting reach slides
Silvertree2010 Oct 28, 2026
adaa4e6
fix: keep per-level formatting when formatting layout/master placehol…
Silvertree2010 Oct 30, 2026
ee4bdbc
fix: initialize slide action test run props
Harrison-Booth Oct 30, 2026
e812da5
fix: addressing issues
DominicTheD3v Oct 30, 2026
443f503
Reject invalid index in transition commands instead of using selection
Silvertree2010 Oct 30, 2026
09bbfc7
fix: addressing issues raised by coderabbit
DominicTheD3v Oct 30, 2026
d453bee
D604: readable animation effect labels
Harrison-Booth Oct 30, 2026
4c1d77d
fix(flatpak): allow reading launcher version pins (#1575)
dylanmtaylor Oct 31, 2026
77e3a44
Update crates/engine/src/tools/drag.rs
DominicTheD3v Oct 31, 2026
6113f4e
contributors: add names for marshiyar
marshiyar Oct 31, 2026
9aef8cc
fix: addressing issues raised by coderabbit
DominicTheD3v Oct 31, 2026
68dda6f
Merge branch 'feature/resize-multiple-shapes' of https://github.com/d…
DominicTheD3v Oct 31, 2026
ede7a7e
ogg: bound damage recovery work and the warnings list
marshiyar Oct 31, 2026
eaeb06c
Release 0.13.0
Oct 31, 2026
e83f964
mcp: insert_chart takes x, y, w and h
marshiyar Oct 31, 2026
b7482dd
engine: animation.add and animation.set take the points of a custom m…
marshiyar Oct 31, 2026
255df31
FreeBSD packaging: compare ELF header bytes without od's column padding
Oct 31, 2026
4ce2944
Release 0.13.1
Oct 31, 2026
479c3cc
Preserve explicit miter limits in PPTX
Harrison-Booth Oct 31, 2026
9a716be
Reject invalid colour in format.highlight instead of clearing it
Silvertree2010 Oct 31, 2026
b1900e5
Preserve point-sized bullets in PPTX
Harrison-Booth Oct 31, 2026
8770fb9
Preserve bullet follow-text resets in PPTX
Harrison-Booth Oct 31, 2026
727b682
Preserve inset line alignment in PPTX
Harrison-Booth Oct 31, 2026
ad97533
Preserve gradient flip mode in PPTX
Harrison-Booth Oct 31, 2026
4408ff6
Restrict line alignment to schema values
Harrison-Booth Oct 31, 2026
f5c2aca
Preserve bullet follow-text inheritance
Harrison-Booth Oct 31, 2026
917d4b9
Honor bullet size schema bounds and inheritance
Harrison-Booth Oct 31, 2026
1de0101
Honor miter percentage schema bounds
Harrison-Booth Oct 31, 2026
cccc906
docs: tidy agent, contributor and roadmap docs
aiongg Oct 31, 2026
72c8621
Keep gradient flip when editing a fill
Harrison-Booth Oct 31, 2026
0e3f4cd
Preserve explicit bullets over follow-text resets
Harrison-Booth Oct 31, 2026
98138f5
Trim whitespace in bullet point sizes
Harrison-Booth Oct 31, 2026
a96dcdb
docs: tidy wording
aiongg Oct 31, 2026
5a23559
Move gradient editor test module to file end
Harrison-Booth Oct 31, 2026
1de7b44
Parse uppercase exponent in custom geometry path numbers
Silvertree2010 Oct 31, 2026
9678ed7
updates: show check results with craft-update's CheckResultDialog
aiongg Oct 31, 2026
a00b7e8
Merge pull request #1577
echelon Oct 31, 2026
231a524
Merge pull request #1587
echelon Oct 31, 2026
fb05eaa
Merge pull request #1490
echelon Oct 31, 2026
8a2eccc
Merge pull request #1583
echelon Oct 31, 2026
47eb673
Merge pull request #1581
echelon Oct 31, 2026
3bf35c8
Custom geometry: 'E' is an exponent only when digits follow, so 'M 0 …
echelon Oct 31, 2026
a667e13
Merge pull request #1594
echelon Oct 31, 2026
c0db6eb
Merge pull request #1585
echelon Oct 31, 2026
8f6e1b4
Merge pull request #1589
echelon Oct 31, 2026
4a0f48a
Merge pull request #1590
echelon Oct 31, 2026
e626625
Merge pull request #1514
echelon Oct 31, 2026
861879f
Merge pull request #1519
echelon Oct 31, 2026
acf0548
slide.actions refuses a bad index instead of using the selected slide
echelon Oct 31, 2026
04b0958
Gradient flip: drop the blank lines before the new flip fields
echelon Oct 31, 2026
6058fc7
gaps.md: drop the stray 10-28 click-target row from among the 10-13 rows
echelon Oct 31, 2026
6a34f13
Ogg: the budget-spent warning goes last, after the capped warnings
echelon Oct 31, 2026
d92874f
Merge pull request #1574
echelon Oct 31, 2026
d2504e5
Motion paths: a raw path string must parse to at least two finite points
echelon Oct 31, 2026
40728b5
Merge pull request #1591
echelon Oct 31, 2026
06a1ca4
Merge pull request #1521
echelon Oct 31, 2026
243c1a2
Merge pull request #1582
echelon Oct 31, 2026
d080a23
Merge pull request #1584
echelon Oct 31, 2026
800ffea
Motion paths: check raw path strings without deckcraft-anim, which th…
echelon Oct 31, 2026
f7a7fd7
Merge pull request #1584
echelon Oct 31, 2026
e747bff
Shape Fill: the gradient help lists every kind and key the command takes
dotCooCoo Oct 31, 2026
0ed4b39
Merge pull request #1599 from aiongg/update-result-dialog
dylanmtaylor Oct 31, 2026
92bf7fc
fix(xtask): update SHARED_REV for craft-libs update
dylanmtaylor Oct 31, 2026
a3fbf02
Merge pull request #1592 from aiongg/docs-tidy
dylanmtaylor Oct 31, 2026
c3e9bd0
Reject invalid slide index in design.background
Silvertree2010 Oct 31, 2026
84ac51a
fix: addressing more issues
DominicTheD3v Oct 31, 2026
c5ac1dd
docs: add missing docstrings
DominicTheD3v Oct 31, 2026
2ed2ce1
Fonts: unavailable monospace fonts fall back to a monospace substitut…
madhasoeki Oct 31, 2026
cd19752
FIX-1621: let no-fill interiors pass clicks to underlying objects
QuirkyTurtle94 Oct 31, 2026
d990678
render: keep even-odd holes open in shadow, glow and reflection silho…
scks1 Oct 31, 2026
8257333
packaging(flatpak): add OCI image build and GHCR publishing helper (#…
dylanmtaylor Oct 31, 2026
3fb6c43
Lowercase word-final Σ as ς in title and sentence case
Silvertree2010 Oct 31, 2026
87a10fc
Keep combining marks inside spell-check words
Silvertree2010 Oct 31, 2026
8ec4f29
Fonts: refine monospace heuristic and preserve office_twin order (#1598)
madhasoeki Nov 1, 2026
773133e
Apply alphaMod and alphaOff in ColorRef::alpha
Silvertree2010 Nov 1, 2026
5d27461
Keep Xfrm::rot_norm within 0..360 for tiny negative rotations
Silvertree2010 Nov 1, 2026
c0468b5
Fonts: classify Cascadia Code PL as monospace (#1598)
madhasoeki Nov 1, 2026
e690829
ci: grant packages write permission to release workflow
dylanmtaylor Nov 1, 2026
f3d8ba8
tests(fonts): add specific tests requested by reviewer for monospace …
madhasoeki Nov 1, 2026
c37b150
PPTX: parse each tags part once, cap copied tags, and bound cache (#1…
Naseq Nov 1, 2026
b6c1d87
Text: scale down insets when wider than the shape (#1632)
Naseq Nov 1, 2026
b5033b6
Text: preserve signed insets and scale only when both are non-negative
Naseq Nov 1, 2026
7f742c9
FIX-1621: cover locked and outline-free No Fill shapes
QuirkyTurtle94 Nov 1, 2026
5fb694d
Text: a word doesn't break after ?, !, } or + (URLs wrap as in PowerP…
xmaks82 Nov 1, 2026
9f95255
#1596: add shadow, glow and reflection pixel goldens
scks1 Nov 1, 2026
650c4f9
#1597: make validation independent of installed fonts and dictionaries
scks1 Nov 1, 2026
14cc731
H.264: cite temporal direct as 8.4.1.2.3
SusieeTheLinuxUser Nov 1, 2026
f2f0c43
docs: sync Craft App Suite list with ArtCraft Launcher
dylanmtaylor Nov 1, 2026
eaf8d1c
Release 0.14.0
Nov 1, 2026
bbd5798
packaging(flatpak): flatpak-oci.sh sources common.sh, not the absent …
Nov 1, 2026
ee39ff6
Release 0.14.1
Nov 1, 2026
9005839
WASM: open presenter view in a separate browser window (#729) (#730)
FredApps Nov 1, 2026
cc00a17
#1596: let effect-hole QA images overwrite an earlier run's
scks1 Nov 1, 2026
befa4cd
Merge main into test/portable-render-validation
scks1 Nov 1, 2026
b0b87c5
Fix Unit::format printing "-0.00" for tiny negative lengths
Silvertree2010 Nov 2, 2026
01220df
design.background: check the index before a picture is added to the m…
Nov 2, 2026
5eb0b7d
docs: one revision row per doc for #1621, keep the Last reviewed dates
Nov 2, 2026
468394b
Merge pull request #1600
echelon Nov 2, 2026
babc950
Merge pull request #1601
echelon Nov 2, 2026
f4fcac9
Merge pull request #1623
echelon Nov 2, 2026
bcc4fc9
Merge pull request #1558
echelon Nov 2, 2026
02ea528
Merge pull request #1626
echelon Nov 2, 2026
37a6aed
Merge pull request #1614
echelon Nov 2, 2026
d09f4c1
Merge pull request #1247
echelon Nov 2, 2026
1f6587b
Merge pull request #1373
echelon Nov 2, 2026
ffd77c7
Spell check: a mark on trailing punctuation is trimmed with it
Nov 2, 2026
9fce04f
Merge pull request #1627
echelon Nov 2, 2026
d4d99c7
Merge pull request #1628
echelon Nov 2, 2026
fd4c533
Merge pull request #1630
echelon Nov 2, 2026
1f2c75a
Merge pull request #1631
echelon Nov 2, 2026
6c63345
Merge pull request #1667
echelon Nov 2, 2026
e832a37
Merge pull request #1639
echelon Nov 2, 2026
0d45a64
Merge pull request #1645
echelon Nov 2, 2026
ea9dad8
Transitions: play transition preview from previous slide when Preview…
Naseq Nov 2, 2026
4bed9b6
Reject unsupported handout perPage values in file.export
Silvertree2010 Nov 2, 2026
e0992c1
Transitions: render cached previous slide with completed animation state
Naseq Nov 2, 2026
72ac327
Reject invalid master and layout indices in view.slideMaster
Silvertree2010 Nov 2, 2026
77cd617
Use a short temp file name in write_file for long file names
Silvertree2010 Nov 2, 2026
62ada3a
fix(render): tiled picture fills keep their size in scaled groups and…
leobasilio Nov 2, 2026
5cb6ba8
Comments: the pane keeps its width and resizes again (fixes #1431)
Luis-0508 Nov 2, 2026
9e59b5f
fix(render): size a group's own tile and a picture shape's own tile i…
leobasilio Nov 2, 2026
e90e7f6
fix(render): size the tile of a picture's shadow and reflection in po…
leobasilio Nov 2, 2026
fd4d2a8
Merge remote-tracking branch 'origin/main' into dc-build-d604
Harrison-Booth Nov 2, 2026
f280310
Correct animation option labels
Harrison-Booth Nov 2, 2026
a200b92
Merge remote-tracking branch 'origin/main' into dc-build-d712
Harrison-Booth Nov 2, 2026
3cfd4c5
Parse percentage-form bullet sizes
Harrison-Booth Nov 2, 2026
f68150e
Replace the Account page with About (#1697)
dylanmtaylor Nov 3, 2026
58c2488
Reject png/jpeg targets in file.save instead of writing zip bytes
Silvertree2010 Nov 3, 2026
3e178d8
Release 0.15.0
Nov 3, 2026
5a668bf
Animations: index morph matching and timeline lookups by shape (#1700)
dylanmtaylor Nov 3, 2026
8ec4f6c
Fonts: shape long items in bounded pieces (#1702)
dylanmtaylor Nov 3, 2026
b66ba2e
Preserve centered anchoring on table cells
Harrison-Booth Nov 3, 2026
44b133a
Preserve text overflow settings in PPTX
Harrison-Booth Nov 3, 2026
0d06481
Preserve compatible line spacing in PPTX
Harrison-Booth Nov 3, 2026
d00ef08
Preserve normalized character height in PPTX
Harrison-Booth Nov 3, 2026
bb417bf
Preserve Thai distributed paragraph alignment
Harrison-Booth Nov 3, 2026
0f5364e
picture: use displayed group size for compression
Harrison-Booth Nov 3, 2026
e4a0c29
Keep Thai distributed text rendering outside this change
Harrison-Booth Nov 3, 2026
ba3b57c
file.export: a perPage that isn't a count is refused, not read as 6
Nov 3, 2026
fb3b857
file.save: an explicit jpg format is refused too
Nov 3, 2026
97050a3
Bullets: an own bullet size still clears an inherited follow-text fla…
Nov 3, 2026
f8128f9
Merge pull request #1680
echelon Nov 3, 2026
ee64e93
Merge pull request #1682
echelon Nov 3, 2026
f66bed8
Merge pull request #1686
echelon Nov 3, 2026
df4bb8b
Merge pull request #1698
echelon Nov 3, 2026
4eb9098
Merge pull request #1588
echelon Nov 3, 2026
597b948
Merge pull request #1579
echelon Nov 3, 2026
6ab485a
Merge pull request #1679
echelon Nov 3, 2026
3c8dc6b
Merge pull request #1693
echelon Nov 3, 2026
0c00f22
Merge pull request #1694
echelon Nov 3, 2026
6cdbee5
Reuse custom table styles with slides
Harrison-Booth Nov 3, 2026
63531e2
Merge remote-tracking branch 'origin/main' into dc-build-d705
Harrison-Booth Nov 3, 2026
73bd231
D709: remove dangling animations from merged shapes
Harrison-Booth Nov 3, 2026
1e5b78d
D702: prune deleted slides from custom shows
Harrison-Booth Nov 3, 2026
328b4ed
Preserve RTL table direction
Harrison-Booth Nov 3, 2026
bf60dbb
Fit reused slide content to destination size
Harrison-Booth Nov 3, 2026
a0956fe
Preserve alternate run language
Harrison-Booth Nov 3, 2026
b61c5f1
D716: preserve reflection transforms on save
Harrison-Booth Nov 3, 2026
82ec813
Format: bound native load work for the manifest, failed media reads a…
dylanmtaylor Nov 3, 2026
751ac26
fix(pptx): place effects by their parent time node delays (fixes #1744)
Naseq Nov 3, 2026
4df4ea6
Text: Thai distributed paragraphs still stretch like justified ones
echelon Nov 3, 2026
67c1d78
PPTX: horzOverflow never reads or writes ellipsis (vertical only in S…
echelon Nov 3, 2026
6546136
PPTX timing: a sorted click group keeps its click on the effect that …
echelon Nov 3, 2026
c7b91ff
PPTX: reflection angles, skews and start position are written inside …
echelon Nov 3, 2026
a6e2b64
Reuse: a remapped table style's own XML carries its new id; checklist…
echelon Nov 3, 2026
9f68e8e
Reuse: a non-finite size ratio leaves content unscaled; cell text sca…
echelon Nov 3, 2026
ed62aaf
Merge pull request #1709
echelon Nov 3, 2026
6c1170a
Merge pull request #1721
echelon Nov 3, 2026
996ca4d
Merge pull request #1722
echelon Nov 3, 2026
1d18101
Merge pull request #1723
echelon Nov 3, 2026
d365e0b
Merge pull request #1751
echelon Nov 3, 2026
9f01f2e
Merge pull request #1707
echelon Nov 3, 2026
160c923
Merge pull request #1716
echelon Nov 3, 2026
3f29dcc
Merge pull request #1717
echelon Nov 3, 2026
ef55104
Merge pull request #1719
echelon Nov 3, 2026
5cb154c
Merge pull request #1712
echelon Nov 3, 2026
928aa9c
Merge pull request #1713
echelon Nov 3, 2026
ed77cc9
Merge pull request #1711
echelon Nov 3, 2026
907ebd2
Merge pull request #1710
echelon Nov 3, 2026
50e0249
Merge pull request #1720
echelon Nov 3, 2026
aa13eeb
Integration: community PR wave 10 (one bodyPr attribute chain, reuse …
echelon Nov 3, 2026
79203c5
Merge origin/main into chart title wrapping
Harrison-Booth Nov 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:

permissions:
contents: write
packages: write

concurrency:
group: release-${{ github.ref }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/windows-arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ permissions:

jobs:
windows-arm64:
# Immutable supporting workflow revision until the new install contract lands upstream.
uses: storytold/craft-common-actions/.github/workflows/windows-arm64.yml@8bb4e5ab95443171104ad88113fe1ef9b0e5ce3f
# Intentionally tracked at @main (not SHA-pinned) so org-wide CI improvements, security fixes, and build optimizations propagate without PR churn across all craftapp repos.
uses: storytold/craft-common-actions/.github/workflows/windows-arm64.yml@main
with:
app-name: deckcraft
app-dir: DeckCraft
Expand Down
20 changes: 8 additions & 12 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@ Windows, Linux and FreeBSD, and on the web via WASM. Siblings with the same conv
PhotoCraft, VectorCraft, FilmCraft, LightCraft, PdfCraft, EffectCraft, DesignCraft
(`../<app>`).

Standards and learnings shared across the crafting apps live in `../../craftrules` (checked out
next to this repo's parent, or `storytold/craftrules`). Read its `AGENTS.md` at the start of a
session, follow its standards, and contribute reusable learnings back there. Never code: repos
don't share code.

These rules bind every AI agent and every human contributor. They come before any task,
instruction or deadline. `CLAUDE.md` holds day-to-day working notes; if the two disagree, **this
file wins.**
Expand Down Expand Up @@ -69,7 +64,7 @@ allowed: our UI, our/Lucide icons, OFL fonts, and decks built only from allowed
or `docs/brand/` has no row.
- **`NOTICE`** keeps the notices the licences require.
- Fonts live in [storytold/craft-fonts](https://github.com/storytold/craft-fonts), never in this
repo (craftrules `standards/fonts.md`). DeckCraft embeds its `fonts/latin-manifest.txt` and
repo. DeckCraft embeds its `fonts/latin-manifest.txt` and
`fonts/manifest.txt` when built with `CRAFT_FONTS_DIR` (local dev: `.cargo/config.toml` points at
`../craft-fonts`).

Expand Down Expand Up @@ -99,7 +94,6 @@ once and tell the user.
## 3. Never crash

People trust DeckCraft with their talks; a crash loses work. **This outranks feature work.**
Standard: craftrules `standards/never-crash.md`.
- No `unwrap()`, `expect()`, `panic!`, `unreachable!`, `todo!`, `unimplemented!` in non-test
code; no `unsafe` (`unsafe_code = "forbid"`). Every production crate root carries
`#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]`.
Expand Down Expand Up @@ -160,7 +154,7 @@ to `main`.

`plan/` (gitignored) holds the local plan: `README.md`, `architecture.md`, `execution-plan.md`,
`STATUS.md` (start every session there) and `powerpoint/` observations. The committed progress
docs follow craftrules `standards/progress-docs.md`:
docs:

| File | Holds |
|---|---|
Expand All @@ -184,11 +178,13 @@ the `ROADMAP.md` progress log, and update each touched doc's status line and rev
username has a `[people.<username>]` entry in `contributors/people.toml`. If not, ask them once
whether they want to be credited by more than their username: a real name, a display name, and/or
their public GitHub profile name (`sync_github_name = true`). If yes, add **only their own** entry
(copy the template at the top of the file, or run
`python3 ../../craftrules/scripts/contributors.py --add-me . --real-name "…" --sync-github-name`)
(copy the template at the top of the file)
and include it in their PR, committed as them. If no, change nothing: they are credited as
`@username` anyway.
- Never add, edit, guess or copy anyone else's entry or name (not from git config, commit authors or
GitHub profiles). Never hand-edit `contributors.json`.
- Maintainers refresh the stats with `python3 ../../craftrules/scripts/contributors.py .` (it also
re-verifies who wrote each `people.toml` entry; `--check` only verifies).

## CI workflows
- Workflows in `.github/workflows/` call the shared workflows in [`storytold/craft-common-actions`](https://github.com/storytold/craft-common-actions) at `@main`, with their inputs and secrets. No other jobs: if no shared workflow does what's needed, it doesn't go here.
- Don't add or change CI in a feature or fix PR. If the existing workflows can't build or test a change, link an existing craft-common-actions issue or PR, or open a new issue, or a PR only for a small fix that is safe for every app and does not increase CI time.
- Some workflow files here still run their own jobs. Don't add to them. Moving a job into craft-common-actions is its own task, never part of another PR, and the job stays here until a shared workflow runs it.
2 changes: 1 addition & 1 deletion ATTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ artwork. The ribbon and menu icons stay original drawings.
| `docs/brand/artcraft-logo-white.svg`, `docs/brand/artcraft-logo-white.png` | ArtCraft Team | ArtCraft brand kit | ArtCraft trademark, `docs/brand/LICENSE-brand.txt` | README header (dark mode) |
| `docs/brand/artcraft-mark.svg`, `docs/brand/artcraft-mark.png` | ArtCraft Team | ArtCraft brand kit | ArtCraft trademark, `docs/brand/LICENSE-brand.txt` | README footer, About |
| `docs/brand/artcraft-mark-black.svg`, `docs/brand/artcraft-mark-black.png` | ArtCraft Team | ArtCraft brand kit | ArtCraft trademark, `docs/brand/LICENSE-brand.txt` | Mark for light backgrounds |
| `docs/brand/LICENSE-brand.txt` | ArtCraft Team | craftrules `standards/license-files` | — (licence text) | Terms for the ArtCraft marks |
| `docs/brand/LICENSE-brand.txt` | ArtCraft Team | ArtCraft brand kit | — (licence text) | Terms for the ArtCraft marks |
| `assets/app-icon/deckcraft-1024.png`, `assets/app-icon/hicolor/*/apps/ai.storyteller.deckcraft.png` | DeckCraft contributors | rendered by DeckCraft from `assets/app-icon/icon-source.deckcraft` (shapes only) | MIT OR Apache-2.0 | Placeholder app icon (presentation board) until the mascot icon is drawn |
| `packaging/macos/dmg/background.svg` | @XusBadia | DeckCraft macOS DMG window background, original work for this repository (2026-10-08), derived from the DeckCraft app icon `assets/app-icon/deckcraft-1024.png` (referenced via `<image>`, not copied); text is outlined Inter / JetBrains Mono glyph paths | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | Finder window of the macOS DMG; `packaging/macos/dmg/generate.py` renders it to `background.tiff` |
| `packaging/macos/dmg/background.tiff` | @XusBadia | Rendered from `packaging/macos/dmg/background.svg` by `packaging/macos/dmg/generate.py` | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | 1x + 2x HiDPI TIFF for the macOS DMG window; includes the app icon (see its row) and LittleCMS's built-in sRGB profile ("No copyright, use freely") |
Expand Down
8 changes: 6 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ before modules or other crate items; crate-level `//!` documentation may precede

## Start every session
1. Read `plan/STATUS.md`, then the current milestone in `plan/execution-plan.md`.
2. Read `../../craftrules/AGENTS.md` and the standards it lists for your task.
3. Run `cargo xtask ci` before you change anything, so you know the tree is green.
2. Run `cargo xtask ci` before you change anything, so you know the tree is green.

## Habits
- Every user-visible action is a command with tests (`crates/engine/src/cmd/*`).
Expand All @@ -19,3 +18,8 @@ before modules or other crate items; crate-level `//!` documentation may precede
- Commit after each landed arc (`M<n>.<k>: what`) and push to `origin main`.
- Keep `ROADMAP.md`, the progress docs in `docs/` (AGENTS.md §7) and `plan/STATUS.md` current.
- Don't ask the user questions; record genuinely-theirs decisions in `plan/STATUS.md`.

## CI workflows
- Workflows in `.github/workflows/` call the shared workflows in [`storytold/craft-common-actions`](https://github.com/storytold/craft-common-actions) at `@main`, with their inputs and secrets. No other jobs: if no shared workflow does what's needed, it doesn't go here.
- Don't add or change CI in a feature or fix PR. If the existing workflows can't build or test a change, link an existing craft-common-actions issue or PR, or open a new issue, or a PR only for a small fix that is safe for every app and does not increase CI time.
- Some workflow files here still run their own jobs. Don't add to them. Moving a job into craft-common-actions is its own task, never part of another PR, and the job stays here until a shared workflow runs it.
Loading