From 436c56a7ad8a22c60344079cb3463a01b878258b Mon Sep 17 00:00:00 2001 From: Fabio Lussi <198260595+itrycodinganditsbad@users.noreply.github.com> Date: Mon, 12 Oct 2026 04:06:24 +0200 Subject: [PATCH 1/7] docs: add user docs for LightCraft User docs in docs/user/ (published at getartcraft.com/docs/lightcraft), the docs-check and docs-publish workflows, and a "User docs" rule in AGENTS.md. Modelled on the ArtCraft Launcher setup. Sources per page: - index.md: README.md, crafting-apps.ts (lightcraft entry), Cargo.toml (0.6.0) - getting-started/install.md: README Downloads section, `gh release view` v0.6.0 asset list, craft-launcher catalog.rs and install docs - guides/import-photos.md: crates/ui-egui/src/import.rs, panels/dialogs.rs, menubar.rs, menus.rs - guides/cull-photos.md: docs/library-shortcuts.md, menubar.rs, panels/compare.rs, README - guides/edit-a-photo.md: panels/edit.rs, develop/src/controls.rs, menus.rs, README - guides/export-photos.md: panels/dialogs.rs (Export dialog), menus.rs - guides/import-lightroom-catalog.md: docs/lightroom-catalog-import.md, menus.rs, issue #832 - troubleshooting/preview-only-raw.md: issue #662, widgets.rs, engine cmd/convert.rs, README - troubleshooting/raw-photos-look-dull.md: issues #860, #778, #697 - troubleshooting/get-help.md: README (logs), menus.rs Help menu, issue #860 - faq/free-and-private.md: README (local-first, license), ROADMAP link - faq/supported-files.md: README, menus.rs, export dialog Co-Authored-By: Claude Opus 5.5 --- .github/workflows/docs-check.yml | 32 ++++++++++ .github/workflows/docs-publish.yml | 22 +++++++ AGENTS.md | 5 ++ docs/user/AGENTS.md | 62 +++++++++++++++++++ docs/user/CLAUDE.md | 1 + docs/user/faq/free-and-private.md | 20 ++++++ docs/user/faq/index.md | 8 +++ docs/user/faq/supported-files.md | 22 +++++++ docs/user/getting-started/index.md | 7 +++ docs/user/getting-started/install.md | 55 ++++++++++++++++ docs/user/guides/cull-photos.md | 40 ++++++++++++ docs/user/guides/edit-a-photo.md | 39 ++++++++++++ docs/user/guides/export-photos.md | 33 ++++++++++ docs/user/guides/import-lightroom-catalog.md | 40 ++++++++++++ docs/user/guides/import-photos.md | 33 ++++++++++ docs/user/guides/index.md | 11 ++++ docs/user/index.md | 26 ++++++++ docs/user/troubleshooting/get-help.md | 26 ++++++++ docs/user/troubleshooting/index.md | 9 +++ docs/user/troubleshooting/preview-only-raw.md | 31 ++++++++++ .../troubleshooting/raw-photos-look-dull.md | 38 ++++++++++++ 21 files changed, 560 insertions(+) create mode 100644 .github/workflows/docs-check.yml create mode 100644 .github/workflows/docs-publish.yml create mode 100644 docs/user/AGENTS.md create mode 120000 docs/user/CLAUDE.md create mode 100644 docs/user/faq/free-and-private.md create mode 100644 docs/user/faq/index.md create mode 100644 docs/user/faq/supported-files.md create mode 100644 docs/user/getting-started/index.md create mode 100644 docs/user/getting-started/install.md create mode 100644 docs/user/guides/cull-photos.md create mode 100644 docs/user/guides/edit-a-photo.md create mode 100644 docs/user/guides/export-photos.md create mode 100644 docs/user/guides/import-lightroom-catalog.md create mode 100644 docs/user/guides/import-photos.md create mode 100644 docs/user/guides/index.md create mode 100644 docs/user/index.md create mode 100644 docs/user/troubleshooting/get-help.md create mode 100644 docs/user/troubleshooting/index.md create mode 100644 docs/user/troubleshooting/preview-only-raw.md create mode 100644 docs/user/troubleshooting/raw-photos-look-dull.md diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml new file mode 100644 index 000000000..b89a00a88 --- /dev/null +++ b/.github/workflows/docs-check.yml @@ -0,0 +1,32 @@ +name: docs-check + +on: + pull_request: + paths: ["docs/user/**"] + push: + branches: [main] + paths: ["docs/user/**"] + +permissions: + contents: read + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Download the shared docs checker + id: fetch + run: | + url=https://raw.githubusercontent.com/storytold/artcraft-services/main/frontend/apps/artcraft-website-next/scripts/docs/core.mjs + if curl -fsSL "$url" -o "$RUNNER_TEMP/docs-core.mjs"; then + echo "ok=1" >> "$GITHUB_OUTPUT" + else + echo "::warning::The docs checker is not published yet; skipping." + fi + - name: Check docs/user + if: steps.fetch.outputs.ok == '1' + run: node "$RUNNER_TEMP/docs-core.mjs" docs/user diff --git a/.github/workflows/docs-publish.yml b/.github/workflows/docs-publish.yml new file mode 100644 index 000000000..df4a412cc --- /dev/null +++ b/.github/workflows/docs-publish.yml @@ -0,0 +1,22 @@ +name: docs-publish + +on: + push: + branches: [main] + paths: ["docs/user/**"] + +permissions: {} + +jobs: + rebuild: + runs-on: ubuntu-latest + steps: + - name: Rebuild getartcraft.com + env: + HOOK: ${{ secrets.DOCS_BUILD_HOOK }} + run: | + if [ -z "$HOOK" ]; then + echo "DOCS_BUILD_HOOK is not set; the nightly website build will pick this up." + exit 0 + fi + curl -fsS -X POST -d '{}' "$HOOK?trigger_title=docs%20update%20from%20$GITHUB_REPOSITORY" diff --git a/AGENTS.md b/AGENTS.md index 8cd199ff6..f2082f7a5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -95,6 +95,11 @@ of it. Full standard: `../craftrules/standards/never-crash.md` Never weaken this check to make a commit pass — fix the attribution or remove the asset. - When in doubt about an asset's licence: don't use it. +## User docs +User docs live in `docs/user/` and are published at https://getartcraft.com/docs/lightcraft. If a change alters +something a user sees or does (menu or panel labels, import, export, install, errors), update the matching page in +`docs/user/` in the same commit, or add one. Rules: `docs/user/AGENTS.md`; the checker runs in `docs-check.yml`. + ## Running and looking at the app - `cargo run --release -p lightcraft -- --control 7980` opens the desktop app with the JSON-lines control server (see `docs/control-protocol.md`). - **Never send OS-level synthetic input** (osascript/System Events keystrokes or clicks, `cliclick`, accessibility diff --git a/docs/user/AGENTS.md b/docs/user/AGENTS.md new file mode 100644 index 000000000..b9f904814 --- /dev/null +++ b/docs/user/AGENTS.md @@ -0,0 +1,62 @@ +# User docs: rules for agents and contributors + +Everything in this folder (except this file, CLAUDE.md and README.md) is published at +https://getartcraft.com/docs/lightcraft. The file path is the URL: +`troubleshooting/raw-photos-look-dull.md` → `/docs/lightcraft/troubleshooting/raw-photos-look-dull`. +Renaming a file breaks links, so add the old path to `redirect_from` when you rename. + +## Who reads this + +Artists and photographers using LightCraft, Discord mods answering them, and AI assistants looking +things up for either. Write for a photographer, not a developer. + +## Page rules + +- One question or problem per page. Lead with the answer or the fix in the first two lines. +- Plain words, short sentences, numbered steps for anything the reader does. +- Start the body at `##`. The page title comes from frontmatter. +- Link to other pages instead of repeating them. Use relative links to the `.md` file: + `[Install LightCraft](../getting-started/install.md)`. +- No marketing copy, no "simply", no claims you have not checked in the code or a release. +- Call the product "LightCraft", as the app, its downloads and getartcraft.com do. +- Name UI labels exactly as the app shows them, in **bold**. +- Troubleshooting pages: `## Symptoms`, `## Fix`, `## Why this happens` (optional), + `## Still stuck?` (link the issue tracker or Discord). + +## Frontmatter + + --- + title: Raw photos look dull + description: One sentence for search results, link previews and AI summaries. + order: 10 # optional, sorts within the folder (lower first) + verified: 0.6.0 # optional, app version you last checked this page against + redirect_from: [old/path] # optional, old URLs (relative to /docs/lightcraft) + --- + +Only `key: value` and `key: [a, b]` lines work. Quote values that start with a quote or contain ` #`. + +Set `verified` to the workspace `version` in `Cargo.toml` whenever you check a +page against the current code. + +## Folders + +- `getting-started/` install and first run +- `guides/` how to do one thing +- `troubleshooting/` symptom → fix +- `faq/` short answers +- `reference/` lists and settings + +A folder's `index.md` names the folder in the sidebar. Files or folders starting with `_` are +drafts and are not published. + +## Check before you push + + curl -fsSL https://raw.githubusercontent.com/storytold/artcraft-services/main/frontend/apps/artcraft-website-next/scripts/docs/core.mjs -o /tmp/docs-core.mjs + node /tmp/docs-core.mjs docs/user + +CI runs the same check on every PR that touches `docs/user/`. + +## Support PRs + +Pages written to answer a user question come in as PRs titled `docs(support): `. +Review them like code: check every claim against the source. diff --git a/docs/user/CLAUDE.md b/docs/user/CLAUDE.md new file mode 120000 index 000000000..47dc3e3d8 --- /dev/null +++ b/docs/user/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/docs/user/faq/free-and-private.md b/docs/user/faq/free-and-private.md new file mode 100644 index 000000000..28f7104d2 --- /dev/null +++ b/docs/user/faq/free-and-private.md @@ -0,0 +1,20 @@ +--- +title: Is LightCraft free, and does it need an account? +description: LightCraft is free and open source, needs no account or subscription, and keeps your library on your computer. +order: 10 +verified: 0.6.0 +--- + +Yes, it is free. LightCraft is open source under the MIT or Apache-2.0 licence, your choice. It needs no account, no cloud service and no subscription, and it sends no telemetry. + +## Where are my photos and edits kept? + +On your computer. Your library lives in a folder you choose, by default `~/Pictures/LightCraft Library`. Edits are non-destructive, so your original files are never touched. The catalog is a log of human-readable operations that you can back up. Use **File** > **Back Up Library…** to make a backup. + +## Which systems does it run on? + +LightCraft runs on Windows, macOS and Linux, and in a web browser. See [Install LightCraft](../getting-started/install.md). + +## Is it finished? + +No. LightCraft is in alpha. Some things from Adobe Lightroom are not there yet, such as on-screen HDR display, video and the Print, Book and Map modules. The project's [roadmap](https://github.com/storytold/lightcraft/blob/main/ROADMAP.md) lists what is missing. diff --git a/docs/user/faq/index.md b/docs/user/faq/index.md new file mode 100644 index 000000000..1ddafea53 --- /dev/null +++ b/docs/user/faq/index.md @@ -0,0 +1,8 @@ +--- +title: FAQ +description: Short answers about LightCraft, its price, platforms and file support. +order: 40 +--- + +- [Is LightCraft free, and does it need an account?](free-and-private.md) +- [Which cameras and file types does LightCraft open?](supported-files.md) diff --git a/docs/user/faq/supported-files.md b/docs/user/faq/supported-files.md new file mode 100644 index 000000000..65da107ff --- /dev/null +++ b/docs/user/faq/supported-files.md @@ -0,0 +1,22 @@ +--- +title: Which cameras and file types does LightCraft open? +description: The raw and image formats LightCraft reads, what happens with raws it cannot decode yet, and how to open Lightroom catalogs. +order: 20 +verified: 0.6.0 +--- + +LightCraft reads raw files from DNG, Canon CR2 and CR3, Sony ARW, Nikon NEF, Fujifilm RAF (including X-Trans), Panasonic RW2, Leica RWL, Pentax PEF and Olympus ORF cameras. It also opens JPEG, PNG, TIFF, WebP, PSD composites and JPEG XL. + +## What if my camera is not decoded yet? + +A raw that LightCraft cannot decode opens from the camera's embedded JPEG instead, marked **Preview only**. Compressed Olympus raws and some Canon CR3 variants work this way. See [A raw photo opens as "Preview only"](../troubleshooting/preview-only-raw.md). + +How closely the starting look matches your camera's own JPEG varies by model. See [Raw photos look dull or washed out](../troubleshooting/raw-photos-look-dull.md). The project's [raw support table](https://github.com/storytold/lightcraft/blob/main/docs/raw-parity.md) lists what is known per camera. + +## Can I open my Lightroom photos? + +Yes. LightCraft imports Lightroom Classic catalogs. See [Move over from Lightroom](../guides/import-lightroom-catalog.md). + +## What can I export? + +JPEG, PNG, TIFF, PSD, WebP, AVIF, JPEG XL and DNG, or the original files with XMP sidecars. See [Export photos](../guides/export-photos.md). diff --git a/docs/user/getting-started/index.md b/docs/user/getting-started/index.md new file mode 100644 index 000000000..7b7cef220 --- /dev/null +++ b/docs/user/getting-started/index.md @@ -0,0 +1,7 @@ +--- +title: Getting started +description: Install LightCraft on your computer and open your first library. +order: 10 +--- + +- [Install LightCraft](install.md) diff --git a/docs/user/getting-started/install.md b/docs/user/getting-started/install.md new file mode 100644 index 000000000..83b4579d2 --- /dev/null +++ b/docs/user/getting-started/install.md @@ -0,0 +1,55 @@ +--- +title: Install LightCraft +description: Download LightCraft for Windows 11, macOS or Linux, install it, and open your photo library. +order: 10 +verified: 0.6.0 +--- + +Download the file for your system from the [latest release](https://github.com/storytold/lightcraft/releases/latest) and install it. In the file names, `` stands for the version number, for example `0.6.0`. The [LightCraft page on getartcraft.com](https://getartcraft.com/apps/lightcraft) also links the download. + +## Windows 11 + +1. Open the [latest release](https://github.com/storytold/lightcraft/releases/latest). +2. Download `lightcraft--windows-x64.msi`. It fits most PCs (Intel and AMD, 64-bit). +3. Run the file. The installer asks where to install. The default is `C:\Program Files\LightCraft`, and upgrades stay in the folder you chose. +4. At the end, choose the option to start LightCraft. + +For a Snapdragon or other Arm PC, download `lightcraft--windows-arm64.msi` instead. The release also has an `x86` installer for 32-bit Windows. + +To run it without installing, download `lightcraft--windows-x64-portable.zip`. Portable builds for `arm64` and `x86` are on the release page too. + +## macOS + +1. Download `lightcraft--macos-universal.dmg`. It works on Apple silicon and Intel Macs, and is signed and notarized. +2. Open the file and install LightCraft. + +## Linux + +The release has these files for `x86_64` and `aarch64` (Arm). Replace `x86_64` with `aarch64` on Arm. + +| File | Notes | +|----------------------------------------------|----------------------------------------------------------| +| `lightcraft--linux-x86_64.AppImage` | Runs anywhere. | +| `lightcraft--linux-x86_64.flatpak` | Sandboxed. Install with `flatpak install --user `. | +| `lightcraft--linux-x86_64.deb` | For Debian and Ubuntu. | +| `lightcraft--linux-x86_64.rpm` | For Fedora, RHEL and openSUSE. | +| `lightcraft--linux-x86_64.tar.gz` | Unpack anywhere. | + +RISC-V and FreeBSD builds are on the release page too. On a Wayland desktop, LightCraft runs through XWayland when it is available, because only X11 gives it file drag-and-drop. + +## Install with ArtCraft Launcher + +[ArtCraft Launcher](https://getartcraft.com/docs/craft-launcher) lists LightCraft and can install and update it for you. On Windows it installs the release `.msi`. + +## In a web browser + +The release also has `lightcraft-web-.zip`, a static site that runs LightCraft in a modern browser. Host it on any static web server. + +## First run + +1. Start LightCraft. It opens your library at `~/Pictures/LightCraft Library`. A new library starts with demo photos. +2. To bring in your own photos, see [Import photos](../guides/import-photos.md). + +## Still stuck? + +Ask in [Discord](https://discord.gg/artcraft) or open an issue in the [issue tracker](https://github.com/storytold/lightcraft/issues). diff --git a/docs/user/guides/cull-photos.md b/docs/user/guides/cull-photos.md new file mode 100644 index 000000000..30d0b4759 --- /dev/null +++ b/docs/user/guides/cull-photos.md @@ -0,0 +1,40 @@ +--- +title: Rate, flag and label photos +description: Sort a shoot with star ratings, pick and reject flags and colour labels, from the keyboard or the Photo menu. +order: 20 +verified: 0.6.0 +--- + +Select photos in **Photo Grid** or **Square Grid**, then press a key: `1` to `5` for stars, `P` to pick, `X` to reject, `6` to `9` for a colour label. The same actions are in the **Photo** menu. + +## Steps + +1. Open the library in **View** > **Photo Grid** or **View** > **Square Grid**. +2. Click a photo to select it. Click more photos to build a selection, or use **Edit** > **Select All**. +3. Press a key: + + | Key | Action | + |--------------------|---------------------------------------------------------| + | `0` | Clear the star rating | + | `1` to `5` | Set the star rating | + | `[` and `]` | Lower or raise the rating by one, within 0 to 5 | + | `6`, `7`, `8`, `9` | Set a red, yellow, green or blue label | + | `P` | Flag as a pick | + | `X` | Flag as rejected | + | `U` | Clear the flag | + +4. To move on faster, hold `Shift` with a key. It applies the action and selects the next photo. Or turn on **Photo** > **Auto Advance** to move forward after every action. +5. For purple, or to clear a colour label, use **Photo** > **Set Color Label** or the photo's right-click menu. + +Rating, flag and label changes apply to every selected photo, and you can undo them with **Edit** > **Undo**. + +## Compare photos + +Choose **View** > **Compare** to see two photos side by side with synced zoom and pan, or **View** > **Survey** to see the selected photos tiled. The keys above then apply to the active photo only. + +## Good to know + +- **Rejected** only marks a photo for culling. It does not delete the original or remove it from the library. +- The sidebar has **Picks** for the photos you flagged. The search box understands fields, for example `rating:>3 flag:pick`. +- Choose **Help** > **Keyboard Shortcuts** to see every shortcut. +- Typing in a text field keeps the keys for typing. diff --git a/docs/user/guides/edit-a-photo.md b/docs/user/guides/edit-a-photo.md new file mode 100644 index 000000000..57c67138c --- /dev/null +++ b/docs/user/guides/edit-a-photo.md @@ -0,0 +1,39 @@ +--- +title: Edit a photo +description: Open a photo in the Edit panel, adjust Light, Color and Effects sliders, compare with the original, and undo or reset. +order: 30 +verified: 0.6.0 +--- + +Double-click a photo in the grid, then press `E` to open the **Edit** panel. Drag a slider to change the photo. Your original file is never changed, because edits are stored in the library. + +## Steps + +1. In **Photo Grid** or **Square Grid**, double-click the photo. It opens in the **Detail** view. +2. Press `E`, or choose **Window** > **Edit**, to open the **Edit** panel. +3. Click **Auto** for a first pass, or skip this step and start with the sliders. +4. Open the **Light** section and set **Exposure**, **Contrast**, **Highlights**, **Shadows**, **Whites** and **Blacks**. +5. Open the **Color** section to change **Vibrance** and **Saturation**. Open **Effects** for **Texture**, **Clarity** and **Dehaze**. The panel also has **Detail** and **Optics** sections. +6. Check your work against the original. Hold `\` to peek at the original. Press `Y` (**View** > **Compare Before and After**) to see before and after side by side. +7. To go back a step, choose **Edit** > **Undo**. To drop all edits on the photo, click **Reset** at the top of the **Edit** panel. + +## Black and white + +Click **B&W** at the top of the **Edit** panel to turn the photo monochrome. Click it again to return to colour. + +## Other edit tools + +Open them from the **Window** menu, or press the key shown next to each one: + +| Panel | Key | +|-------------------|-------------| +| **Crop & Rotate** | `C` | +| **Remove** | `H` | +| **Masking** | `M` | +| **Presets** | `Shift`+`P` | + +## Good to know + +- A raw photo that LightCraft cannot decode yet is edited from the camera's embedded JPEG. The **Edit** panel then shows **Preview only**. See [A raw photo opens as "Preview only"](../troubleshooting/preview-only-raw.md). +- When you zoom in on a large raw, the view can look soft for a few seconds while LightCraft renders the full-resolution pixels. +- To save the result as a file, see [Export photos](export-photos.md). diff --git a/docs/user/guides/export-photos.md b/docs/user/guides/export-photos.md new file mode 100644 index 000000000..784deb7ba --- /dev/null +++ b/docs/user/guides/export-photos.md @@ -0,0 +1,33 @@ +--- +title: Export photos +description: Save edited photos as JPEG, PNG, TIFF and other files with the size, folder and file names you choose. +order: 40 +verified: 0.6.0 +--- + +Select the photos, then choose **File** > **Export…**. Pick a format, a size and a folder, then click **OK**. Your originals are not changed. + +## Steps + +1. Select one or more photos in the grid. +2. Choose **File** > **Export…**. The **Export** window shows how many photos it will export. +3. Set **Format**: **JPEG**, **PNG**, **TIFF**, **PSD**, **WebP**, **AVIF**, **JPEG XL**, **DNG** or **Original files**. **DNG** writes raw photos as DNG with the edits embedded. **Original files** copies the files unchanged, each with an XMP sidecar that holds its edits. +4. For **JPEG**, **AVIF** or lossy **JPEG XL**, set **Quality**. For **JPEG XL**, tick **Lossless** to keep every pixel exactly, at the cost of larger files. +5. Under the size options, tick **Full size**, or clear it and choose **Resize to** one of **Long Edge**, **Short Edge**, **Width**, **Height**, **Width × Height**, **Megapixels** or **Percentage**, then enter the value. +6. Set **Color space** (**sRGB**, **P3**, **Adobe RGB**, **ProPhoto** or **Rec.2020**) if you need something other than the default. +7. Optional: set **Sharpen** for **Screen**, **Matte** or **Glossy** output, set **Metadata** to **All**, **No camera**, **Copyright** or **None**, and tick **Remove location info** or **Watermark**. +8. Next to **Folder**, click **Choose…** and pick where the files go. **Subfolder** adds a folder inside it. +9. Set **File name** to a template such as `{name}-{seq}`. Click **Tags** to see the tags you can insert. +10. Set **If file exists** to **Add number**, **Overwrite** or **Skip**. +11. Click **OK**. + +If you did not choose a folder, the window stays open and shows an error, so your choices are not lost. + +## Reuse your settings + +- To keep a set of choices, type a name next to **Save preset** and click **Save**. Pick it again later with **Preset** at the top of the window. +- **File** > **Export with Previous** repeats your last export. It tells you to use **Export…** first if you have not exported yet. + +## Contact sheet + +To make a PDF of thumbnails, select photos and choose **File** > **Contact Sheet PDF…**. diff --git a/docs/user/guides/import-lightroom-catalog.md b/docs/user/guides/import-lightroom-catalog.md new file mode 100644 index 000000000..e06705d9b --- /dev/null +++ b/docs/user/guides/import-lightroom-catalog.md @@ -0,0 +1,40 @@ +--- +title: Move over from Lightroom +description: Import a Lightroom Classic catalog into LightCraft, and learn what comes across and what does not. +order: 50 +verified: 0.6.0 +--- + +Choose **File** > **Import Lightroom Catalog…** and pick your `.lrcat` file. LightCraft reads it directly. You do not need Lightroom installed. + +## Steps + +1. Open the library you want the photos in. To start a new one, use **File** > **New Library…**. +2. Choose **File** > **Import Lightroom Catalog…**. +3. Pick your Lightroom Classic catalog, the file that ends in `.lrcat`. You can also give **File** > **Open Library…** a Lightroom catalog folder. LightCraft then offers this import instead of making a library there. +4. Wait for the import to finish. It shows progress and runs in the background. A message reports how many photos were added. + +If you change your mind, one **Edit** > **Undo** reverses the changes to the catalog. + +## What comes across + +- Ratings, picks and rejects, and colour labels +- Keywords, including hierarchical ones, and XMP metadata +- Collections and collection sets, which become albums +- Virtual copies +- Develop settings that LightCraft can map + +Original files stay where they are, and LightCraft refers to them in place. Photos whose originals are missing stay in the library so you can relink them later. LightCraft never changes your Lightroom catalog or your originals. + +## What does not match + +- Develop settings are an approximation. Camera profiles, Adobe's AI models and some masking and retouch fields are not reproduced, and settings LightCraft cannot map are reported. +- Smart collections become regular albums that hold the photos they contain at the time of import. +- Lightroom's process version is not carried over. Imported photos use LightCraft's newest rendering. + +## Good to know + +- Before it changes anything, LightCraft tries to save your source settings, history and collections in a recovery archive in the library's `Interop` folder. This is best effort. If it fails, the photos are still imported with a warning. +- Importing the same catalog again does not duplicate virtual copies or collections. By default, edits you already made in LightCraft are kept. +- A big catalog can take a long time. In one report, 38,000 photos took about 25 minutes from a USB SSD, and **Cancel** waited for the current work to finish. +- The browser version cannot import a catalog. diff --git a/docs/user/guides/import-photos.md b/docs/user/guides/import-photos.md new file mode 100644 index 000000000..13e1b5eec --- /dev/null +++ b/docs/user/guides/import-photos.md @@ -0,0 +1,33 @@ +--- +title: Import photos +description: Bring photos from a folder or card into your LightCraft library, in place or as copies. +order: 10 +verified: 0.6.0 +--- + +Use **File** > **Import Photos…** to pick files, or **File** > **Import from Folder…** to scan a whole folder. Both open the **Import Photos** window, where you choose what to bring in and how. + +## Steps + +1. Open the **File** menu and choose **Import Photos…** or **Import from Folder…**, then pick the files or the folder. +2. Look at the thumbnails. Every photo that can be imported has a checkbox. Click a photo to check or uncheck it. Shift-click sets a range. **Check All** and **Uncheck All** change every photo at once. +3. Photos already in your library are marked **Duplicate** or **In library** and start unchecked. A file LightCraft cannot read is marked **Unreadable**. +4. Under **Transfer**, choose how the files get into the library: + - **Add in place** keeps the files where they are. The library only points to them. Nothing is copied or moved. + - **Copy** copies the files into the library's `Originals` folder, or into a folder you pick with **Choose…** next to **Copy to**. + - **Move** does the same, then removes each original from its source once the copy is verified and catalogued. +5. With **Copy** or **Move**, set **Folders** to sort the copies **By day (YYYY/YYYY-MM-DD)**, **By month (YYYY/YYYY-MM)**, **Into one folder**, or with a **Custom template…**. Use **Rename** to give the files new names, for example `{date}_{seq:3}`. Leave it empty to keep the names. With **Copy**, **Copy as DNG** converts raw files to DNG. +6. Optional: set **Album** to add the photos to an existing album or a new one, **Preset** to apply a preset to every photo, and **Keywords** (separated by commas). +7. Click the button at the bottom. It shows the number of checked photos, for example **Import 24 Photos**. With **Move** it reads **Move 24 Photos**. + +The import runs in the background, and you can keep working while it does. The whole import is one undo step. + +## Good to know + +- Importing a folder scans it for photos. It does not add the folder to **Local**. To work in a folder without importing, use **Local** > **Browse Folder…**. +- Folder names and `{date}` use the capture time. A photo without one uses today's date. +- Raw formats LightCraft reads include DNG, Canon CR2 and CR3, Sony ARW, Nikon NEF, Fujifilm RAF, Panasonic RW2, Leica RWL, Pentax PEF and Olympus ORF. Some variants open as **Preview only**. See [A raw photo opens as "Preview only"](../troubleshooting/preview-only-raw.md). + +## Next + +[Rate, flag and label photos](cull-photos.md) to sort out the keepers. diff --git a/docs/user/guides/index.md b/docs/user/guides/index.md new file mode 100644 index 000000000..b3c656946 --- /dev/null +++ b/docs/user/guides/index.md @@ -0,0 +1,11 @@ +--- +title: Guides +description: How to do one thing in LightCraft. +order: 20 +--- + +- [Import photos](import-photos.md) +- [Rate, flag and label photos](cull-photos.md) +- [Edit a photo](edit-a-photo.md) +- [Export photos](export-photos.md) +- [Move over from Lightroom](import-lightroom-catalog.md) diff --git a/docs/user/index.md b/docs/user/index.md new file mode 100644 index 000000000..33b325098 --- /dev/null +++ b/docs/user/index.md @@ -0,0 +1,26 @@ +--- +title: LightCraft +description: LightCraft is a free, open-source photo library and raw developer, an alternative to Adobe Lightroom. +verified: 0.6.0 +--- + +LightCraft is a photo library and raw developer that runs on your own computer. It is an open-source alternative to Adobe Lightroom, written in Rust, and part of the Craft App Suite from the ArtCraft team. + +You import photos, sort them with ratings, flags and albums, and edit them without touching the originals. It reads raw files from Canon, Sony, Nikon, Fujifilm, Panasonic, Leica, Pentax and Olympus cameras, and DNG. There is no account, no cloud, no telemetry and no subscription. It runs on Windows, macOS and Linux, and in a web browser. LightCraft is in alpha, so expect rough edges. + +## Start here + +- [Install LightCraft](getting-started/install.md) +- [Import photos](guides/import-photos.md) +- [Rate, flag and label photos](guides/cull-photos.md) +- [Edit a photo](guides/edit-a-photo.md) +- [Export photos](guides/export-photos.md) +- [Move over from Lightroom](guides/import-lightroom-catalog.md) +- [A raw photo opens as "Preview only"](troubleshooting/preview-only-raw.md) +- [Raw photos look dull or washed out](troubleshooting/raw-photos-look-dull.md) +- [Get help with a problem](troubleshooting/get-help.md) +- [Frequently asked questions](faq/index.md) + +## Get help + +Ask in [Discord](https://discord.gg/artcraft) or open an issue in the [issue tracker](https://github.com/storytold/lightcraft/issues). Say which system and camera you use, and your LightCraft version (**Help** > **About LightCraft**). diff --git a/docs/user/troubleshooting/get-help.md b/docs/user/troubleshooting/get-help.md new file mode 100644 index 000000000..7764ee2cc --- /dev/null +++ b/docs/user/troubleshooting/get-help.md @@ -0,0 +1,26 @@ +--- +title: Get help with a problem +description: What to include when you ask for help with a LightCraft bug, and where to post it. +order: 30 +verified: 0.6.0 +--- + +Open an issue in the [issue tracker](https://github.com/storytold/lightcraft/issues), or ask in [Discord](https://discord.gg/artcraft). Include your version, your system, what you did, and what you expected. + +## What to include + +1. **Your version.** Choose **Help** > **About LightCraft**. +2. **Your system.** For example Windows 11, 64-bit. **Help** > **System Info…** shows details about your computer. +3. **The steps.** What you clicked, in order, and what happened. +4. **The camera and file type**, if the problem is with a photo. +5. **A sample file**, if a raw or other photo renders wrong. Maintainers ask for the original file, not an export. A link to a shared folder works. Uploading raws to [raw.pixls.us](https://raw.pixls.us) also helps, because every file there becomes a permanent test sample for that camera. +6. **A screenshot** of LightCraft next to the camera JPEG or the other app, for colour problems. +7. **The log file.** Choose **Help** > **Open Log Folder** and attach `lightcraft.log`. + +## Where the log is + +LightCraft writes its log to `logs/lightcraft.log` in its settings folder. On Windows that is `%APPDATA%\LightCraft\logs\`. Each start moves the previous log to `lightcraft.1.log`, and that one to `lightcraft.2.log`, so the log of a run that crashed survives the next start. + +## Still stuck? + +Ask in [Discord](https://discord.gg/artcraft). diff --git a/docs/user/troubleshooting/index.md b/docs/user/troubleshooting/index.md new file mode 100644 index 000000000..b82ed2e86 --- /dev/null +++ b/docs/user/troubleshooting/index.md @@ -0,0 +1,9 @@ +--- +title: Troubleshooting +description: Fixes for common LightCraft problems. +order: 30 +--- + +- [A raw photo opens as "Preview only"](preview-only-raw.md) +- [Raw photos look dull or washed out](raw-photos-look-dull.md) +- [Get help with a problem](get-help.md) diff --git a/docs/user/troubleshooting/preview-only-raw.md b/docs/user/troubleshooting/preview-only-raw.md new file mode 100644 index 000000000..af7720a37 --- /dev/null +++ b/docs/user/troubleshooting/preview-only-raw.md @@ -0,0 +1,31 @@ +--- +title: A raw photo opens as "Preview only" +description: Why LightCraft shows a raw photo as Preview only, and how to make it decode after an update with Reload from Disk. +order: 10 +verified: 0.6.0 +--- + +Select the photo and choose **Photo** > **Reload from Disk**. If your version can decode that raw now, LightCraft reads the sensor data again and the **Preview only** notice goes away. + +## Symptoms + +- The **Edit** panel shows **Preview only**, with the text "LightCraft can't decode this raw variant yet" and the name of the variant. +- You updated LightCraft to a version that supports your camera, and the photo still looks the same. + +## Fix + +1. In the grid, select the photos that show **Preview only**. +2. Choose **Photo** > **Reload from Disk**. The right-click menu on a photo has the same entry. +3. Open a photo again. If **Preview only** is gone, the photo is now decoded from the raw data. + +If **Preview only** stays, your version still cannot decode that raw variant. Update to the [latest release](https://github.com/storytold/lightcraft/releases/latest) and try again, or report the file as described in [Get help with a problem](get-help.md). + +## Why this happens + +When LightCraft cannot decode a raw on import, it remembers that and shows the camera's embedded JPEG. It does not check again after an update on its own. **Reload from Disk** is the way to make it check, and importing the photos again works too. Compressed Olympus raws and some Canon CR3 variants are examples of files that use the embedded preview. + +Photos shown from the preview keep the camera's picture style and white balance, because they are the camera's own JPEG. + +## Still stuck? + +Ask in [Discord](https://discord.gg/artcraft) or open an issue in the [issue tracker](https://github.com/storytold/lightcraft/issues). diff --git a/docs/user/troubleshooting/raw-photos-look-dull.md b/docs/user/troubleshooting/raw-photos-look-dull.md new file mode 100644 index 000000000..0b0883412 --- /dev/null +++ b/docs/user/troubleshooting/raw-photos-look-dull.md @@ -0,0 +1,38 @@ +--- +title: Raw photos look dull or washed out +description: What to do when a raw photo looks flat, grey or desaturated in LightCraft compared with the camera JPEG. +order: 20 +verified: 0.6.0 +--- + +Update to the latest LightCraft, then import the photo again. Colour handling for raw files changed a lot between 0.4.0, 0.5.0 and 0.6.0, and several flat-looking Sony and Fujifilm cases are fixed. Some Leica DNGs still look dull. + +## Symptoms + +- A raw photo looks flat, grey or desaturated as soon as you open it. +- The preview or thumbnail looks right, but the opened photo does not. +- Blacks look lifted, and the shadows look grey. + +## Fix + +1. Check your version in **Help** > **About LightCraft**. If it is older than 0.6.0, install the [latest release](https://github.com/storytold/lightcraft/releases/latest). See [Install LightCraft](../getting-started/install.md). +2. Import the raw photo again, or select it and choose **Photo** > **Reload from Disk**. +3. If it still looks dull, adjust it by hand in the **Edit** panel. See [Edit a photo](../guides/edit-a-photo.md). +4. If you think the starting look is wrong for your camera, report it with the original raw file. See [Get help with a problem](get-help.md). + +## Why this happens + +LightCraft develops a raw from the sensor data and tries to match the look of the camera's own JPEG. How well it matches depends on the camera model. + +- **Sony ARW:** on 0.5.0 and older, some Lossless Compressed M-size files had lifted blacks, and an A7 II file lost most of its colour. Both were fixed after 0.5.0. The A7 II colour fix is in 0.6.0. Some files still fall short on dark scenes and on in-camera Dynamic Range Optimizer shots. +- **Fujifilm X-Pro1 and Sony A7 IV:** reported dull on 0.4.0 and fine on 0.6.0. +- **Leica DNG:** these files carry a colour matrix but no tone curve, so 0.6.0 shows them darker and flatter than the camera JPEG. A fix was waiting for review at the time of writing. +- **Adobe RGB:** if the camera was set to Adobe RGB, LightCraft read the embedded JPEG as sRGB and matched to a too-dull target. The fix came after 0.6.0 and ships in a later release. + +## A soft picture after zooming in + +If a large raw looks soft right after you zoom in, wait a few seconds. LightCraft first shows the fit-size picture enlarged, then renders the zoomed area from the full-resolution raw and swaps it in. On a 61 MP file this can take a few seconds. If it stays soft at **Zoom 100%** (**View** > **Zoom 100%**), report it. + +## Still stuck? + +Ask in [Discord](https://discord.gg/artcraft) or open an issue in the [issue tracker](https://github.com/storytold/lightcraft/issues). From 675e661710620e449c4a6ea118b3544df2e76951 Mon Sep 17 00:00:00 2001 From: Fabio Lussi <198260595+itrycodinganditsbad@users.noreply.github.com> Date: Mon, 12 Oct 2026 04:49:21 +0200 Subject: [PATCH 2/7] docs(user): apply final review fixes Items B-LightCraft 1-5 and consistency. Co-Authored-By: Claude Opus 5.5 --- docs/user/getting-started/install.md | 5 ++--- docs/user/index.md | 2 +- docs/user/troubleshooting/get-help.md | 2 +- docs/user/troubleshooting/raw-photos-look-dull.md | 8 ++++---- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/user/getting-started/install.md b/docs/user/getting-started/install.md index 83b4579d2..f53bb7de0 100644 --- a/docs/user/getting-started/install.md +++ b/docs/user/getting-started/install.md @@ -14,9 +14,8 @@ Download the file for your system from the [latest release](https://github.com/s 3. Run the file. The installer asks where to install. The default is `C:\Program Files\LightCraft`, and upgrades stay in the folder you chose. 4. At the end, choose the option to start LightCraft. -For a Snapdragon or other Arm PC, download `lightcraft--windows-arm64.msi` instead. The release also has an `x86` installer for 32-bit Windows. - -To run it without installing, download `lightcraft--windows-x64-portable.zip`. Portable builds for `arm64` and `x86` are on the release page too. +For a Snapdragon or other Arm PC, download `lightcraft--windows-arm64.msi` instead. +To run it without installing, download `lightcraft--windows-x64-portable.zip`. A portable build for `arm64` is on the release page too. ## macOS diff --git a/docs/user/index.md b/docs/user/index.md index 33b325098..08e631e72 100644 --- a/docs/user/index.md +++ b/docs/user/index.md @@ -23,4 +23,4 @@ You import photos, sort them with ratings, flags and albums, and edit them witho ## Get help -Ask in [Discord](https://discord.gg/artcraft) or open an issue in the [issue tracker](https://github.com/storytold/lightcraft/issues). Say which system and camera you use, and your LightCraft version (**Help** > **About LightCraft**). +Ask in [Discord](https://discord.gg/artcraft) or open an issue in the [issue tracker](https://github.com/storytold/lightcraft/issues). Say which system and camera you use, and your LightCraft version (**Help** > **About LightCraft**; on macOS, **LightCraft** > **About LightCraft**). diff --git a/docs/user/troubleshooting/get-help.md b/docs/user/troubleshooting/get-help.md index 7764ee2cc..0eea58be9 100644 --- a/docs/user/troubleshooting/get-help.md +++ b/docs/user/troubleshooting/get-help.md @@ -9,7 +9,7 @@ Open an issue in the [issue tracker](https://github.com/storytold/lightcraft/iss ## What to include -1. **Your version.** Choose **Help** > **About LightCraft**. +1. **Your version.** Choose **Help** > **About LightCraft** (on macOS, **LightCraft** > **About LightCraft**). 2. **Your system.** For example Windows 11, 64-bit. **Help** > **System Info…** shows details about your computer. 3. **The steps.** What you clicked, in order, and what happened. 4. **The camera and file type**, if the problem is with a photo. diff --git a/docs/user/troubleshooting/raw-photos-look-dull.md b/docs/user/troubleshooting/raw-photos-look-dull.md index 0b0883412..94c615394 100644 --- a/docs/user/troubleshooting/raw-photos-look-dull.md +++ b/docs/user/troubleshooting/raw-photos-look-dull.md @@ -15,7 +15,7 @@ Update to the latest LightCraft, then import the photo again. Colour handling fo ## Fix -1. Check your version in **Help** > **About LightCraft**. If it is older than 0.6.0, install the [latest release](https://github.com/storytold/lightcraft/releases/latest). See [Install LightCraft](../getting-started/install.md). +1. Check your version in **Help** > **About LightCraft** (on macOS, **LightCraft** > **About LightCraft**). If it is older than 0.6.0, install the [latest release](https://github.com/storytold/lightcraft/releases/latest). See [Install LightCraft](../getting-started/install.md). 2. Import the raw photo again, or select it and choose **Photo** > **Reload from Disk**. 3. If it still looks dull, adjust it by hand in the **Edit** panel. See [Edit a photo](../guides/edit-a-photo.md). 4. If you think the starting look is wrong for your camera, report it with the original raw file. See [Get help with a problem](get-help.md). @@ -24,10 +24,10 @@ Update to the latest LightCraft, then import the photo again. Colour handling fo LightCraft develops a raw from the sensor data and tries to match the look of the camera's own JPEG. How well it matches depends on the camera model. -- **Sony ARW:** on 0.5.0 and older, some Lossless Compressed M-size files had lifted blacks, and an A7 II file lost most of its colour. Both were fixed after 0.5.0. The A7 II colour fix is in 0.6.0. Some files still fall short on dark scenes and on in-camera Dynamic Range Optimizer shots. +- **Sony ARW:** on 0.5.0 and older, some Lossless Compressed M-size files had lifted blacks, and an A7 II file lost most of its colour. Both are fixed in 0.6.0. On the A7 II file, brighter midtones can still look grey-green in 0.6.0 ([issue 865](https://github.com/storytold/lightcraft/issues/865)). Some files still fall short on dark scenes and on in-camera Dynamic Range Optimizer shots. - **Fujifilm X-Pro1 and Sony A7 IV:** reported dull on 0.4.0 and fine on 0.6.0. -- **Leica DNG:** these files carry a colour matrix but no tone curve, so 0.6.0 shows them darker and flatter than the camera JPEG. A fix was waiting for review at the time of writing. -- **Adobe RGB:** if the camera was set to Adobe RGB, LightCraft read the embedded JPEG as sRGB and matched to a too-dull target. The fix came after 0.6.0 and ships in a later release. +- **Leica DNG:** these files carry a colour matrix but no tone curve, so 0.6.0 shows them darker and flatter than the camera JPEG. This is not fixed in 0.6.0 ([pull request 807](https://github.com/storytold/lightcraft/pull/807)). +- **Adobe RGB:** if the camera was set to Adobe RGB, LightCraft read the embedded JPEG as sRGB and matched to a too-dull target. The fix came after 0.6.0 and is not in a release yet. ## A soft picture after zooming in From d3690e76c4fde13dc13ff046f7f114c566b659b3 Mon Sep 17 00:00:00 2001 From: Fabio Lussi <198260595+itrycodinganditsbad@users.noreply.github.com> Date: Mon, 12 Oct 2026 05:06:01 +0200 Subject: [PATCH 3/7] docs(user): apply final review fixes Part 1: verified = latest release tag policy in docs/user/AGENTS.md; released-pages sentence in root AGENTS.md. Part 6: blank line in install. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 2 ++ docs/user/AGENTS.md | 3 +-- docs/user/getting-started/install.md | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f2082f7a5..e2662e69e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -99,6 +99,8 @@ of it. Full standard: `../craftrules/standards/never-crash.md` User docs live in `docs/user/` and are published at https://getartcraft.com/docs/lightcraft. If a change alters something a user sees or does (menu or panel labels, import, export, install, errors), update the matching page in `docs/user/` in the same commit, or add one. Rules: `docs/user/AGENTS.md`; the checker runs in `docs-check.yml`. +Pages describe the latest release. For a change that is not released yet, write that it was added after +and is not in a release yet, or update the page when the release ships. ## Running and looking at the app - `cargo run --release -p lightcraft -- --control 7980` opens the desktop app with the JSON-lines control server (see `docs/control-protocol.md`). diff --git a/docs/user/AGENTS.md b/docs/user/AGENTS.md index b9f904814..3ac4f0e20 100644 --- a/docs/user/AGENTS.md +++ b/docs/user/AGENTS.md @@ -35,8 +35,7 @@ things up for either. Write for a photographer, not a developer. Only `key: value` and `key: [a, b]` lines work. Quote values that start with a quote or contain ` #`. -Set `verified` to the workspace `version` in `Cargo.toml` whenever you check a -page against the current code. +Set `verified` to the latest release (the newest release tag) after checking the page against that tag with `git show :`. Pages describe the latest release users download, not unreleased code on main. ## Folders diff --git a/docs/user/getting-started/install.md b/docs/user/getting-started/install.md index f53bb7de0..689d2c876 100644 --- a/docs/user/getting-started/install.md +++ b/docs/user/getting-started/install.md @@ -15,6 +15,7 @@ Download the file for your system from the [latest release](https://github.com/s 4. At the end, choose the option to start LightCraft. For a Snapdragon or other Arm PC, download `lightcraft--windows-arm64.msi` instead. + To run it without installing, download `lightcraft--windows-x64-portable.zip`. A portable build for `arm64` is on the release page too. ## macOS From 7fe040f66aa1ffbaf87072bd28c7e6a5aef4df60 Mon Sep 17 00:00:00 2001 From: Fabio Lussi <198260595+itrycodinganditsbad@users.noreply.github.com> Date: Mon, 12 Oct 2026 07:13:41 +0200 Subject: [PATCH 4/7] docs: pin the docs checker to a commit and its SHA-256 Co-Authored-By: Claude Opus 5.5 --- .github/workflows/docs-check.yml | 19 ++++++++++--------- docs/user/AGENTS.md | 5 +++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml index b89a00a88..079b9d414 100644 --- a/.github/workflows/docs-check.yml +++ b/.github/workflows/docs-check.yml @@ -10,6 +10,12 @@ on: permissions: contents: read +env: + # Shared docs checker from storytold/artcraft-services, pinned to one commit + # and its SHA-256. To update it, change both values in a reviewed PR. + CHECKER_COMMIT: 4db0e30fe2c57a1c4c49e390e3711f90910b8d23 + CHECKER_SHA256: bd6b610a708b85fd0aa0491c459bd2800b716e0b8050516fea79e084cfb2a624 + jobs: check: runs-on: ubuntu-latest @@ -18,15 +24,10 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 22 - - name: Download the shared docs checker - id: fetch + - name: Download the pinned docs checker run: | - url=https://raw.githubusercontent.com/storytold/artcraft-services/main/frontend/apps/artcraft-website-next/scripts/docs/core.mjs - if curl -fsSL "$url" -o "$RUNNER_TEMP/docs-core.mjs"; then - echo "ok=1" >> "$GITHUB_OUTPUT" - else - echo "::warning::The docs checker is not published yet; skipping." - fi + url="https://raw.githubusercontent.com/storytold/artcraft-services/$CHECKER_COMMIT/frontend/apps/artcraft-website-next/scripts/docs/core.mjs" + curl -fsSL "$url" -o "$RUNNER_TEMP/docs-core.mjs" + echo "$CHECKER_SHA256 $RUNNER_TEMP/docs-core.mjs" | sha256sum -c - - name: Check docs/user - if: steps.fetch.outputs.ok == '1' run: node "$RUNNER_TEMP/docs-core.mjs" docs/user diff --git a/docs/user/AGENTS.md b/docs/user/AGENTS.md index 3ac4f0e20..41bbdb986 100644 --- a/docs/user/AGENTS.md +++ b/docs/user/AGENTS.md @@ -50,10 +50,11 @@ drafts and are not published. ## Check before you push - curl -fsSL https://raw.githubusercontent.com/storytold/artcraft-services/main/frontend/apps/artcraft-website-next/scripts/docs/core.mjs -o /tmp/docs-core.mjs + commit=$(awk '/CHECKER_COMMIT:/ {print $2}' .github/workflows/docs-check.yml) + curl -fsSL "https://raw.githubusercontent.com/storytold/artcraft-services/$commit/frontend/apps/artcraft-website-next/scripts/docs/core.mjs" -o /tmp/docs-core.mjs node /tmp/docs-core.mjs docs/user -CI runs the same check on every PR that touches `docs/user/`. +This uses the same pinned checker as CI (`.github/workflows/docs-check.yml`). ## Support PRs From 29ed7037941511ed2d6fe2714a19ef46f5cb5f72 Mon Sep 17 00:00:00 2001 From: Fabio Lussi <198260595+itrycodinganditsbad@users.noreply.github.com> Date: Mon, 12 Oct 2026 08:09:17 +0200 Subject: [PATCH 5/7] docs: drop the docs workflows until the checker is on artcraft-services main Co-Authored-By: Claude Opus 5.5 --- .github/workflows/docs-check.yml | 33 ------------------------------ .github/workflows/docs-publish.yml | 22 -------------------- AGENTS.md | 2 +- docs/user/AGENTS.md | 6 ++---- 4 files changed, 3 insertions(+), 60 deletions(-) delete mode 100644 .github/workflows/docs-check.yml delete mode 100644 .github/workflows/docs-publish.yml diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml deleted file mode 100644 index 079b9d414..000000000 --- a/.github/workflows/docs-check.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: docs-check - -on: - pull_request: - paths: ["docs/user/**"] - push: - branches: [main] - paths: ["docs/user/**"] - -permissions: - contents: read - -env: - # Shared docs checker from storytold/artcraft-services, pinned to one commit - # and its SHA-256. To update it, change both values in a reviewed PR. - CHECKER_COMMIT: 4db0e30fe2c57a1c4c49e390e3711f90910b8d23 - CHECKER_SHA256: bd6b610a708b85fd0aa0491c459bd2800b716e0b8050516fea79e084cfb2a624 - -jobs: - check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 22 - - name: Download the pinned docs checker - run: | - url="https://raw.githubusercontent.com/storytold/artcraft-services/$CHECKER_COMMIT/frontend/apps/artcraft-website-next/scripts/docs/core.mjs" - curl -fsSL "$url" -o "$RUNNER_TEMP/docs-core.mjs" - echo "$CHECKER_SHA256 $RUNNER_TEMP/docs-core.mjs" | sha256sum -c - - - name: Check docs/user - run: node "$RUNNER_TEMP/docs-core.mjs" docs/user diff --git a/.github/workflows/docs-publish.yml b/.github/workflows/docs-publish.yml deleted file mode 100644 index df4a412cc..000000000 --- a/.github/workflows/docs-publish.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: docs-publish - -on: - push: - branches: [main] - paths: ["docs/user/**"] - -permissions: {} - -jobs: - rebuild: - runs-on: ubuntu-latest - steps: - - name: Rebuild getartcraft.com - env: - HOOK: ${{ secrets.DOCS_BUILD_HOOK }} - run: | - if [ -z "$HOOK" ]; then - echo "DOCS_BUILD_HOOK is not set; the nightly website build will pick this up." - exit 0 - fi - curl -fsS -X POST -d '{}' "$HOOK?trigger_title=docs%20update%20from%20$GITHUB_REPOSITORY" diff --git a/AGENTS.md b/AGENTS.md index e2662e69e..8f917dd09 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -98,7 +98,7 @@ of it. Full standard: `../craftrules/standards/never-crash.md` ## User docs User docs live in `docs/user/` and are published at https://getartcraft.com/docs/lightcraft. If a change alters something a user sees or does (menu or panel labels, import, export, install, errors), update the matching page in -`docs/user/` in the same commit, or add one. Rules: `docs/user/AGENTS.md`; the checker runs in `docs-check.yml`. +`docs/user/` in the same commit, or add one. Rules: `docs/user/AGENTS.md`. Pages describe the latest release. For a change that is not released yet, write that it was added after and is not in a release yet, or update the page when the release ships. diff --git a/docs/user/AGENTS.md b/docs/user/AGENTS.md index 41bbdb986..abb8cf8f7 100644 --- a/docs/user/AGENTS.md +++ b/docs/user/AGENTS.md @@ -50,11 +50,9 @@ drafts and are not published. ## Check before you push - commit=$(awk '/CHECKER_COMMIT:/ {print $2}' .github/workflows/docs-check.yml) - curl -fsSL "https://raw.githubusercontent.com/storytold/artcraft-services/$commit/frontend/apps/artcraft-website-next/scripts/docs/core.mjs" -o /tmp/docs-core.mjs - node /tmp/docs-core.mjs docs/user + node /frontend/apps/artcraft-website-next/scripts/docs/core.mjs docs/user -This uses the same pinned checker as CI (`.github/workflows/docs-check.yml`). +The checker lives in storytold/artcraft-services. A CI check will be added once it is on that repo's main branch. ## Support PRs From e665aff1b3124e3dbdbe29a571388fc1e26aab26 Mon Sep 17 00:00:00 2001 From: Fabio Lussi <198260595+itrycodinganditsbad@users.noreply.github.com> Date: Tue, 13 Oct 2026 14:34:54 +0200 Subject: [PATCH 6/7] docs: re-verify against 0.7.1 - All pages checked against the v0.7.1 tag and its release assets; verified: bumped to 0.7.1. - Install: 32-bit Windows (x86) installer and portable build; pre-0.6 upgrades keep their install folder. - Import: Recently Deleted photos are restored by default; progress shows in the activity stack. - Edit: HDR button next to B&W. - Export: JPEG XL Effort and Progressive, lossy JPEG XL colour space note, Add to Apple Photos on macOS. - Lightroom import: activity stack progress and stopping with its X. - Raw troubleshooting: Adobe RGB fix now released, monochrome picture style tone, EOS R5 Mark II C-RAW decodes, Leica DNG and dark scenes still open; drop "import again" (duplicates are skipped). - docs/user/CLAUDE.md is a regular file instead of a symlink. Co-Authored-By: Claude Opus 5.5 --- docs/user/CLAUDE.md | 2 +- docs/user/faq/free-and-private.md | 2 +- docs/user/faq/supported-files.md | 4 ++-- docs/user/getting-started/install.md | 10 ++++++---- docs/user/guides/cull-photos.md | 2 +- docs/user/guides/edit-a-photo.md | 6 +++++- docs/user/guides/export-photos.md | 9 +++++---- docs/user/guides/import-lightroom-catalog.md | 7 ++++--- docs/user/guides/import-photos.md | 6 +++--- docs/user/index.md | 2 +- docs/user/troubleshooting/get-help.md | 2 +- docs/user/troubleshooting/preview-only-raw.md | 6 ++++-- .../user/troubleshooting/raw-photos-look-dull.md | 16 +++++++++------- 13 files changed, 43 insertions(+), 31 deletions(-) mode change 120000 => 100644 docs/user/CLAUDE.md diff --git a/docs/user/CLAUDE.md b/docs/user/CLAUDE.md deleted file mode 120000 index 47dc3e3d8..000000000 --- a/docs/user/CLAUDE.md +++ /dev/null @@ -1 +0,0 @@ -AGENTS.md \ No newline at end of file diff --git a/docs/user/CLAUDE.md b/docs/user/CLAUDE.md new file mode 100644 index 000000000..e7bcfb70e --- /dev/null +++ b/docs/user/CLAUDE.md @@ -0,0 +1 @@ +Read `AGENTS.md` in this folder: it has the rules for the user docs. diff --git a/docs/user/faq/free-and-private.md b/docs/user/faq/free-and-private.md index 28f7104d2..7eb64052e 100644 --- a/docs/user/faq/free-and-private.md +++ b/docs/user/faq/free-and-private.md @@ -2,7 +2,7 @@ title: Is LightCraft free, and does it need an account? description: LightCraft is free and open source, needs no account or subscription, and keeps your library on your computer. order: 10 -verified: 0.6.0 +verified: 0.7.1 --- Yes, it is free. LightCraft is open source under the MIT or Apache-2.0 licence, your choice. It needs no account, no cloud service and no subscription, and it sends no telemetry. diff --git a/docs/user/faq/supported-files.md b/docs/user/faq/supported-files.md index 65da107ff..143276f13 100644 --- a/docs/user/faq/supported-files.md +++ b/docs/user/faq/supported-files.md @@ -2,14 +2,14 @@ title: Which cameras and file types does LightCraft open? description: The raw and image formats LightCraft reads, what happens with raws it cannot decode yet, and how to open Lightroom catalogs. order: 20 -verified: 0.6.0 +verified: 0.7.1 --- LightCraft reads raw files from DNG, Canon CR2 and CR3, Sony ARW, Nikon NEF, Fujifilm RAF (including X-Trans), Panasonic RW2, Leica RWL, Pentax PEF and Olympus ORF cameras. It also opens JPEG, PNG, TIFF, WebP, PSD composites and JPEG XL. ## What if my camera is not decoded yet? -A raw that LightCraft cannot decode opens from the camera's embedded JPEG instead, marked **Preview only**. Compressed Olympus raws and some Canon CR3 variants work this way. See [A raw photo opens as "Preview only"](../troubleshooting/preview-only-raw.md). +A raw that LightCraft cannot decode opens from the camera's embedded JPEG instead, marked **Preview only**. Compressed Olympus raws, some Canon CR3 variants and Nikon High Efficiency NEF files work this way. See [A raw photo opens as "Preview only"](../troubleshooting/preview-only-raw.md). How closely the starting look matches your camera's own JPEG varies by model. See [Raw photos look dull or washed out](../troubleshooting/raw-photos-look-dull.md). The project's [raw support table](https://github.com/storytold/lightcraft/blob/main/docs/raw-parity.md) lists what is known per camera. diff --git a/docs/user/getting-started/install.md b/docs/user/getting-started/install.md index 689d2c876..8327222cb 100644 --- a/docs/user/getting-started/install.md +++ b/docs/user/getting-started/install.md @@ -2,10 +2,10 @@ title: Install LightCraft description: Download LightCraft for Windows 11, macOS or Linux, install it, and open your photo library. order: 10 -verified: 0.6.0 +verified: 0.7.1 --- -Download the file for your system from the [latest release](https://github.com/storytold/lightcraft/releases/latest) and install it. In the file names, `` stands for the version number, for example `0.6.0`. The [LightCraft page on getartcraft.com](https://getartcraft.com/apps/lightcraft) also links the download. +Download the file for your system from the [latest release](https://github.com/storytold/lightcraft/releases/latest) and install it. In the file names, `` stands for the version number, for example `0.7.1`. The [LightCraft page on getartcraft.com](https://getartcraft.com/apps/lightcraft) also links the download. ## Windows 11 @@ -14,9 +14,11 @@ Download the file for your system from the [latest release](https://github.com/s 3. Run the file. The installer asks where to install. The default is `C:\Program Files\LightCraft`, and upgrades stay in the folder you chose. 4. At the end, choose the option to start LightCraft. -For a Snapdragon or other Arm PC, download `lightcraft--windows-arm64.msi` instead. +For a Snapdragon or other Arm PC, download `lightcraft--windows-arm64.msi` instead. For a 32-bit Windows, download `lightcraft--windows-x86.msi`. -To run it without installing, download `lightcraft--windows-x64-portable.zip`. A portable build for `arm64` is on the release page too. +Upgrading from an installer older than 0.6.0 also keeps LightCraft in the folder it was installed in. If that folder was deleted, the upgrade installs to `C:\Program Files\LightCraft`. + +To run it without installing, download `lightcraft--windows-x64-portable.zip`. Portable builds for `arm64` and `x86` are on the release page too. ## macOS diff --git a/docs/user/guides/cull-photos.md b/docs/user/guides/cull-photos.md index 30d0b4759..ae76982e9 100644 --- a/docs/user/guides/cull-photos.md +++ b/docs/user/guides/cull-photos.md @@ -2,7 +2,7 @@ title: Rate, flag and label photos description: Sort a shoot with star ratings, pick and reject flags and colour labels, from the keyboard or the Photo menu. order: 20 -verified: 0.6.0 +verified: 0.7.1 --- Select photos in **Photo Grid** or **Square Grid**, then press a key: `1` to `5` for stars, `P` to pick, `X` to reject, `6` to `9` for a colour label. The same actions are in the **Photo** menu. diff --git a/docs/user/guides/edit-a-photo.md b/docs/user/guides/edit-a-photo.md index 57c67138c..126324159 100644 --- a/docs/user/guides/edit-a-photo.md +++ b/docs/user/guides/edit-a-photo.md @@ -2,7 +2,7 @@ title: Edit a photo description: Open a photo in the Edit panel, adjust Light, Color and Effects sliders, compare with the original, and undo or reset. order: 30 -verified: 0.6.0 +verified: 0.7.1 --- Double-click a photo in the grid, then press `E` to open the **Edit** panel. Drag a slider to change the photo. Your original file is never changed, because edits are stored in the library. @@ -21,6 +21,10 @@ Double-click a photo in the grid, then press `E` to open the **Edit** panel. Dra Click **B&W** at the top of the **Edit** panel to turn the photo monochrome. Click it again to return to colour. +## HDR + +Click **HDR**, next to **B&W**, to edit the photo in HDR, with highlights brighter than SDR white for HDR exports. LightCraft cannot show HDR on an HDR screen yet, so you edit without seeing the extra brightness. + ## Other edit tools Open them from the **Window** menu, or press the key shown next to each one: diff --git a/docs/user/guides/export-photos.md b/docs/user/guides/export-photos.md index 784deb7ba..71bca3241 100644 --- a/docs/user/guides/export-photos.md +++ b/docs/user/guides/export-photos.md @@ -2,7 +2,7 @@ title: Export photos description: Save edited photos as JPEG, PNG, TIFF and other files with the size, folder and file names you choose. order: 40 -verified: 0.6.0 +verified: 0.7.1 --- Select the photos, then choose **File** > **Export…**. Pick a format, a size and a folder, then click **OK**. Your originals are not changed. @@ -12,14 +12,15 @@ Select the photos, then choose **File** > **Export…**. Pick a format, a size a 1. Select one or more photos in the grid. 2. Choose **File** > **Export…**. The **Export** window shows how many photos it will export. 3. Set **Format**: **JPEG**, **PNG**, **TIFF**, **PSD**, **WebP**, **AVIF**, **JPEG XL**, **DNG** or **Original files**. **DNG** writes raw photos as DNG with the edits embedded. **Original files** copies the files unchanged, each with an XMP sidecar that holds its edits. -4. For **JPEG**, **AVIF** or lossy **JPEG XL**, set **Quality**. For **JPEG XL**, tick **Lossless** to keep every pixel exactly, at the cost of larger files. +4. For **JPEG**, **AVIF** or lossy **JPEG XL**, set **Quality**. For **JPEG XL**, tick **Lossless** to keep every pixel exactly, at the cost of larger files. **Effort** trades time for file size, and **Progressive** makes the file show a coarse version first while it loads. 5. Under the size options, tick **Full size**, or clear it and choose **Resize to** one of **Long Edge**, **Short Edge**, **Width**, **Height**, **Width × Height**, **Megapixels** or **Percentage**, then enter the value. -6. Set **Color space** (**sRGB**, **P3**, **Adobe RGB**, **ProPhoto** or **Rec.2020**) if you need something other than the default. +6. Set **Color space** (**sRGB**, **P3**, **Adobe RGB**, **ProPhoto** or **Rec.2020**) if you need something other than the default. Lossy **JPEG XL** writes **Adobe RGB** and **ProPhoto** as **Rec.2020**. Tick **Lossless** to keep them. 7. Optional: set **Sharpen** for **Screen**, **Matte** or **Glossy** output, set **Metadata** to **All**, **No camera**, **Copyright** or **None**, and tick **Remove location info** or **Watermark**. 8. Next to **Folder**, click **Choose…** and pick where the files go. **Subfolder** adds a folder inside it. 9. Set **File name** to a template such as `{name}-{seq}`. Click **Tags** to see the tags you can insert. 10. Set **If file exists** to **Add number**, **Overwrite** or **Skip**. -11. Click **OK**. +11. On macOS, tick **Add to Apple Photos** to add the exported files to Photos as well. Type an **Album** name to put them in that album. The first time, macOS asks whether LightCraft may control Photos. +12. Click **OK**. The export shows its progress in the activity stack at the top left. If you did not choose a folder, the window stays open and shows an error, so your choices are not lost. diff --git a/docs/user/guides/import-lightroom-catalog.md b/docs/user/guides/import-lightroom-catalog.md index e06705d9b..df26df566 100644 --- a/docs/user/guides/import-lightroom-catalog.md +++ b/docs/user/guides/import-lightroom-catalog.md @@ -2,7 +2,7 @@ title: Move over from Lightroom description: Import a Lightroom Classic catalog into LightCraft, and learn what comes across and what does not. order: 50 -verified: 0.6.0 +verified: 0.7.1 --- Choose **File** > **Import Lightroom Catalog…** and pick your `.lrcat` file. LightCraft reads it directly. You do not need Lightroom installed. @@ -12,7 +12,7 @@ Choose **File** > **Import Lightroom Catalog…** and pick your `.lrcat` file. L 1. Open the library you want the photos in. To start a new one, use **File** > **New Library…**. 2. Choose **File** > **Import Lightroom Catalog…**. 3. Pick your Lightroom Classic catalog, the file that ends in `.lrcat`. You can also give **File** > **Open Library…** a Lightroom catalog folder. LightCraft then offers this import instead of making a library there. -4. Wait for the import to finish. It shows progress and runs in the background. A message reports how many photos were added. +4. Wait for the import to finish. It runs in the background, with a progress row in the activity stack at the top left. A message reports how many photos were added. If you change your mind, one **Edit** > **Undo** reverses the changes to the catalog. @@ -36,5 +36,6 @@ Original files stay where they are, and LightCraft refers to them in place. Phot - Before it changes anything, LightCraft tries to save your source settings, history and collections in a recovery archive in the library's `Interop` folder. This is best effort. If it fails, the photos are still imported with a warning. - Importing the same catalog again does not duplicate virtual copies or collections. By default, edits you already made in LightCraft are kept. -- A big catalog can take a long time. In one report, 38,000 photos took about 25 minutes from a USB SSD, and **Cancel** waited for the current work to finish. +- A big catalog can take a long time. In one report on an earlier version, 38,000 photos took about 25 minutes from a USB SSD. +- To stop the import, click ✕ on its row in the activity stack. This works while LightCraft reads the catalog. Once it starts adding the photos, it finishes. - The browser version cannot import a catalog. diff --git a/docs/user/guides/import-photos.md b/docs/user/guides/import-photos.md index 13e1b5eec..8130272ae 100644 --- a/docs/user/guides/import-photos.md +++ b/docs/user/guides/import-photos.md @@ -2,7 +2,7 @@ title: Import photos description: Bring photos from a folder or card into your LightCraft library, in place or as copies. order: 10 -verified: 0.6.0 +verified: 0.7.1 --- Use **File** > **Import Photos…** to pick files, or **File** > **Import from Folder…** to scan a whole folder. Both open the **Import Photos** window, where you choose what to bring in and how. @@ -11,7 +11,7 @@ Use **File** > **Import Photos…** to pick files, or **File** > **Import from F 1. Open the **File** menu and choose **Import Photos…** or **Import from Folder…**, then pick the files or the folder. 2. Look at the thumbnails. Every photo that can be imported has a checkbox. Click a photo to check or uncheck it. Shift-click sets a range. **Check All** and **Uncheck All** change every photo at once. -3. Photos already in your library are marked **Duplicate** or **In library** and start unchecked. A file LightCraft cannot read is marked **Unreadable**. +3. Photos already in your library are marked **Duplicate** or **In library** and start unchecked. A file LightCraft cannot read is marked **Unreadable**. A photo you deleted that is still in **Recently Deleted** is marked **Will be restored**. **In Recently Deleted** sets what happens to those: **Restore them** (the default) brings the photos back with their edits, ratings and albums, **Import as new** deletes the old record first, and **Leave them** skips them. 4. Under **Transfer**, choose how the files get into the library: - **Add in place** keeps the files where they are. The library only points to them. Nothing is copied or moved. - **Copy** copies the files into the library's `Originals` folder, or into a folder you pick with **Choose…** next to **Copy to**. @@ -20,7 +20,7 @@ Use **File** > **Import Photos…** to pick files, or **File** > **Import from F 6. Optional: set **Album** to add the photos to an existing album or a new one, **Preset** to apply a preset to every photo, and **Keywords** (separated by commas). 7. Click the button at the bottom. It shows the number of checked photos, for example **Import 24 Photos**. With **Move** it reads **Move 24 Photos**. -The import runs in the background, and you can keep working while it does. The whole import is one undo step. +The import runs in the background, with a progress row in the activity stack at the top left, and you can keep working while it does. The whole import is one undo step. ## Good to know diff --git a/docs/user/index.md b/docs/user/index.md index 08e631e72..a0655a0d3 100644 --- a/docs/user/index.md +++ b/docs/user/index.md @@ -1,7 +1,7 @@ --- title: LightCraft description: LightCraft is a free, open-source photo library and raw developer, an alternative to Adobe Lightroom. -verified: 0.6.0 +verified: 0.7.1 --- LightCraft is a photo library and raw developer that runs on your own computer. It is an open-source alternative to Adobe Lightroom, written in Rust, and part of the Craft App Suite from the ArtCraft team. diff --git a/docs/user/troubleshooting/get-help.md b/docs/user/troubleshooting/get-help.md index 0eea58be9..963c58221 100644 --- a/docs/user/troubleshooting/get-help.md +++ b/docs/user/troubleshooting/get-help.md @@ -2,7 +2,7 @@ title: Get help with a problem description: What to include when you ask for help with a LightCraft bug, and where to post it. order: 30 -verified: 0.6.0 +verified: 0.7.1 --- Open an issue in the [issue tracker](https://github.com/storytold/lightcraft/issues), or ask in [Discord](https://discord.gg/artcraft). Include your version, your system, what you did, and what you expected. diff --git a/docs/user/troubleshooting/preview-only-raw.md b/docs/user/troubleshooting/preview-only-raw.md index af7720a37..b3eb4dab0 100644 --- a/docs/user/troubleshooting/preview-only-raw.md +++ b/docs/user/troubleshooting/preview-only-raw.md @@ -2,7 +2,7 @@ title: A raw photo opens as "Preview only" description: Why LightCraft shows a raw photo as Preview only, and how to make it decode after an update with Reload from Disk. order: 10 -verified: 0.6.0 +verified: 0.7.1 --- Select the photo and choose **Photo** > **Reload from Disk**. If your version can decode that raw now, LightCraft reads the sensor data again and the **Preview only** notice goes away. @@ -22,7 +22,9 @@ If **Preview only** stays, your version still cannot decode that raw variant. Up ## Why this happens -When LightCraft cannot decode a raw on import, it remembers that and shows the camera's embedded JPEG. It does not check again after an update on its own. **Reload from Disk** is the way to make it check, and importing the photos again works too. Compressed Olympus raws and some Canon CR3 variants are examples of files that use the embedded preview. +When LightCraft cannot decode a raw on import, it remembers that and shows the camera's embedded JPEG. It does not check again after an update on its own. **Reload from Disk** is the way to make it check. Compressed Olympus raws, some Canon CR3 variants and Nikon High Efficiency NEF files are examples of files that use the embedded preview. + +0.7.1 decodes Canon EOS R5 Mark II C-RAW files that earlier versions opened as **Preview only**. Photos imported before switch over after **Reload from Disk**. Photos shown from the preview keep the camera's picture style and white balance, because they are the camera's own JPEG. diff --git a/docs/user/troubleshooting/raw-photos-look-dull.md b/docs/user/troubleshooting/raw-photos-look-dull.md index 94c615394..c1f6570f5 100644 --- a/docs/user/troubleshooting/raw-photos-look-dull.md +++ b/docs/user/troubleshooting/raw-photos-look-dull.md @@ -2,10 +2,10 @@ title: Raw photos look dull or washed out description: What to do when a raw photo looks flat, grey or desaturated in LightCraft compared with the camera JPEG. order: 20 -verified: 0.6.0 +verified: 0.7.1 --- -Update to the latest LightCraft, then import the photo again. Colour handling for raw files changed a lot between 0.4.0, 0.5.0 and 0.6.0, and several flat-looking Sony and Fujifilm cases are fixed. Some Leica DNGs still look dull. +Update to the latest LightCraft, then select the photo and choose **Photo** > **Reload from Disk**. Colour handling for raw files changed a lot between 0.4.0 and 0.7.1, and several flat-looking Sony and Fujifilm cases are fixed. Some Leica DNGs and dark, muted scenes still look dull. ## Symptoms @@ -15,8 +15,8 @@ Update to the latest LightCraft, then import the photo again. Colour handling fo ## Fix -1. Check your version in **Help** > **About LightCraft** (on macOS, **LightCraft** > **About LightCraft**). If it is older than 0.6.0, install the [latest release](https://github.com/storytold/lightcraft/releases/latest). See [Install LightCraft](../getting-started/install.md). -2. Import the raw photo again, or select it and choose **Photo** > **Reload from Disk**. +1. Check your version in **Help** > **About LightCraft** (on macOS, **LightCraft** > **About LightCraft**). If it is older than 0.7.1, install the [latest release](https://github.com/storytold/lightcraft/releases/latest). See [Install LightCraft](../getting-started/install.md). +2. Select the raw photo and choose **Photo** > **Reload from Disk**. 3. If it still looks dull, adjust it by hand in the **Edit** panel. See [Edit a photo](../guides/edit-a-photo.md). 4. If you think the starting look is wrong for your camera, report it with the original raw file. See [Get help with a problem](get-help.md). @@ -24,10 +24,12 @@ Update to the latest LightCraft, then import the photo again. Colour handling fo LightCraft develops a raw from the sensor data and tries to match the look of the camera's own JPEG. How well it matches depends on the camera model. -- **Sony ARW:** on 0.5.0 and older, some Lossless Compressed M-size files had lifted blacks, and an A7 II file lost most of its colour. Both are fixed in 0.6.0. On the A7 II file, brighter midtones can still look grey-green in 0.6.0 ([issue 865](https://github.com/storytold/lightcraft/issues/865)). Some files still fall short on dark scenes and on in-camera Dynamic Range Optimizer shots. +- **Sony ARW:** on 0.5.0 and older, some Lossless Compressed M-size files had lifted blacks, and an A7 II file lost most of its colour. Both are fixed since 0.6.0. Some files still fall short on in-camera Dynamic Range Optimizer shots. +- **Dark, muted scenes:** LightCraft applies only part of the camera look to them, so they can start duller than the camera JPEG. This is not fixed in 0.7.1 ([issue 865](https://github.com/storytold/lightcraft/issues/865)). - **Fujifilm X-Pro1 and Sony A7 IV:** reported dull on 0.4.0 and fine on 0.6.0. -- **Leica DNG:** these files carry a colour matrix but no tone curve, so 0.6.0 shows them darker and flatter than the camera JPEG. This is not fixed in 0.6.0 ([pull request 807](https://github.com/storytold/lightcraft/pull/807)). -- **Adobe RGB:** if the camera was set to Adobe RGB, LightCraft read the embedded JPEG as sRGB and matched to a too-dull target. The fix came after 0.6.0 and is not in a release yet. +- **Leica DNG:** these files carry a colour matrix but no tone curve, so LightCraft shows them darker and flatter than the camera JPEG. This is not fixed in 0.7.1 ([pull request 807](https://github.com/storytold/lightcraft/pull/807)). +- **Adobe RGB:** if the camera was set to Adobe RGB, 0.6.0 and older read the embedded JPEG as sRGB and matched to a too-dull target. Fixed in 0.7.1: LightCraft reads the JPEG in the colour space the raw file states. +- **Black-and-white picture style:** a raw shot in a monochrome picture style started about 1.3 EV darker than the same camera's colour shots. Since 0.7.1, LightCraft takes the tone from the camera's black-and-white JPEG. ## A soft picture after zooming in From 3d14f50d78fcfe71124bf8e50197be64e6befa6b Mon Sep 17 00:00:00 2001 From: Fabio Lussi <198260595+itrycodinganditsbad@users.noreply.github.com> Date: Tue, 13 Oct 2026 22:38:07 +0200 Subject: [PATCH 7/7] Drop the root AGENTS.md docs rule; keep the PR to docs/user/ Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 8f917dd09..8cd199ff6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -95,13 +95,6 @@ of it. Full standard: `../craftrules/standards/never-crash.md` Never weaken this check to make a commit pass — fix the attribution or remove the asset. - When in doubt about an asset's licence: don't use it. -## User docs -User docs live in `docs/user/` and are published at https://getartcraft.com/docs/lightcraft. If a change alters -something a user sees or does (menu or panel labels, import, export, install, errors), update the matching page in -`docs/user/` in the same commit, or add one. Rules: `docs/user/AGENTS.md`. -Pages describe the latest release. For a change that is not released yet, write that it was added after -and is not in a release yet, or update the page when the release ships. - ## Running and looking at the app - `cargo run --release -p lightcraft -- --control 7980` opens the desktop app with the JSON-lines control server (see `docs/control-protocol.md`). - **Never send OS-level synthetic input** (osascript/System Events keystrokes or clicks, `cliclick`, accessibility