• v0.5.0 f9c7aba8b6

    Local adjustments you can see past, and a version you can quote
    Build and test / Desktop (Linux) (push) Failing after 2m34s
    Build and test / Layer separation (push) Successful in 23s
    Traceability / Requirement traces (push) Successful in 1m6s
    🐳 Android image / Build and push (push) Successful in 2s
    Build and test / android-image (push) Successful in 3s
    Build and test / Android (aarch64) (push) Failing after 4s

    dtourolle released this 2026-08-23 13:00:57 +00:00 | 967 commits to master since this release

    The masking work becomes usable rather than merely present. A subject mask can
    be hidden while you look at the photograph underneath it — a mask is judged
    against what it covers, and there was no way to see that. "Look closer" runs
    the model over overlapping tiles when a subject is small in the frame, so a
    bird that reached a fixed 640x640 graph at 80 pixels arrives at its own size;
    what two tiles each saw of one subject is merged rather than one half thrown
    away. A found subject can then be refined further, and several masks edited at
    once. And a mask now survives closing the photograph: the sidecar has been able
    to store one since they were added, and nothing had ever written one.

    Photographs can be found by when they were taken. "Limit to range" has ends
    that are shown and can be typed; it used to take its span from a timeline zoom
    that is zero until someone zooms, so it narrowed to the whole library and
    appeared to do nothing. The timeline's bars are sized by how many will fit
    rather than by fixed cut-offs, so zooming in shows finer structure instead of
    the same structure drawn wider.

    The develop column is 380px on a desktop window and 280px on a tablet, because
    one width for both meant the mode strip scrolled sideways on the smaller. The
    library header lost its instrumentation: the backend, the frame rate and the
    layout class are diagnostics, and they sit in Settings under ABOUT beside the
    version now. Grid captions drop the file extension, which in a RAW library
    distinguishes nothing.

    Every artefact states the same version. tools/set-version.sh writes it from
    the git tag into the workspace and the pacman package, and the APK takes it
    from Cargo.toml when it is linked — the device reported versionName=null
    until this release. DarkRoom installs properly on both platforms: a desktop
    entry and an icon the compositor can find, and an APK that names itself.

    CI was building without the segmentation model for as long as it has had one.
    Nothing asked for LFS objects, so models/yolo26n-seg.onnx arrived as a
    133-byte pointer and every job that compiled it failed elsewhere with a message
    about git-lfs that nobody read.

    Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

    Downloads