Compare commits

...
Author SHA1 Message Date
Brandon ThomasandClaude Opus 5.5 5fe74557ec Skip CodeRabbit reviews on Dependabot PRs (#2407)
Adds .coderabbit.yaml so CodeRabbit no longer reviews or comments on PRs opened by dependabot[bot].

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-20 11:38:50 -04:00
Dylan M. Taylor 666f78432b docs: add SonarCloud and CodeRabbit badges to README (#2240)
* docs: add SonarCloud and CodeRabbit badges to README

* docs: put SonarCloud and CodeRabbit badges on their own line
2026-10-20 11:31:44 -04:00
Brandon ThomasandClaude Opus 5.5 a2a41383c4 Release 0.10.0
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 22:19:04 -04:00
FrancoisandClaude d999e382ba #1949: pt-BR for Include selected photos and the mask overlay modes (#2033)
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK

Co-authored-by: Claude <[email protected]>
2026-10-18 16:59:33 -06:00
Dylan M. Taylor fb7ac08b9a ci: configure Dependabot for Cargo and GitHub Actions
Co-authored-by: Dylan M. Taylor <[email protected]>
2026-10-18 12:31:40 -06:00
Dylan M. Taylor 31a677fe3d docs: drop references to competing commercial software (#2213) 2026-10-18 10:41:49 -04:00
Brandon Thomas a945533f63 Merge pull request #2236 from storytold/claude/integrate-batch-42
Integration batch 42: 31 community PRs
2026-10-18 10:39:21 -04:00
7 changed files with 90 additions and 49 deletions

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
reviews:
auto_review:
# Dependabot bumps are checked by CI; skip CodeRabbit reviews on them.
ignore_usernames:
- "dependabot[bot]"
+30
View File
@@ -0,0 +1,30 @@
version: 2
updates:
# Maintain Rust / Cargo dependencies
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "daily"
time: "06:00"
timezone: "America/New_York"
# Consolidate updates into a single PR rather than one PR per crate
groups:
cargo-dependencies:
patterns:
- "*"
commit-message:
prefix: "chore(deps)"
# Maintain GitHub Actions workflows
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
time: "06:00"
timezone: "America/New_York"
groups:
actions:
patterns:
- "*"
commit-message:
prefix: "ci(deps)"
Generated
+33 -33
View File
@@ -3078,7 +3078,7 @@ dependencies = [
[[package]]
name = "lightcraft"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"eframe",
"egui",
@@ -3103,7 +3103,7 @@ dependencies = [
[[package]]
name = "lightcraft-catalog"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"crc32fast",
"lightcraft-develop",
@@ -3120,7 +3120,7 @@ dependencies = [
[[package]]
name = "lightcraft-cli"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"dhat",
"lightcraft-codecs",
@@ -3136,7 +3136,7 @@ dependencies = [
[[package]]
name = "lightcraft-codecs"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"avif-serialize",
"bytemuck",
@@ -3167,7 +3167,7 @@ dependencies = [
[[package]]
name = "lightcraft-color"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-geom",
"proptest",
@@ -3176,7 +3176,7 @@ dependencies = [
[[package]]
name = "lightcraft-denoise"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"faer-core",
"lightcraft-denoise-core",
@@ -3193,7 +3193,7 @@ dependencies = [
[[package]]
name = "lightcraft-denoise-core"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-raster",
"miniz_oxide 0.8.9",
@@ -3208,7 +3208,7 @@ dependencies = [
[[package]]
name = "lightcraft-develop"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-color",
"lightcraft-geom",
@@ -3220,7 +3220,7 @@ dependencies = [
[[package]]
name = "lightcraft-engine"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"ab_glyph",
"craft-docpath",
@@ -3263,7 +3263,7 @@ dependencies = [
[[package]]
name = "lightcraft-faces"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-testkit",
"matrixmultiply",
@@ -3278,7 +3278,7 @@ dependencies = [
[[package]]
name = "lightcraft-fetch"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"log",
"rustls",
@@ -3289,7 +3289,7 @@ dependencies = [
[[package]]
name = "lightcraft-geocode"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"miniz_oxide 0.8.9",
"serde",
@@ -3297,7 +3297,7 @@ dependencies = [
[[package]]
name = "lightcraft-geom"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"proptest",
"serde",
@@ -3305,7 +3305,7 @@ dependencies = [
[[package]]
name = "lightcraft-gpu"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"bytemuck",
"lightcraft-color",
@@ -3325,7 +3325,7 @@ dependencies = [
[[package]]
name = "lightcraft-heif"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"heic-rs",
"rayon",
@@ -3333,14 +3333,14 @@ dependencies = [
[[package]]
name = "lightcraft-inpaint"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"rayon",
]
[[package]]
name = "lightcraft-lensdb"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-develop",
"lightcraft-geom",
@@ -3349,7 +3349,7 @@ dependencies = [
[[package]]
name = "lightcraft-mcp"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-codecs",
"lightcraft-engine",
@@ -3360,7 +3360,7 @@ dependencies = [
[[package]]
name = "lightcraft-merge"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-codecs",
"lightcraft-color",
@@ -3376,7 +3376,7 @@ dependencies = [
[[package]]
name = "lightcraft-meta"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-geom",
"lightcraft-tiff",
@@ -3388,7 +3388,7 @@ dependencies = [
[[package]]
name = "lightcraft-pipeline"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"image",
"lightcraft-color",
@@ -3406,7 +3406,7 @@ dependencies = [
[[package]]
name = "lightcraft-preview"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"jpeg-encoder",
"lightcraft-raster",
@@ -3418,7 +3418,7 @@ dependencies = [
[[package]]
name = "lightcraft-raster"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"libc",
"lightcraft-color",
@@ -3430,7 +3430,7 @@ dependencies = [
[[package]]
name = "lightcraft-raw"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"dhat",
"jpeg-encoder",
@@ -3454,7 +3454,7 @@ dependencies = [
[[package]]
name = "lightcraft-scenes"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"image",
"lightcraft-color",
@@ -3465,7 +3465,7 @@ dependencies = [
[[package]]
name = "lightcraft-segment"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"candle-core",
"candle-nn",
@@ -3479,7 +3479,7 @@ dependencies = [
[[package]]
name = "lightcraft-slideshow"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"lightcraft-raster",
"serde",
@@ -3488,15 +3488,15 @@ dependencies = [
[[package]]
name = "lightcraft-sysmem"
version = "0.9.1"
version = "0.10.0"
[[package]]
name = "lightcraft-testkit"
version = "0.9.1"
version = "0.10.0"
[[package]]
name = "lightcraft-tiff"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"proptest",
"serde",
@@ -3505,7 +3505,7 @@ dependencies = [
[[package]]
name = "lightcraft-ui-egui"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"craft-ui",
"egui",
@@ -3534,7 +3534,7 @@ dependencies = [
[[package]]
name = "lightcraft-web"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"crc32fast",
"eframe",
@@ -7004,7 +7004,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7"
[[package]]
name = "xtask"
version = "0.9.1"
version = "0.10.0"
dependencies = [
"brotli",
"flate2",
+1 -1
View File
@@ -3,7 +3,7 @@ resolver = "3"
members = ["crates/*", "apps/*", "xtask"]
[workspace.package]
version = "0.9.1"
version = "0.10.0"
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.90"
+8 -7
View File
@@ -18,7 +18,7 @@
</p>
<p align="center">
<b>Photo library and raw development; an open-source, clean-room reimplementation of Adobe Lightroom, rebuilt in pure Rust.</b><br>
<b>Photo library and raw development; an open-source, non-destructive photo library and raw developer, built in pure Rust.</b><br>
Native on macOS, Windows and Linux. In the browser via WebAssembly. Drivable end to end by AI agents over MCP.
</p>
@@ -28,6 +28,9 @@
<img alt="MCP server included" src="https://img.shields.io/badge/MCP-ready-8a5800?style=flat-square">
<img alt="License: MIT OR Apache-2.0" src="https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-8a5800?style=flat-square">
<a href="ROADMAP.md"><img alt="Status: young and moving fast" src="https://img.shields.io/badge/status-young%20%26%20moving%20fast-f2a516?style=flat-square"></a>
<br>
<a href="https://sonarcloud.io/project/overview?id=storytold_lightcraft"><img alt="Scanned by SonarCloud" src="https://img.shields.io/badge/Scanned_by-SonarCloud-4b9fd5?style=flat-square&logo=sonarqubecloud&logoColor=white"></a>
<a href="https://coderabbit.ai"><img alt="Reviewed by CodeRabbit" src="https://img.shields.io/coderabbit/prs/github/storytold/lightcraft?style=flat-square&label=Reviewed%20by%20CodeRabbit&logo=coderabbit"></a>
</p>
<p align="center">
@@ -333,9 +336,9 @@ lightcraft --control 7980 ~/Pictures/trip
LightCraft is young and moving fast: **alpha**. **Where we honestly stand** (details in the [roadmap](ROADMAP.md) and
[docs/target-app-parity.md](docs/target-app-parity.md)):
- **By feature count we're at ~82%** of Lightroom (core features 98%), tracked row by row in
- **By feature count we're at ~82%** (core features 98%), tracked row by row in
[docs/parity-checklist.md](docs/parity-checklist.md).
- **As a day-to-day Lightroom replacement we're nearer 61% for the whole product, ~51% for a typical working photographer and ~65% for
- **As a day-to-day tool we're nearer 61% for the whole product, ~51% for a typical working photographer and ~65% for
casual use.** It's great for JPEG/DNG and most Sony / Panasonic /
Fujifilm / Nikon / older-Canon raws on one machine; see [docs/raw-parity.md](docs/raw-parity.md) for your camera.
- **The biggest gaps:**
@@ -513,9 +516,9 @@ egui frontend is one swappable crate; nothing below it knows a UI exists. `mcp`
Humans and agents follow the same rules, so read [AGENTS.md](AGENTS.md) first. The short version:
- **Clean-room.** Never read Adobe binaries or GPL raw/photo code (darktable, RawTherapee, LibRaw, rawspeed, dcraw…);
- **Clean-room.** Never read proprietary binaries or GPL raw/photo code (darktable, RawTherapee, LibRaw, rawspeed, dcraw…);
work from public specs and black-box observation.
- **No Adobe assets, ever:** no icons, screenshots, presets, profiles, LUTs or fonts from Adobe products. Every
- **No proprietary assets, ever:** no icons, screenshots, presets, profiles, LUTs or fonts from commercial products. Every
image, icon and font in the repo is original, public domain, Creative Commons, OFL or permissively licensed, and has
an entry in [assets/ATTRIBUTION.md](assets/ATTRIBUTION.md) added in the same commit. New fonts go to
[storytold/craft-fonts](https://github.com/storytold/craft-fonts), not here.
@@ -645,8 +648,6 @@ ArtCraft Team and are not covered by this license. They may be used only unmodif
part of this repository and LightCraft, under [`docs/brand/LICENSE-brand.txt`](docs/brand/LICENSE-brand.txt).
Forks and modified versions must remove them.
<sub>Adobe, Photoshop, Illustrator, Premiere Pro, Lightroom, Acrobat, After Effects and InDesign are trademarks or registered trademarks of Adobe Inc. in the United States and/or other countries. LightCraft is an independent, open-source project and is not affiliated with, sponsored by or endorsed by Adobe Inc.; these names are used only to describe the workflows it is compatible with.</sub>
<p align="center">
<a href="https://getartcraft.com/"><img alt="ArtCraft" src="docs/brand/artcraft-mark.svg" width="28"></a><br>
<sub>Made by the <a href="https://getartcraft.com/">ArtCraft</a> team and community.</sub>
+5 -7
View File
@@ -18,7 +18,7 @@
</p>
<p align="center">
<b>照片图库与 raw 显影;Adobe Lightroom 的开源净室实现,用纯 Rust 重建。</b><br>
<b>照片图库与 raw 显影;开源、非破坏性的照片图库与 raw 显影工具,用纯 Rust 构建。</b><br>
在 macOS、Windows 和 Linux 上原生运行,也可通过 WebAssembly 在浏览器中使用,并能由 AI 智能体经 MCP 端到端驱动。
</p>
@@ -299,9 +299,9 @@ lightcraft --control 7980 ~/Pictures/trip
LightCraft 很年轻,而且进展很快。**我们如实所处的位置**(细节见[路线图](ROADMAP.md#where-we-stand)):
- **按功能数量算,我们达到了 Lightroom 的约 79%**(核心功能 98%),逐行记录在
- **按功能数量算,我们达到了约 79%**(核心功能 98%),逐行记录在
[docs/parity.md](docs/parity.md)。
- **作为日常替代 Lightroom 的工具,我们更接近 60–70%。** 在单台机器上处理 JPEG/DNG 以及大多数尼康/索尼/
- **作为日常使用的工具,我们更接近 60–70%。** 在单台机器上处理 JPEG/DNG 以及大多数尼康/索尼/
较老佳能的 raw 都很出色。
- **最大的缺口:**
- **相机色彩校准:** 索尼、尼康、松下、富士和佳能 CR3 的 raw 会从各自的相机 JPEG 得到受保护的估计值,内置 ILCA-99M2、ILCE-7CR、ILCE-7M4、X-H2S、X-T4、尼康 Z 6II、Z 8 和 D5300 配置文件;实测校准仍然缺失,其他 raw 或被拒绝的拟合会保留中性矩阵;
@@ -453,9 +453,9 @@ egui 前端是一个可替换的 crate;它下面没有任何东西知道 UI
人和智能体遵循同样的规则,所以请先读 [AGENTS.md](AGENTS.md)。简短版本:
- **净室。** 绝不阅读 Adobe 的二进制文件或 GPL 的 raw/照片代码(darktable、RawTherapee、LibRaw、rawspeed、dcraw……);
- **净室。** 绝不阅读专有软件的二进制文件或 GPL 的 raw/照片代码(darktable、RawTherapee、LibRaw、rawspeed、dcraw……);
只依据公开规范和黑盒观察来工作。
- **绝不使用 Adobe 资源:** 不使用 Adobe 产品的图标、截图、预设、配置文件、LUT 或字体。仓库中的每一个
- **绝不使用专有资源:** 不使用商业产品的图标、截图、预设、配置文件、LUT 或字体。仓库中的每一个
图像、图标和字体都是原创、公有领域、知识共享、OFL 或宽松许可的,并在同一提交中
于 [assets/ATTRIBUTION.md](assets/ATTRIBUTION.md) 添加条目。新字体提交到
[storytold/craft-fonts](https://github.com/storytold/craft-fonts),而不是这里。
@@ -579,8 +579,6 @@ ArtCraft 团队的商标,不在本许可范围内。它们只能在未修改
本仓库和 LightCraft 的一部分,按 [`docs/brand/LICENSE-brand.txt`](docs/brand/LICENSE-brand.txt) 使用。
分支和修改版本必须移除它们。
<sub>Adobe、Photoshop、Illustrator、Premiere Pro、Lightroom、Acrobat、After Effects 和 InDesign 是 Adobe Inc. 在美国和/或其他国家的商标或注册商标。LightCraft 是一个独立的开源项目,与 Adobe Inc. 无隶属关系,也未获其赞助或认可;这些名称仅用于说明它所兼容的工作流。</sub>
<p align="center">
<a href="https://getartcraft.com/"><img alt="ArtCraft" src="docs/brand/artcraft-mark.svg" width="28"></a><br>
<sub>由 <a href="https://getartcraft.com/">ArtCraft</a> 团队和社区制作。</sub>
+7 -1
View File
@@ -2180,5 +2180,11 @@
"Checking the GPU…": "Verificando a GPU…",
"CPU": "CPU",
"A face model uses the GPU only when a check shows it gives the same results faster.": "Um modelo de rostos só usa a GPU quando uma verificação mostra que ela dá os mesmos resultados mais rápido.",
"Checking the GPU for faces": "Verificando a GPU para rostos"
"Checking the GPU for faces": "Verificando a GPU para rostos",
"Include selected photos": "Incluir fotos selecionadas",
"Color Overlay": "Sobreposição de cor",
"Color Overlay on B&W": "Sobreposição de cor em P&B",
"Image on Black": "Imagem sobre preto",
"Image on White": "Imagem sobre branco",
"White on Black": "Branco sobre preto"
}