mirror of
https://github.com/storytold/lightcraft.git
synced 2026-11-07 00:49:50 -06:00
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
4.1 KiB
4.1 KiB
Status
Last updated 2026-10-10.
Where we stand
- Forked from upstream; Phase 0 (brand configuration, licence,
plan/, tracker, Immich test server) in progress. - Tracker (
docs/parity.md,cargo xtask parity): 581 counted rows, 394 ✅ · 51 🟡 · 109 ⬜ · 27 🚫. Weighted completion 75.7% of 554 in-scope rows (P0 98.2% of 200 · P1 91.4% of 162 · P2 38.7% of 191). The drop from 80.0% is the Classic reopenings and the rows added from PLAN.md §2, not a regression. - The 10
IMM-*rows are in the document but not counted yet:xtask/src/parity.rsaccepts only theLR,LRC,MENU,KEYandKEYCprefixes (add"IMM"tois_row_id).
Phase 0 checklist
| Item | State |
|---|---|
0.1 Fork, upstream remote, fork-base tag, docs/upstream-merge.md |
in progress (other agents) |
0.2 brand.toml + brand crate + brand check |
in progress (other agents) |
| 0.3 Remove upstream branding | in progress (other agents) |
0.4 MIT licence, cargo deny |
in progress (other agents) |
0.5 plan/ written and committed (only plan/observations/ ignored) |
done |
| 0.5 Tracker: Classic rows reopened, PLAN.md §2 rows added, "Top gaps" de-duplicated, IMM section | done (IMM counting needs the parity.rs change above) |
0.5 plan/immich.md |
done (checked against Immich v3.3.1) |
0.5 xtask/immich/compose.yml + `cargo xtask immich up |
down |
| 0.6 Shared infrastructure | see below |
Shared infrastructure (Phase 0.6)
craft-fonts (CRAFT_FONTS_DIR)
- An optional build input for CJK and other wide-coverage fonts, from a checkout of the craft-fonts repository.
crates/engine-export/build.rsreadsCRAFT_FONTS_DIR(re-run when it changes). A relative path is resolved against the workspace root as well as the crate directory. If the directory is unreadable the build warns and continues without the fonts; withCRAFT_FONTS_REQUIREDset, a missing directory is a build error (use that in release builds).- With the fonts, export watermarks fall back to the bundled Japanese faces (Mincho on desktop, a Gothic face on the
web build); without them,
watermarks_work_without_craft_fontskeeps watermarks working with the default face. - The checkout lives outside the repository or in the git-ignored
/craft-fonts; it is never committed. Typical use:CRAFT_FONTS_DIR=../craft-fonts cargo xtask run. - Phase 3's
textcrate takes over font loading and will read the same variable.
Raw corpus (cargo xtask corpus)
cargo xtask corpusprints where test corpora live:corpus/raw/(CC0 raw.pixls.us samples) andcorpus/images/(optional CC0 / public-domain JPEG, PNG, TIFF, HEIC). The folder is git-ignored.cargo xtask corpus --downloadfetches PngSuite and the pinned CC0 raw samples withcurland checks each file's SHA-256; a mismatching file is deleted and reported so it is fetched again next time.- Tests that need a corpus skip cleanly when it is absent, so CI without the corpus stays green; corpus-backed
checks (for example
crates/raw/tests/cr3_corpus.rs) run where it is present.
Never-crash standard
- Confirmed:
AGENTS.mdcarries the standard in its "Never crash (outranks feature work)" section: non-test code never panics (nounwrap,expect,panic!,unreachable!,todo!,unimplemented!), malformed input becomes an error the user or agent can act on, and a panic hook pluscatch_unwindaround command dispatch and import/export is the last-resort guard (panic = "unwind"on native). It links to the external full standard; that repository is not needed at build time. AGENTS.mdstill names the upstream product in that section; the brand clean-up (Phase 0.2/0.3) owns that wording.
Immich test server
cargo xtask immich upstarts Immich v3.3.1 onhttp://127.0.0.1:2284(docker volumesxtask-immich_*),seedcreatesadmin@example.invalid, an API key intarget/immich/api-keyand an album of 8 generated PNGs,down [--volumes]stops it (and wipes data). Re-runningseedis safe: uploads come back as duplicates.