mirror of
https://github.com/storytold/wordcraft.git
synced 2026-11-09 03:39:51 -06:00
- engine `packs`: the packs Backend (the font store on the desktop and CLI, a fixed list in tests and ui_shot), the pinned index, installs and removals through craft-font-store's `language-pack` kind, craft-proof reading the store's `language-packs/` folder at once. Commands open nothing and never turn downloading on (only an Install click in the app does); confined automation can't write the packs folder outside its write root. - ui-egui `language_packs`: File › Options › Language › Language packs (name, size, licence, source, Install/Remove, progress, errors), the missing-pack bar (dismissible per document, never for a language without a pack), About › Language data (full licence texts). - CP4.4: `cargo xtask language` (in `ci`): the default build embeds only en-* Language data. - CP4.5: docs (help, MCP, control protocol, gaps #8, localization parity, roadmap). - Path deps to Lane 4's worktrees while developing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FypgCX8LsYYE8fsj4byBm2
56 lines
1.9 KiB
TOML
56 lines
1.9 KiB
TOML
[package]
|
|
name = "wordcraft-engine"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "WordCraft engine: session, selection, undo, the command registry (every action is a command), Word's command catalog, file I/O dispatch"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
# Front-end producer tests need to simulate a globally exhausted IME revision allocator. It only
|
|
# ever makes receipt classification fail closed. Never enable this for a production build; the
|
|
# UI's dev-dependencies enable it for its tests.
|
|
test-support = []
|
|
|
|
[dependencies]
|
|
wordcraft-geom = { workspace = true, features = ["image"] }
|
|
wordcraft-doc = { workspace = true }
|
|
wordcraft-fonts = { workspace = true }
|
|
wordcraft-layout = { workspace = true }
|
|
wordcraft-render = { workspace = true }
|
|
wordcraft-proof = { workspace = true }
|
|
wordcraft-docx = { workspace = true }
|
|
wordcraft-docbin = { workspace = true }
|
|
wordcraft-pdf = { workspace = true }
|
|
wordcraft-formats = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
log = { workspace = true }
|
|
chrono = { workspace = true }
|
|
regex = { workspace = true }
|
|
regex-automata = { workspace = true }
|
|
image = { workspace = true }
|
|
zeroize = { workspace = true }
|
|
|
|
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
|
|
# The browser clock for `now_iso` (`SystemTime::now()` panics on wasm32-unknown-unknown).
|
|
js-sys = "0.3"
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
getrandom = { workspace = true }
|
|
# Language packs (CP4.3): downloaded, verified and unpacked by the suite's font store.
|
|
craft-font-store = { workspace = true }
|
|
craft-font-catalog = { workspace = true }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
# O_NONBLOCK, so a path swapped for a named pipe can't block `open` (#3666).
|
|
libc = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
encoding_rs = { workspace = true }
|
|
zip = { workspace = true }
|
|
cfb = { workspace = true }
|