-
DarkRoom 0.16.0
StableBenchmarks / CPU and I/O (per commit) (push) Successful in 5m57sBenchmarks / Frame budget (on demand) (push) SkippedTraceability / Requirement traces (push) Successful in 47sBuild and test / Android (aarch64) (push) Successful in 31m41sBuild and test / android-image (push) Successful in 4s🐳 Android image / Build and push (push) Successful in 4sBuild and test / Desktop (Linux) (push) Successful in 47m44sBuild and test / windows-image (push) Successful in 4s🐳 Windows image / Build and push (push) Successful in 3sBuild and test / Layer separation (push) Successful in 45sBuild and test / Windows (x86_64, cross) (push) Successful in 36m16sBuild and test / Publish the release (push) Successful in 1m35sreleased this
2026-09-26 13:46:34 +00:00 | 231 commits to master since this releaseDuplicate RAWs can be folded into one, every film stock can be reached again, the desktop shows where it scrolls, and the catalog and the fit view are several times faster.
Consolidate duplicate originals. A library that has been copied, backed up and renamed holds the same RAW several times over — on the reference library, 1,836 groups and 3,379 surplus files. "Duplicate originals" in the sidebar and in Settings lists each group, proves its copies identical before anything moves (a hash of the first and last megabyte of each, read by range, so a Nextcloud library is not downloaded whole; results are kept so a second check is free), and keeps the copy not in a backup folder and still under the camera's own name — changeable per group. Collections, keywords, the highest rating, faces and a single edit are merged onto the copy that stays, in one transaction per group, and the rest go to DarkRoom's trash, from which they can be restored. Groups whose copies carry different edits are listed and left alone until virtual copies exist (#11). (#67)
Every film stock can be reached again. The film list opened ten rows tall and could not be scrolled — the develop column took every drag and most wheel turns meant for it — so eighteen stocks, all seven black-and-white among them, looked as though they had gone. It is now a popup over the column: the wheel, a drag, a flick and the scrollbar all reach the last stock, and Up, Down, Enter and Escape work while it is open. A test fails if the last stock ever becomes unreachable again.
Scrollbars on the desktop. The develop column, the library grid, the collections sidebar, the settings page, the help sheet and the film list show a scrollbar that tracks position, can be dragged, and pages on a click in its track. The tablet stays flick-only.
Help from develop. F1 opens Help from develop as well as from the grid, and a "?" sits beside Settings in develop's top bar; the bar is tightened so Settings fits at 1600 px. (#63)
Stepping along the roll on large libraries. A/D and the arrows in develop stopped at the edge of the grid's loaded window, and after a reload the roll could mark or judge the wrong photograph. Stepping now goes by library position. (#64) Develop's rating and flag keys are held to the open photograph, with tests. (#62)
Labels on text fields. "Filename template", "Destination", the storage budgets, export width and height and the import location had been drawn behind their fields, invisible, since 0.9.0. (#61)
Faster. The fit view reads its source gather once per framing rather than every frame — about 2.7× faster at 2560×1600 and 3× at 4K, bit-identical output — and a sharpen pass that changes nothing between two neighbourhood operations is skipped (sharpen plus clarity about 25% faster). On the catalog side, a full library scan went from about 2 s to 0.19 s, pulling another device's sidecars from about 650 ms to 9 ms for 342 files, opening the catalog takes about half as long, a sync pass merges faces about 1.7× faster and moves face shards 3–4× faster. No schema change.
Documentation brought up to the tree. The README no longer calls Android's CPU readback the one deliberate compromise (that ended in 0.15.0), and its feature list and "Where it stands" match what is built. The outstanding-work register, requirement status notes, architecture, catalog, storage and distribution notes and CONTRIBUTING were swept against the code, and the manual was re-recorded on this build — the film popup, the scrollbars, Help from develop, and a new picture of the duplicates review.
The APK, the desktop binary, the Windows installer and SHA256SUMS are built by CI from this tag's commit.
Downloads