Files
DarkRoom/docs/traceability.md
T
dtourolleandClaude Opus 5 1cd5ab6815 Put the gesture reference in the application
The document the previous commit generates is for somebody reading the
repository. The person who needs it most is holding a tablet, has just
discovered that a hold does something, and has nowhere to ask what else
does.

So the same scan writes a table the application draws: a "Gestures"
button beside Settings, a sheet with the same scrim and dismissal as the
ones that file and name, and every gesture grouped by where it applies
with its touch, pointer and keyboard routes side by side. Not the `why` —
that is the argument for the design and belongs in the document; on a
phone-sized card it would bury the one line the sheet was opened to read.

The sheet's file knows nothing about what a gesture is. It draws the rows
it is handed, and the rows come from the generated table, because a help
screen with its text typed into it is a second description of one
behaviour — and the second description is always the one that goes stale.
The commit before this deleted a gesture; a hand-kept sheet would still
be describing it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-30 00:30:21 +02:00

100 KiB

Requirements traceability matrix

Denominators are parsed from requirements.md at run time, never hardcoded. Coverage is the intersection of tagged and defined IDs over defined IDs, so it cannot exceed 100%.

Summary

Metric Value
Source files scanned 305
TRACES tags found 994
Requirements defined 179
Requirements covered 120
Coverage 67.0% (120/179)

By type

Type Covered Defined
FR 92 124
NFR 24 49
R 4 6

Orphan tags

A tag naming an ID requirements.md does not define — what renumbering produces, and what a typo produces.

None.

Tagged requirements

ID Tagged in
FR-CAT-1 core/dr-catalog/src/scan.rs:1, core/dr-catalog/src/walk.rs:109, core/dr-catalog/src/walk.rs:162, core/dr-catalog/src/walk.rs:1, core/dr-sync/src/scan.rs:93, core/dr-types/src/lib.rs:201, core/dr-types/src/lib.rs:270, core/dr-types/src/lib.rs:303, platform/dr-plat/src/storage.rs:1, platform/dr-plat/src/storage.rs:216, tools/traceability/src/lib.rs:481, tools/traceability/src/lib.rs:513, ui/dr-ui/src/activity.rs:1, ui/dr-ui/src/library.rs:1
FR-CAT-10 core/dr-ingest/src/layout.rs:1, core/dr-ingest/src/lib.rs:1, core/dr-ingest/src/lib.rs:733, core/dr-types/src/settings.rs:206, platform/dr-plat/src/storage.rs:287, platform/dr-plat/src/storage.rs:586, platform/dr-plat/src/volumes.rs:1, platform/dr-plat/src/volumes.rs:62, ui/dr-ui/src/import.rs:1, ui/dr-ui/src/import.rs:336, ui/dr-ui/src/import_ui.rs:1, ui/dr-ui/src/lib.rs:1210, ui/dr-ui/ui/import.slint:5, ui/dr-ui/ui/library.slint:1055, ui/dr-ui/ui/library.slint:1234, ui/dr-ui/ui/library.slint:887
FR-CAT-11 core/dr-catalog/src/dedup.rs:1, core/dr-ingest/src/lib.rs:1, core/dr-ingest/src/lib.rs:392, core/dr-sync/src/upload.rs:40, ui/dr-ui/src/import.rs:1, ui/dr-ui/src/import_ui.rs:1, ui/dr-ui/src/lib.rs:1210, ui/dr-ui/src/library.rs:175, ui/dr-ui/src/library.rs:2491, ui/dr-ui/ui/import.slint:5
FR-CAT-12 core/dr-pipeline/src/sidecar.rs:119
FR-CAT-13 core/dr-catalog/src/keywords.rs:1
FR-CAT-15 core/dr-catalog/src/schema.rs:720, core/dr-catalog/src/trash.rs:1, core/dr-sync-nextcloud/src/lib.rs:457, core/dr-sync/src/lib.rs:135, core/dr-sync/src/scan.rs:563, core/dr-sync/src/scan.rs:57, core/dr-thumbs/src/lib.rs:376, ui/dr-ui/src/collections_ui.rs:1226, ui/dr-ui/src/collections_ui.rs:2099, ui/dr-ui/src/library.rs:175, ui/dr-ui/src/library.rs:192, ui/dr-ui/src/library.rs:241, ui/dr-ui/src/library.rs:3992, ui/dr-ui/src/library.rs:4026, ui/dr-ui/src/library_ui.rs:190, ui/dr-ui/src/library_ui.rs:778, ui/dr-ui/src/trash.rs:1, ui/dr-ui/ui/collections.slint:572
FR-CAT-1a core/dr-catalog/src/walk.rs:1, core/dr-types/src/lib.rs:54, platform/dr-plat/src/storage.rs:1, platform/dr-plat/src/storage.rs:216, platform/dr-plat/src/storage.rs:46
FR-CAT-2 core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/schema.rs:1, tools/traceability/src/lib.rs:481
FR-CAT-3 core/dr-catalog/src/jobs.rs:1, core/dr-catalog/src/walk.rs:66, core/dr-sync/src/scan.rs:69, core/dr-thumbs/src/codec.rs:1, core/dr-thumbs/src/lib.rs:1, ui/dr-ui/src/derived_sync.rs:1, ui/dr-ui/src/import.rs:463, ui/dr-ui/src/import.rs:488, ui/dr-ui/src/library.rs:2964, ui/dr-ui/src/library.rs:3472, ui/dr-ui/src/library_ui.rs:172, ui/dr-ui/src/library_ui.rs:3709, ui/dr-ui/src/library_ui.rs:4727, ui/dr-ui/ui/app.slint:376, ui/dr-ui/ui/settings.slint:387, ui/dr-ui/ui/settings.slint:73
FR-CAT-4 core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/query.rs:1, core/dr-catalog/src/schema.rs:330, ui/dr-ui/src/library.rs:1, ui/dr-ui/src/library.rs:222, ui/dr-ui/src/library_ui.rs:1
FR-CAT-5 core/dr-catalog/src/keywords.rs:1, core/dr-catalog/src/merge.rs:1, core/dr-catalog/src/rating.rs:1, core/dr-catalog/src/schema.rs:1138, core/dr-catalog/src/schema.rs:635, core/dr-decode/src/lib.rs:285, core/dr-decode/src/lib.rs:404, core/dr-pipeline/src/sidecar.rs:136, ui/dr-ui/src/collections_ui.rs:1519, ui/dr-ui/src/collections_ui.rs:1625, ui/dr-ui/src/collections_ui.rs:1674, ui/dr-ui/src/collections_ui.rs:244, ui/dr-ui/src/collections_ui.rs:341, ui/dr-ui/src/collections_ui.rs:90, ui/dr-ui/src/library.rs:4040, ui/dr-ui/src/library_ui.rs:653, ui/dr-ui/src/library_ui.rs:6654, ui/dr-ui/src/library_ui.rs:6665, ui/dr-ui/src/library_ui.rs:6678, ui/dr-ui/src/library_ui.rs:6693, ui/dr-ui/src/library_ui.rs:6702, ui/dr-ui/ui/app.slint:312, ui/dr-ui/ui/app.slint:511, ui/dr-ui/ui/library.slint:1306, ui/dr-ui/ui/library.slint:1330, ui/dr-ui/ui/library.slint:1383, ui/dr-ui/ui/library.slint:19, ui/dr-ui/ui/library.slint:880, ui/dr-ui/ui/library.slint:935
FR-CAT-6 core/dr-catalog/src/collections.rs:1, core/dr-catalog/src/keywords.rs:1, core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/query.rs:1, core/dr-catalog/src/rating.rs:1, core/dr-catalog/src/schema.rs:635, core/dr-types/src/selector.rs:1, core/dr-types/src/settings.rs:64, core/dr-types/src/time.rs:67, core/dr-types/src/time.rs:90, ui/dr-ui/src/library.rs:246, ui/dr-ui/src/library.rs:4433, ui/dr-ui/src/library_ui.rs:337, ui/dr-ui/src/library_ui.rs:410, ui/dr-ui/src/library_ui.rs:5394, ui/dr-ui/src/library_ui.rs:5447, ui/dr-ui/src/library_ui.rs:6794, ui/dr-ui/ui/app.slint:324, ui/dr-ui/ui/app.slint:511, ui/dr-ui/ui/app.slint:807, ui/dr-ui/ui/library.slint:110, ui/dr-ui/ui/library.slint:1476, ui/dr-ui/ui/library.slint:935, ui/dr-ui/ui/settings.slint:150
FR-CAT-7 core/dr-catalog/src/collections.rs:1, core/dr-catalog/src/merge.rs:1, core/dr-catalog/src/sync.rs:1, core/dr-types/src/selector.rs:1, ui/dr-ui/src/collections_ui.rs:1538, ui/dr-ui/src/collections_ui.rs:1788, ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/collections_ui.rs:922, ui/dr-ui/src/derived_sync.rs:1, ui/dr-ui/src/library.rs:4238, ui/dr-ui/src/library.rs:4264, ui/dr-ui/src/library.rs:4319, ui/dr-ui/src/library_ui.rs:3571, ui/dr-ui/src/library_ui.rs:4298, ui/dr-ui/ui/app.slint:315, ui/dr-ui/ui/app.slint:506, ui/dr-ui/ui/collections.slint:4, ui/dr-ui/ui/library.slint:2949, ui/dr-ui/ui/library.slint:906, ui/dr-ui/ui/library.slint:925
FR-CAT-8 core/dr-pipeline/src/graph.rs:346, core/dr-pipeline/src/graph.rs:385, core/dr-pipeline/src/ops/curve.rs:137, core/dr-pipeline/src/ops/curve.rs:656, core/dr-pipeline/src/sidecar.rs:1637, core/dr-pipeline/src/sidecar.rs:93, core/dr-pipeline/src/state.rs:1, core/dr-pipeline/src/state.rs:75, core/dr-pipeline/tests/tone_curve.rs:34, ui/dr-ui/src/develop.rs:3720, ui/dr-ui/src/develop.rs:3749, ui/dr-ui/src/export.rs:750, ui/dr-ui/src/lib.rs:1489, ui/dr-ui/src/lib.rs:1946, ui/dr-ui/src/lib.rs:2081, ui/dr-ui/src/lib.rs:568, ui/dr-ui/src/lib.rs:993, ui/dr-ui/src/library.rs:1903, ui/dr-ui/src/library.rs:492, ui/dr-ui/src/library.rs:539, ui/dr-ui/src/library.rs:576, ui/dr-ui/src/library.rs:823, ui/dr-ui/src/library_ui.rs:5019, ui/dr-ui/src/sidecar_cache.rs:1
FR-CAT-9 core/dr-catalog/src/cache.rs:1, core/dr-catalog/src/scan.rs:1, core/dr-catalog/src/schema.rs:692, core/dr-catalog/src/walk.rs:1022, core/dr-catalog/src/walk.rs:162, core/dr-catalog/src/walk.rs:1, core/dr-catalog/src/walk.rs:435, core/dr-catalog/src/walk.rs:728, core/dr-sync-nextcloud/src/desktop_client.rs:30, core/dr-sync/src/error.rs:113, core/dr-sync/src/reachability.rs:1, core/dr-sync/src/scan.rs:175, core/dr-sync/src/scan.rs:464, core/dr-types/src/lib.rs:120, ui/dr-ui/src/develop.rs:3147, ui/dr-ui/src/library.rs:1222, ui/dr-ui/src/library.rs:1275, ui/dr-ui/src/library.rs:1306, ui/dr-ui/src/library.rs:1411, ui/dr-ui/src/library.rs:161, ui/dr-ui/src/library.rs:1863, ui/dr-ui/src/library.rs:1939, ui/dr-ui/src/library.rs:266, ui/dr-ui/src/library.rs:4541, ui/dr-ui/src/library.rs:576, ui/dr-ui/src/library.rs:807, ui/dr-ui/src/library.rs:823, ui/dr-ui/src/library.rs:877, ui/dr-ui/src/library_ui.rs:1045, ui/dr-ui/src/library_ui.rs:1636, ui/dr-ui/src/library_ui.rs:1680, ui/dr-ui/src/library_ui.rs:1696, ui/dr-ui/src/library_ui.rs:1790, ui/dr-ui/src/library_ui.rs:232, ui/dr-ui/src/library_ui.rs:2414, ui/dr-ui/src/library_ui.rs:265, ui/dr-ui/src/library_ui.rs:273, ui/dr-ui/src/library_ui.rs:2852, ui/dr-ui/src/library_ui.rs:3074, ui/dr-ui/src/library_ui.rs:3352, ui/dr-ui/src/library_ui.rs:3440, ui/dr-ui/src/library_ui.rs:3622, ui/dr-ui/src/library_ui.rs:3736, ui/dr-ui/src/library_ui.rs:463, ui/dr-ui/src/library_ui.rs:526, ui/dr-ui/src/library_ui.rs:5492, ui/dr-ui/src/library_ui.rs:5607, ui/dr-ui/src/presets.rs:446, ui/dr-ui/src/presets.rs:458, ui/dr-ui/src/sidecar_cache.rs:1
FR-CULL-1 core/dr-decode/src/preview.rs:121
FR-CULL-10 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:369, core/dr-catalog/src/schema.rs:521, core/dr-face/src/assign.rs:1, core/dr-face/src/neighbours.rs:1, core/dr-types/src/settings.rs:117, ui/dr-ui/src/develop.rs:120, ui/dr-ui/src/develop.rs:129, ui/dr-ui/src/develop.rs:1944, ui/dr-ui/src/develop.rs:195, ui/dr-ui/src/develop.rs:688, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/identity.rs:1, ui/dr-ui/src/identity_ui.rs:1, ui/dr-ui/src/lib.rs:2053, ui/dr-ui/ui/identity.slint:1
FR-CULL-11 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:521, ui/dr-ui/src/identity.rs:1, ui/dr-ui/src/identity_ui.rs:1, ui/dr-ui/src/library.rs:287, ui/dr-ui/src/library.rs:317, ui/dr-ui/ui/identity.slint:1
FR-CULL-12 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:369, core/dr-catalog/src/schema.rs:521, ui/dr-ui/src/identity.rs:1, ui/dr-ui/ui/identity.slint:1
FR-CULL-2 core/dr-decode/src/locate.rs:1, core/dr-decode/src/preview.rs:148, ui/dr-ui/src/import.rs:463
FR-CULL-3 core/dr-gpu/src/focus.rs:154, core/dr-gpu/src/focus.rs:186, core/dr-gpu/src/focus.rs:1, core/dr-gpu/src/focus.rs:317, core/dr-gpu/src/shaders/focus_peak.wgsl:1, ui/dr-ui/src/develop.rs:2930, ui/dr-ui/src/develop.rs:2941, ui/dr-ui/src/develop.rs:2947, ui/dr-ui/src/develop.rs:2964, ui/dr-ui/src/develop.rs:726, ui/dr-ui/src/develop.rs:732, ui/dr-ui/src/lib.rs:1528, ui/dr-ui/src/lib.rs:1606, ui/dr-ui/src/lib.rs:1679, ui/dr-ui/src/lib.rs:1713, ui/dr-ui/src/lib.rs:2963, ui/dr-ui/src/lib.rs:328, ui/dr-ui/src/peaking.rs:1, ui/dr-ui/ui/app.slint:1733, ui/dr-ui/ui/app.slint:2278, ui/dr-ui/ui/app.slint:77, ui/dr-ui/ui/peaking.slint:1, ui/dr-ui/ui/peaking.slint:25, ui/dr-ui/ui/peaking.slint:56
FR-CULL-4 core/dr-catalog/src/rating.rs:1, core/dr-pipeline/src/sidecar.rs:136, ui/dr-ui/src/library.rs:246, ui/dr-ui/src/library.rs:492
FR-CULL-5 core/dr-catalog/src/bursts.rs:1, core/dr-catalog/src/schema.rs:412, ui/dr-ui/src/bursts.rs:1, ui/dr-ui/src/library.rs:202, ui/dr-ui/src/library.rs:5142
FR-CULL-8 core/dr-catalog/src/face_shard.rs:1, core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:480, core/dr-catalog/src/schema.rs:521, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/library.rs:2965, ui/dr-ui/src/library.rs:3069, ui/dr-ui/ui/settings.slint:419, ui/dr-ui/ui/settings.slint:82
FR-CULL-9 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:521, core/dr-face/src/assign.rs:1, core/dr-face/src/neighbours.rs:1, core/dr-types/src/settings.rs:117, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/identity_ui.rs:1, ui/dr-ui/ui/identity.slint:276
FR-DEV-1 core/dr-pipeline/src/graph.rs:1, core/dr-pipeline/src/sidecar.rs:1
FR-DEV-2 core/dr-pipeline/src/operation.rs:389
FR-DEV-3 core/dr-gpu/src/adjust.rs:2203, core/dr-gpu/src/adjust.rs:651, core/dr-gpu/src/adjust.rs:770, core/dr-gpu/src/adjust.rs:84, core/dr-gpu/tests/tone_curve.rs:1, core/dr-pipeline/src/detail.rs:434, core/dr-pipeline/src/detail.rs:524, core/dr-pipeline/src/framing.rs:177, core/dr-pipeline/src/framing.rs:234, core/dr-pipeline/src/framing.rs:314, core/dr-pipeline/src/framing.rs:488, core/dr-pipeline/src/framing.rs:743, core/dr-pipeline/src/graph.rs:170, core/dr-pipeline/src/graph.rs:578, core/dr-pipeline/src/mask.rs:121, core/dr-pipeline/src/operation.rs:330, core/dr-pipeline/src/operation.rs:516, core/dr-pipeline/src/ops/capture_sharpen.rs:1, core/dr-pipeline/src/ops/capture_sharpen.rs:210, core/dr-pipeline/src/ops/curve.rs:100, core/dr-pipeline/src/ops/curve.rs:1, core/dr-pipeline/src/ops/curve.rs:219, core/dr-pipeline/src/ops/curve.rs:635, core/dr-pipeline/src/ops/local_contrast.rs:1, core/dr-pipeline/src/ops/noise_reduction.rs:1, core/dr-pipeline/src/ops/noise_reduction.rs:273, core/dr-pipeline/src/sidecar.rs:157, core/dr-pipeline/src/sidecar.rs:1637, core/dr-pipeline/src/sidecar.rs:1697, core/dr-pipeline/tests/tone_curve.rs:1, ui/dr-ui/src/develop.rs:102, ui/dr-ui/src/develop.rs:1448, ui/dr-ui/src/develop.rs:164, ui/dr-ui/src/develop.rs:1926, ui/dr-ui/src/develop.rs:1944, ui/dr-ui/src/develop.rs:1958, ui/dr-ui/src/develop.rs:1980, ui/dr-ui/src/develop.rs:2126, ui/dr-ui/src/develop.rs:2224, ui/dr-ui/src/develop.rs:327, ui/dr-ui/src/develop.rs:3418, ui/dr-ui/src/develop.rs:3448, ui/dr-ui/src/develop.rs:3514, ui/dr-ui/src/develop.rs:3528, ui/dr-ui/src/develop.rs:364, ui/dr-ui/src/develop.rs:3720, ui/dr-ui/src/develop.rs:4380, ui/dr-ui/src/develop.rs:4434, ui/dr-ui/src/develop.rs:4478, ui/dr-ui/src/develop.rs:4528, ui/dr-ui/src/develop.rs:587, ui/dr-ui/src/develop.rs:648, ui/dr-ui/src/develop.rs:746, ui/dr-ui/src/develop.rs:793, ui/dr-ui/src/develop.rs:822, ui/dr-ui/src/lib.rs:1587, ui/dr-ui/src/lib.rs:2356, ui/dr-ui/src/lib.rs:2552, ui/dr-ui/src/lib.rs:2724, ui/dr-ui/src/lib.rs:2788, ui/dr-ui/src/lib.rs:2842, ui/dr-ui/src/lib.rs:334, ui/dr-ui/src/lib.rs:377, ui/dr-ui/src/lib.rs:400, ui/dr-ui/src/library.rs:539, ui/dr-ui/src/masks_ui.rs:218, ui/dr-ui/src/masks_ui.rs:41, ui/dr-ui/src/masks_ui.rs:816, ui/dr-ui/src/masks_ui.rs:930, ui/dr-ui/src/segmentation.rs:219, ui/dr-ui/src/segmentation.rs:322, ui/dr-ui/src/segmentation.rs:350, ui/dr-ui/ui/adjust.slint:517, ui/dr-ui/ui/adjust.slint:635, ui/dr-ui/ui/app.slint:138, ui/dr-ui/ui/app.slint:184, ui/dr-ui/ui/app.slint:1935, ui/dr-ui/ui/app.slint:917, ui/dr-ui/ui/masks.slint:524
FR-DEV-3a core/dr-pipeline/build.rs:756, core/dr-pipeline/ops/exposure.yaml:1, core/dr-pipeline/src/descriptor.rs:194, core/dr-pipeline/src/descriptor.rs:234, core/dr-pipeline/src/descriptor.rs:258, core/dr-pipeline/src/descriptor.rs:313, core/dr-pipeline/src/framing.rs:385, core/dr-pipeline/src/graph.rs:24, core/dr-pipeline/src/graph.rs:251, core/dr-pipeline/src/graph.rs:46, core/dr-pipeline/src/graph.rs:59, core/dr-pipeline/src/mask.rs:955, core/dr-pipeline/src/operation.rs:232, core/dr-pipeline/src/operation.rs:365, core/dr-pipeline/src/ops/curve.rs:319, ui/dr-ui/src/develop.rs:1345, ui/dr-ui/src/lib.rs:683, ui/dr-ui/tests/ui_names_no_operation.rs:1
FR-DEV-3b core/dr-pipeline/src/descriptor.rs:258, core/dr-pipeline/src/framing.rs:385, core/dr-pipeline/src/graph.rs:59, core/dr-pipeline/src/operation.rs:365
FR-DEV-3c core/dr-pipeline/build.rs:756, core/dr-pipeline/ops/exposure.yaml:1, core/dr-pipeline/src/graph.rs:251, core/dr-pipeline/src/graph.rs:46, core/dr-pipeline/src/mask.rs:955, ui/dr-ui/src/develop.rs:5107
FR-DEV-3d core/dr-gpu/src/adjust.rs:104, core/dr-gpu/src/adjust.rs:1079, core/dr-gpu/src/adjust.rs:770, core/dr-gpu/src/adjust.rs:84, core/dr-gpu/src/adjust.rs:986, core/dr-gpu/tests/capture_sharpen.rs:434, core/dr-gpu/tests/detail_stage.rs:242, core/dr-gpu/tests/local_contrast.rs:558, core/dr-gpu/tests/noise_reduction.rs:556, core/dr-pipeline/src/framing.rs:314, core/dr-pipeline/src/graph.rs:617, core/dr-pipeline/src/operation.rs:32, core/dr-pipeline/src/operation.rs:389, core/dr-pipeline/src/operation.rs:53, core/dr-pipeline/src/operation.rs:71
FR-DEV-3e core/dr-decode/src/base_curve.rs:145, core/dr-decode/src/base_curve.rs:158, core/dr-decode/src/base_curve.rs:1, core/dr-decode/src/base_curve.rs:267, core/dr-decode/src/base_curve.rs:347, core/dr-decode/src/base_curve.rs:55, core/dr-decode/src/lib.rs:121, core/dr-decode/src/lib.rs:708, core/dr-decode/src/lib.rs:748, core/dr-decode/src/profile.rs:102, core/dr-decode/src/profile.rs:151, core/dr-decode/src/profile.rs:1, core/dr-decode/src/profile.rs:235, core/dr-decode/src/profile.rs:286, core/dr-decode/src/profile.rs:343, core/dr-decode/src/profile.rs:458, core/dr-decode/src/profile.rs:492, core/dr-decode/src/profile.rs:630, core/dr-gpu/src/adjust.rs:37, core/dr-gpu/src/adjust.rs:967, core/dr-gpu/src/demosaic.rs:121, core/dr-gpu/src/demosaic.rs:86, core/dr-gpu/tests/base_curve.rs:1, core/dr-pipeline/src/operation.rs:1495, core/dr-pipeline/src/operation.rs:1576, core/dr-pipeline/src/operation.rs:1601, core/dr-pipeline/src/operation.rs:1616, core/dr-pipeline/src/operation.rs:1640, core/dr-pipeline/src/operation.rs:310, core/dr-pipeline/src/operation.rs:440, core/dr-pipeline/src/operation.rs:450, core/dr-pipeline/src/operation.rs:600
FR-DEV-3f core/dr-film/src/bake.rs:271, core/dr-film/src/bake.rs:62, core/dr-film/src/boolean_grain.rs:1, core/dr-film/src/boolean_grain.rs:78, core/dr-film/src/grain.rs:140, core/dr-film/src/grain.rs:1, core/dr-film/src/grain.rs:302, core/dr-film/src/grain.rs:79, core/dr-film/src/lib.rs:160, core/dr-film/src/lib.rs:1, core/dr-film/src/profile.rs:100, core/dr-film/src/profile.rs:142, core/dr-film/src/profile.rs:182, core/dr-film/src/profile.rs:259, core/dr-film/src/profile.rs:502, core/dr-film/src/profile.rs:73, core/dr-gpu/src/adjust.rs:139, core/dr-gpu/src/adjust.rs:196, core/dr-gpu/src/adjust.rs:357, core/dr-gpu/src/adjust.rs:483, core/dr-gpu/src/adjust.rs:77, core/dr-gpu/tests/film_sim.rs:191, core/dr-gpu/tests/film_sim.rs:1, core/dr-pipeline/src/graph.rs:102, core/dr-pipeline/src/graph.rs:125, core/dr-pipeline/src/graph.rs:325, core/dr-pipeline/src/operation.rs:1065, core/dr-pipeline/src/operation.rs:1094, core/dr-pipeline/src/operation.rs:1495, core/dr-pipeline/src/operation.rs:296, core/dr-pipeline/src/operation.rs:310, core/dr-pipeline/src/ops/film_sim.rs:129, core/dr-pipeline/src/ops/film_sim.rs:153, core/dr-pipeline/src/ops/film_sim.rs:1, core/dr-pipeline/src/ops/film_sim.rs:331, core/dr-pipeline/src/ops/film_sim.rs:43, core/dr-pipeline/src/ops/film_sim.rs:87, core/dr-pipeline/src/ops/film_sim.rs:92, core/dr-pipeline/src/sidecar.rs:112, core/dr-pipeline/src/sidecar.rs:168, core/dr-pipeline/src/sidecar.rs:1958, core/dr-pipeline/src/sidecar.rs:2034, core/dr-pipeline/src/sidecar.rs:534, core/dr-pipeline/src/sidecar.rs:661, core/dr-pipeline/src/sidecar.rs:793, core/dr-pipeline/src/state.rs:100, core/dr-pipeline/src/state.rs:115, core/dr-pipeline/src/state.rs:60, ui/dr-ui/src/develop.rs:3162, ui/dr-ui/src/develop.rs:3179, ui/dr-ui/src/develop.rs:3191, ui/dr-ui/src/develop.rs:3229, ui/dr-ui/src/develop.rs:3238, ui/dr-ui/src/develop.rs:3341, ui/dr-ui/src/develop.rs:3757, ui/dr-ui/src/develop.rs:3772, ui/dr-ui/src/lib.rs:2330, ui/dr-ui/src/lib.rs:616, ui/dr-ui/src/lib.rs:674, ui/dr-ui/src/library.rs:530, ui/dr-ui/src/library.rs:778, ui/dr-ui/src/presets.rs:395, ui/dr-ui/ui/adjust.slint:1034, ui/dr-ui/ui/adjust.slint:1116, ui/dr-ui/ui/app.slint:2470, ui/dr-ui/ui/app.slint:645
FR-DEV-3h core/dr-decode/src/lib.rs:404, core/dr-decode/src/preview.rs:29, core/dr-pipeline/src/framing.rs:1050, core/dr-pipeline/src/framing.rs:328, core/dr-pipeline/src/framing.rs:488, core/dr-types/src/lib.rs:337, core/dr-types/src/lib.rs:445, core/dr-types/src/lib.rs:457, core/dr-types/src/lib.rs:473, ui/dr-ui/src/develop.rs:139, ui/dr-ui/src/develop.rs:2143, ui/dr-ui/src/segmentation.rs:322
FR-DEV-4 core/dr-gpu/src/adjust.rs:770, core/dr-gpu/src/lib.rs:338, ui/dr-ui/ui/crop.slint:1
FR-DEV-5 core/dr-pipeline/src/graph.rs:346, core/dr-pipeline/src/graph.rs:385, core/dr-pipeline/src/history.rs:102, core/dr-pipeline/src/history.rs:110, core/dr-pipeline/src/history.rs:127, core/dr-pipeline/src/history.rs:184, core/dr-pipeline/src/history.rs:1, core/dr-pipeline/src/history.rs:214, core/dr-pipeline/src/history.rs:234, core/dr-pipeline/src/history.rs:293, core/dr-pipeline/src/history.rs:479, core/dr-pipeline/src/history.rs:489, core/dr-pipeline/src/history.rs:499, core/dr-pipeline/src/history.rs:526, core/dr-pipeline/src/history.rs:86, core/dr-pipeline/src/state.rs:1, core/dr-pipeline/src/state.rs:75, ui/dr-ui/src/develop.rs:3191, ui/dr-ui/src/develop.rs:3772, ui/dr-ui/src/develop.rs:3802, ui/dr-ui/src/develop.rs:3815, ui/dr-ui/src/develop.rs:3827, ui/dr-ui/src/develop.rs:3843, ui/dr-ui/src/develop.rs:3875, ui/dr-ui/src/develop.rs:3879, ui/dr-ui/src/develop.rs:3898, ui/dr-ui/src/develop.rs:3914, ui/dr-ui/src/develop.rs:709, ui/dr-ui/src/labels.rs:12, ui/dr-ui/src/labels.rs:215, ui/dr-ui/src/lib.rs:1522, ui/dr-ui/src/lib.rs:1565, ui/dr-ui/src/lib.rs:1573, ui/dr-ui/src/lib.rs:2526, ui/dr-ui/ui/history.slint:1
FR-DEV-6 core/dr-pipeline/src/preset.rs:1, core/dr-pipeline/src/preset.rs:381, core/dr-pipeline/src/preset.rs:414, core/dr-pipeline/src/starter.rs:1, core/dr-preset-xmp/src/lib.rs:1, core/dr-types/src/settings.rs:272, ui/dr-ui/src/develop.rs:3714, ui/dr-ui/src/develop.rs:3735, ui/dr-ui/src/lib.rs:1489, ui/dr-ui/src/lib.rs:2141, ui/dr-ui/src/lib.rs:2170, ui/dr-ui/src/library.rs:1903, ui/dr-ui/src/library.rs:492, ui/dr-ui/src/library.rs:520, ui/dr-ui/src/library_ui.rs:2674, ui/dr-ui/src/library_ui.rs:3074, ui/dr-ui/src/library_ui.rs:494, ui/dr-ui/src/preset_store.rs:1, ui/dr-ui/src/presets.rs:1, ui/dr-ui/src/presets.rs:657, ui/dr-ui/src/presets.rs:691, ui/dr-ui/ui/adjust.slint:709, ui/dr-ui/ui/adjust.slint:736, ui/dr-ui/ui/adjust.slint:779, ui/dr-ui/ui/app.slint:1513, ui/dr-ui/ui/app.slint:2559, ui/dr-ui/ui/app.slint:717, ui/dr-ui/ui/app.slint:728, ui/dr-ui/ui/library.slint:1503, ui/dr-ui/ui/library.slint:1510, ui/dr-ui/ui/library.slint:858, ui/dr-ui/ui/library.slint:874, ui/dr-ui/ui/library.slint:946, ui/dr-ui/ui/library.slint:961, ui/dr-ui/ui/presets.slint:105, ui/dr-ui/ui/presets.slint:113, ui/dr-ui/ui/presets.slint:19, ui/dr-ui/ui/presets.slint:276, ui/dr-ui/ui/presets.slint:297, ui/dr-ui/ui/presets.slint:5, ui/dr-ui/ui/presets.slint:60, ui/dr-ui/ui/settings.slint:101, ui/dr-ui/ui/settings.slint:557
FR-DEV-7 core/dr-pipeline/src/history.rs:214, core/dr-pipeline/src/history.rs:499, core/dr-pipeline/src/history.rs:526, ui/dr-ui/src/develop.rs:3843, ui/dr-ui/src/develop.rs:3875, ui/dr-ui/src/lib.rs:1573, ui/dr-ui/src/lib.rs:2526, ui/dr-ui/ui/history.slint:1
FR-DEV-8 core/dr-gpu/src/detail.rs:405, core/dr-gpu/src/detail.rs:623, core/dr-gpu/tests/detail_instances.rs:1, core/dr-gpu/tests/spot_removal.rs:1, core/dr-pipeline/src/detail.rs:410, core/dr-pipeline/src/detail.rs:434, core/dr-pipeline/src/detail.rs:469, core/dr-pipeline/src/detail.rs:555, core/dr-pipeline/src/graph.rs:114, core/dr-pipeline/src/graph.rs:192, core/dr-pipeline/src/graph.rs:686, core/dr-pipeline/src/operation.rs:330, core/dr-pipeline/src/operation.rs:554, core/dr-pipeline/src/sidecar.rs:184, core/dr-pipeline/src/sidecar.rs:353, core/dr-pipeline/src/sidecar.rs:673, core/dr-pipeline/src/sidecar.rs:809, core/dr-pipeline/src/sidecar.rs:863, core/dr-pipeline/src/sidecar.rs:893, core/dr-pipeline/src/spot.rs:115, core/dr-pipeline/src/spot.rs:151, core/dr-pipeline/src/spot.rs:1, core/dr-pipeline/src/spot.rs:207, core/dr-pipeline/src/spot.rs:387, core/dr-pipeline/src/spot.rs:472, core/dr-pipeline/src/spot.rs:582, core/dr-pipeline/src/spot.rs:673, core/dr-pipeline/src/state.rs:103, core/dr-pipeline/tests/spot_sidecar.rs:1, core/dr-pipeline/tests/spots.rs:1, ui/dr-ui/src/develop.rs:2295, ui/dr-ui/src/develop.rs:2333, ui/dr-ui/src/develop.rs:2398, ui/dr-ui/src/develop.rs:2481, ui/dr-ui/src/develop.rs:2495, ui/dr-ui/src/develop.rs:776, ui/dr-ui/src/labels.rs:52, ui/dr-ui/src/lib.rs:1594, ui/dr-ui/src/lib.rs:2644, ui/dr-ui/src/lib.rs:339, ui/dr-ui/src/spots_ui.rs:19, ui/dr-ui/src/spots_ui.rs:1, ui/dr-ui/src/spots_ui.rs:265, ui/dr-ui/ui/adjust.slint:810, ui/dr-ui/ui/app.slint:128, ui/dr-ui/ui/app.slint:1838, ui/dr-ui/ui/app.slint:2013, ui/dr-ui/ui/app.slint:2376, ui/dr-ui/ui/spots.slint:180, ui/dr-ui/ui/spots.slint:48, ui/dr-ui/ui/spots.slint:5
FR-DSP-1 core/dr-gpu/src/adjust.rs:2126, core/dr-gpu/src/adjust.rs:2203, core/dr-gpu/src/adjust.rs:2288, core/dr-gpu/src/adjust.rs:54, core/dr-gpu/src/adjust.rs:770, core/dr-gpu/src/lib.rs:159, core/dr-gpu/src/lib.rs:179, core/dr-gpu/src/lib.rs:57, core/dr-gpu/src/lib.rs:80, core/dr-gpu/tests/capture_sharpen.rs:200, core/dr-gpu/tests/detail_stage.rs:328, core/dr-gpu/tests/local_contrast.rs:264, core/dr-gpu/tests/noise_reduction.rs:378, core/dr-pipeline/src/detail.rs:136, core/dr-pipeline/src/detail.rs:524, core/dr-pipeline/src/graph.rs:548, core/dr-pipeline/src/graph.rs:578, core/dr-pipeline/src/ops/capture_sharpen.rs:1, core/dr-pipeline/src/ops/capture_sharpen.rs:659, core/dr-pipeline/src/ops/local_contrast.rs:1, core/dr-pipeline/src/ops/local_contrast.rs:971, core/dr-pipeline/src/ops/noise_reduction.rs:700, core/dr-pipeline/src/spot.rs:673, ui/dr-ui/src/develop.rs:2819, ui/dr-ui/src/develop.rs:4169, ui/dr-ui/src/develop.rs:4652, ui/dr-ui/src/develop.rs:4686, ui/dr-ui/src/lib.rs:81, ui/dr-ui/src/lib.rs:824, ui/dr-ui/src/lib.rs:883
FR-DSP-3 core/dr-gpu/tests/frame_budget.rs:101, core/dr-gpu/tests/local_contrast.rs:329, core/dr-pipeline/src/ops/local_contrast.rs:447
FR-DSP-5 core/dr-gpu/tests/frame_budget.rs:101, core/dr-gpu/tests/zoom_resolution.rs:135, core/dr-gpu/tests/zoom_resolution.rs:166, core/dr-gpu/tests/zoom_resolution.rs:1, core/dr-gpu/tests/zoom_resolution.rs:216
FR-DSP-6 core/dr-pipeline/src/operation.rs:483, core/dr-types/src/colour.rs:1, ui/dr-ui/src/develop.rs:2849, ui/dr-ui/src/develop.rs:5944, ui/dr-ui/src/lib.rs:1550, ui/dr-ui/src/lib.rs:3027
FR-DSP-7 core/dr-gpu/src/histogram.rs:147, core/dr-gpu/src/histogram.rs:1, core/dr-gpu/src/histogram.rs:281, core/dr-gpu/src/histogram.rs:50, core/dr-gpu/src/shaders/histogram.wgsl:1, ui/dr-ui/src/develop.rs:2898, ui/dr-ui/src/develop.rs:5754, ui/dr-ui/src/develop.rs:5786, ui/dr-ui/src/develop.rs:720, ui/dr-ui/src/histogram.rs:1, ui/dr-ui/src/lib.rs:1660, ui/dr-ui/src/lib.rs:323, ui/dr-ui/ui/app.slint:72, ui/dr-ui/ui/histogram.slint:122, ui/dr-ui/ui/histogram.slint:1
FR-DSP-8 platform/dr-plat/src/display.rs:1, platform/dr-plat/src/display/icc.rs:1, platform/dr-plat/src/display/wayland.rs:1, platform/dr-plat/src/display/x11.rs:1, ui/dr-ui/src/develop.rs:2795, ui/dr-ui/src/develop.rs:2849, ui/dr-ui/src/develop.rs:5944, ui/dr-ui/src/develop.rs:5990, ui/dr-ui/src/develop.rs:6009, ui/dr-ui/src/develop.rs:807, ui/dr-ui/src/display_ui.rs:192, ui/dr-ui/src/display_ui.rs:1, ui/dr-ui/src/display_ui.rs:325, ui/dr-ui/src/display_ui.rs:346, ui/dr-ui/src/display_ui.rs:379, ui/dr-ui/src/lib.rs:1511, ui/dr-ui/src/lib.rs:1550, ui/dr-ui/src/lib.rs:2940, ui/dr-ui/src/lib.rs:3027, ui/dr-ui/ui/app.slint:1686, ui/dr-ui/ui/app.slint:51, ui/dr-ui/ui/settings.slint:124, ui/dr-ui/ui/settings.slint:794
FR-EXP-1 core/dr-export/src/encode.rs:1, core/dr-export/src/lib.rs:1, core/dr-types/src/settings.rs:1, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-2 core/dr-export/src/encode.rs:1, core/dr-export/src/error.rs:26, core/dr-export/src/icc.rs:1, core/dr-export/src/lib.rs:153, core/dr-export/src/lib.rs:1, core/dr-export/src/lib.rs:53, core/dr-gpu/src/adjust.rs:2436, core/dr-pipeline/src/graph.rs:538, core/dr-pipeline/src/graph.rs:592, core/dr-pipeline/src/operation.rs:483, core/dr-types/src/colour.rs:1, core/dr-types/src/settings.rs:1, core/dr-types/src/settings.rs:713, ui/dr-ui/src/develop.rs:6009, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-3 core/dr-export/src/lib.rs:182, core/dr-export/src/lib.rs:1, core/dr-export/src/size.rs:136, core/dr-export/src/size.rs:1, core/dr-export/src/size.rs:25, core/dr-export/src/size.rs:84, core/dr-types/src/settings.rs:1, core/dr-types/src/settings.rs:758, core/dr-types/src/settings.rs:766, core/dr-types/src/settings.rs:782, core/dr-types/src/settings.rs:851, core/dr-types/src/settings.rs:879, core/dr-types/src/settings.rs:890, core/dr-types/src/settings.rs:896, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/src/settings_ui.rs:207, ui/dr-ui/src/settings_ui.rs:220, ui/dr-ui/src/settings_ui.rs:235, ui/dr-ui/src/settings_ui.rs:565, ui/dr-ui/ui/settings.slint:697, ui/dr-ui/ui/settings.slint:707
FR-EXP-4 core/dr-export/src/lib.rs:1, core/dr-export/src/sharpen.rs:1, core/dr-export/src/size.rs:1, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-5 ui/dr-ui/src/settings_store.rs:1
FR-EXP-6 core/dr-export/src/lib.rs:1, core/dr-export/src/name.rs:1, core/dr-types/src/settings.rs:1, ui/dr-ui/src/export.rs:1, ui/dr-ui/src/lib.rs:429, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/src/settings_ui.rs:49, ui/dr-ui/src/settings_ui.rs:679
FR-EXP-7 ui/dr-ui/src/activity.rs:83, ui/dr-ui/src/export.rs:1, ui/dr-ui/src/export.rs:942, ui/dr-ui/src/lib.rs:213, ui/dr-ui/src/lib.rs:2272, ui/dr-ui/src/lib.rs:429, ui/dr-ui/src/lib.rs:464, ui/dr-ui/src/lib.rs:491, ui/dr-ui/src/library_ui.rs:3457, ui/dr-ui/src/library_ui.rs:585, ui/dr-ui/src/library_ui.rs:6636, ui/dr-ui/src/library_ui.rs:6713, ui/dr-ui/src/library_ui.rs:6725, ui/dr-ui/src/library_ui.rs:685, ui/dr-ui/src/library_ui.rs:742, ui/dr-ui/ui/app.slint:1053, ui/dr-ui/ui/app.slint:1523, ui/dr-ui/ui/library.slint:1513, ui/dr-ui/ui/library.slint:862, ui/dr-ui/ui/library.slint:975
FR-EXP-8 core/dr-decode/src/lib.rs:326, core/dr-decode/src/lib.rs:350, core/dr-decode/src/lib.rs:364, core/dr-decode/src/lib.rs:71, core/dr-decode/src/lib.rs:79, core/dr-decode/src/lib.rs:82, core/dr-decode/src/locate.rs:1164, core/dr-decode/src/locate.rs:1223, core/dr-decode/src/locate.rs:316, core/dr-decode/src/locate.rs:487, core/dr-decode/src/locate.rs:571, core/dr-decode/src/locate.rs:584, core/dr-decode/src/locate.rs:667, core/dr-export/examples/export.rs:99, core/dr-export/src/encode.rs:117, core/dr-export/src/encode.rs:161, core/dr-export/src/encode.rs:1, core/dr-export/src/encode.rs:206, core/dr-export/src/encode.rs:235, core/dr-export/src/encode.rs:311, core/dr-export/src/encode.rs:325, core/dr-export/src/encode.rs:408, core/dr-export/src/encode.rs:456, core/dr-export/src/encode.rs:70, core/dr-export/src/encode.rs:795, core/dr-export/src/encode.rs:809, core/dr-export/src/encode.rs:850, core/dr-export/src/encode.rs:898, core/dr-export/src/exif.rs:1, core/dr-export/src/lib.rs:136, core/dr-export/src/metadata.rs:1, core/dr-export/src/metadata.rs:41, core/dr-export/src/metadata.rs:74, core/dr-types/src/lib.rs:653, core/dr-types/src/settings.rs:426, ui/dr-ui/src/export.rs:619, ui/dr-ui/src/export.rs:647, ui/dr-ui/src/export.rs:777, ui/dr-ui/src/export.rs:794, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-9 core/dr-decode/src/lib.rs:506, core/dr-export/src/lib.rs:128, core/dr-export/src/lib.rs:1, core/dr-gpu/src/adjust.rs:1106, ui/dr-ui/src/develop.rs:3106, ui/dr-ui/src/lib.rs:429
FR-NC-1 core/dr-sync-nextcloud/src/auth.rs:132, core/dr-sync-nextcloud/src/auth.rs:44, core/dr-sync-nextcloud/src/provider.rs:1, core/dr-sync/src/account.rs:355, ui/dr-ui/src/launch.rs:277, ui/dr-ui/src/launch.rs:61, ui/dr-ui/src/launch_ui.rs:417
FR-NC-10 core/dr-sync/src/account.rs:220, ui/dr-ui/src/export.rs:1, ui/dr-ui/src/lib.rs:491, ui/dr-ui/src/library.rs:1101, ui/dr-ui/src/library.rs:1939, ui/dr-ui/src/library.rs:576, ui/dr-ui/src/library.rs:877, ui/dr-ui/src/library_ui.rs:1696, ui/dr-ui/src/library_ui.rs:3457, ui/dr-ui/src/library_ui.rs:526, ui/dr-ui/src/sidecar_cache.rs:1
FR-NC-12 core/dr-sync-folder/src/lib.rs:1, core/dr-sync-nextcloud/src/lib.rs:40, core/dr-sync-nextcloud/src/lib.rs:914, core/dr-sync-nextcloud/src/provider.rs:1, core/dr-sync/src/account.rs:1, core/dr-sync/src/account.rs:81, core/dr-sync/src/lib.rs:218, core/dr-sync/src/lib.rs:51, core/dr-sync/src/provider.rs:106, core/dr-sync/src/provider.rs:1, core/dr-sync/src/provider.rs:53, core/dr-sync/src/reachability.rs:1, ui/dr-ui/src/remote.rs:1
FR-NC-13 core/dr-sync-folder/src/lib.rs:197, core/dr-sync-folder/src/lib.rs:1, core/dr-sync-folder/src/lib.rs:73, core/dr-sync/src/provider.rs:106, ui/dr-ui/src/launch_ui.rs:316, ui/dr-ui/src/remote.rs:1
FR-NC-2 core/dr-sync/src/account.rs:1, core/dr-sync/src/account.rs:298, core/dr-sync/src/account.rs:355, core/dr-sync/src/account.rs:59, platform/dr-plat/src/secrets.rs:82
FR-NC-3 core/dr-decode/src/locate.rs:1, core/dr-decode/src/preview.rs:148, core/dr-sync/src/capability.rs:85, core/dr-thumbs/src/lib.rs:1, ui/dr-ui/src/library.rs:1, ui/dr-ui/src/library.rs:2964, ui/dr-ui/src/library.rs:3472, ui/dr-ui/src/library_ui.rs:1, ui/dr-ui/src/library_ui.rs:3709, ui/dr-ui/src/library_ui.rs:4727, ui/dr-ui/ui/app.slint:376, ui/dr-ui/ui/settings.slint:387, ui/dr-ui/ui/settings.slint:73
FR-NC-4 core/dr-sync-folder/src/lib.rs:197, core/dr-sync-nextcloud/src/propfind.rs:103, core/dr-sync-nextcloud/src/propfind.rs:51, core/dr-sync/src/capability.rs:6, core/dr-sync/src/lib.rs:218, core/dr-sync/src/scan.rs:93, ui/dr-ui/src/launch.rs:61
FR-NC-5 core/dr-sync-nextcloud/src/propfind.rs:51, ui/dr-ui/src/import.rs:488
FR-NC-6 ui/dr-ui/src/activity.rs:1
FR-NC-6a core/dr-catalog/src/cache.rs:1, core/dr-catalog/src/cache.rs:225, core/dr-catalog/src/schema.rs:1093, core/dr-catalog/src/schema.rs:692, core/dr-sync-folder/src/borrow.rs:1, core/dr-types/src/selector.rs:1, core/dr-types/src/settings.rs:1, ui/dr-ui/src/collections_ui.rs:3249, ui/dr-ui/src/collections_ui.rs:599, ui/dr-ui/src/collections_ui.rs:667, ui/dr-ui/src/lib.rs:1976, ui/dr-ui/src/lib.rs:3090, ui/dr-ui/src/library.rs:1565, ui/dr-ui/src/library.rs:1588, ui/dr-ui/src/library.rs:1863, ui/dr-ui/src/library_ui.rs:1121, ui/dr-ui/src/library_ui.rs:1194, ui/dr-ui/src/library_ui.rs:1295, ui/dr-ui/src/library_ui.rs:1350, ui/dr-ui/src/library_ui.rs:1485, ui/dr-ui/src/library_ui.rs:1603, ui/dr-ui/src/library_ui.rs:2148, ui/dr-ui/src/library_ui.rs:289, ui/dr-ui/src/library_ui.rs:300, ui/dr-ui/src/library_ui.rs:308, ui/dr-ui/src/library_ui.rs:320, ui/dr-ui/src/library_ui.rs:329, ui/dr-ui/src/library_ui.rs:422, ui/dr-ui/src/library_ui.rs:432, ui/dr-ui/src/library_ui.rs:479, ui/dr-ui/src/library_ui.rs:542, ui/dr-ui/src/library_ui.rs:5509, ui/dr-ui/src/library_ui.rs:5527, ui/dr-ui/src/library_ui.rs:5539, ui/dr-ui/src/library_ui.rs:573, ui/dr-ui/src/library_ui.rs:585, ui/dr-ui/src/settings_store.rs:1, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/ui/app.slint:2549, ui/dr-ui/ui/app.slint:500, ui/dr-ui/ui/collections.slint:249, ui/dr-ui/ui/collections.slint:369, ui/dr-ui/ui/collections.slint:52, ui/dr-ui/ui/collections.slint:682, ui/dr-ui/ui/collections.slint:84, ui/dr-ui/ui/icons.slint:260, ui/dr-ui/ui/library.slint:1021
FR-NC-6b ui/dr-ui/src/library_ui.rs:1350, ui/dr-ui/src/memory.rs:1
FR-NC-6c core/dr-catalog/src/cache.rs:225, core/dr-sync-folder/src/borrow.rs:1, core/dr-sync-folder/src/lib.rs:197, core/dr-sync-folder/src/lib.rs:73, core/dr-sync-folder/src/lib.rs:818, core/dr-sync-folder/src/lib.rs:857, core/dr-sync-folder/src/vfs.rs:1, core/dr-sync-nextcloud/src/desktop_client.rs:167, core/dr-sync-nextcloud/src/desktop_client.rs:30, core/dr-sync/src/capability.rs:41, core/dr-sync/src/error.rs:39, core/dr-sync/src/lib.rs:158, core/dr-sync/src/types.rs:101, core/dr-types/src/lib.rs:120, core/dr-types/src/lib.rs:202, ui/dr-ui/src/activity.rs:1, ui/dr-ui/src/collections_ui.rs:3249, ui/dr-ui/src/collections_ui.rs:599, ui/dr-ui/src/collections_ui.rs:667, ui/dr-ui/src/derived_sync.rs:555, ui/dr-ui/src/derived_sync.rs:627, ui/dr-ui/src/library.rs:1685, ui/dr-ui/src/library.rs:1775, ui/dr-ui/src/library.rs:3254, ui/dr-ui/src/library.rs:3592, ui/dr-ui/src/library.rs:981, ui/dr-ui/src/library_ui.rs:1121, ui/dr-ui/src/library_ui.rs:1194, ui/dr-ui/src/library_ui.rs:1393, ui/dr-ui/src/remote.rs:40, ui/dr-ui/ui/collections.slint:249, ui/dr-ui/ui/collections.slint:682, ui/dr-ui/ui/icons.slint:260
FR-NC-6d core/dr-sync-folder/src/borrow.rs:1, core/dr-sync-folder/src/lib.rs:1, core/dr-sync-folder/src/vfs.rs:1
FR-NC-7 core/dr-catalog/src/face_shard.rs:1, core/dr-sync-nextcloud/src/lib.rs:105, ui/dr-ui/src/derived_sync.rs:1, ui/dr-ui/src/library.rs:3472, ui/dr-ui/src/library_ui.rs:3709, ui/dr-ui/ui/settings.slint:387
FR-NC-7a core/dr-ingest/src/layout.rs:1, core/dr-sync/src/upload.rs:1, core/dr-sync/src/upload.rs:40, core/dr-types/src/settings.rs:206, ui/dr-ui/src/import.rs:1, ui/dr-ui/src/import.rs:97, ui/dr-ui/src/import_ui.rs:1, ui/dr-ui/src/lib.rs:1210, ui/dr-ui/ui/import.slint:5
FR-NC-7b core/dr-ingest/src/lib.rs:733, core/dr-sync/src/upload.rs:1, ui/dr-ui/src/import.rs:122, ui/dr-ui/src/import.rs:336, ui/dr-ui/src/import.rs:584, ui/dr-ui/src/import.rs:97, ui/dr-ui/src/import_ui.rs:1, ui/dr-ui/src/lib.rs:1210
FR-NC-8 core/dr-pipeline/src/sidecar.rs:119, core/dr-pipeline/src/sidecar.rs:93, ui/dr-ui/src/lib.rs:1946, ui/dr-ui/src/library.rs:492, ui/dr-ui/src/library_ui.rs:494
FR-NC-9 core/dr-catalog/src/merge.rs:1, core/dr-catalog/src/schema.rs:635, core/dr-catalog/src/sync.rs:1, core/dr-pipeline/src/sidecar.rs:157, core/dr-pipeline/src/sidecar.rs:184, core/dr-pipeline/src/sidecar.rs:2034, core/dr-pipeline/src/sidecar.rs:353, core/dr-pipeline/src/sidecar.rs:451, core/dr-pipeline/src/spot.rs:245, core/dr-pipeline/tests/spot_sidecar.rs:1, ui/dr-ui/src/derived_sync.rs:555, ui/dr-ui/src/library.rs:1031, ui/dr-ui/src/library.rs:877
FR-PLAT-AND-1 core/dr-types/src/lib.rs:54, platform/dr-plat/src/volumes.rs:62
FR-PLAT-AND-2 core/dr-catalog/src/walk.rs:1022, core/dr-catalog/src/walk.rs:435, core/dr-sync-folder/src/lib.rs:242, core/dr-sync-folder/src/tests.rs:51, core/dr-sync/src/error.rs:113, core/dr-sync/src/error.rs:195, core/dr-sync/src/scan.rs:175, core/dr-sync/src/scan.rs:464, core/dr-sync/src/scan.rs:490, core/dr-sync/src/scan.rs:519, ui/dr-ui/src/library.rs:1222, ui/dr-ui/src/library.rs:1275, ui/dr-ui/src/library.rs:1306, ui/dr-ui/src/library.rs:1411, ui/dr-ui/src/library_ui.rs:1045, ui/dr-ui/src/library_ui.rs:1644, ui/dr-ui/src/library_ui.rs:273, ui/dr-ui/src/library_ui.rs:463, ui/dr-ui/src/library_ui.rs:966
FR-PLAT-AND-3 core/dr-catalog/src/jobs.rs:1
FR-PLAT-AND-5 apps/darkroom-android/src/lib.rs:54, core/dr-gpu/src/adjust.rs:1029, core/dr-gpu/src/detail.rs:161, core/dr-gpu/src/detail.rs:547, core/dr-gpu/tests/detail_stage.rs:417, ui/dr-ui/src/develop.rs:3069, ui/dr-ui/src/identity_ui.rs:115, ui/dr-ui/src/lib.rs:1034, ui/dr-ui/src/lib.rs:1463, ui/dr-ui/src/memory.rs:163, ui/dr-ui/src/memory.rs:1
FR-PLAT-LIN-1 core/dr-types/src/settings.rs:1, platform/dr-plat/src/storage.rs:344, ui/dr-ui/src/lib.rs:933, ui/dr-ui/src/preset_store.rs:1, ui/dr-ui/src/settings_store.rs:1
FR-PLAT-LIN-2 platform/dr-plat/src/display.rs:1, platform/dr-plat/src/display/wayland.rs:1, platform/dr-plat/src/display/x11.rs:1
FR-PLG-2 core/dr-pipeline/src/declared/decl.rs:1, core/dr-pipeline/src/declared/expr.rs:152, core/dr-pipeline/src/declared/expr.rs:1, core/dr-pipeline/src/declared/mod.rs:1, core/dr-pipeline/src/declared/mod.rs:82, core/dr-pipeline/src/descriptor.rs:15, core/dr-pipeline/src/descriptor.rs:652, core/dr-pipeline/src/operation.rs:232, core/dr-pipeline/tests/declared_parity.rs:1, core/dr-pipeline/tests/declared_parity.rs:240, core/dr-pipeline/tests/declared_parity.rs:305, core/dr-pipeline/tests/declared_parity.rs:358, core/dr-pipeline/tests/declared_parity.rs:416
FR-PLG-2d core/dr-pipeline/src/declared/decl.rs:112, core/dr-pipeline/src/declared/decl.rs:152, core/dr-pipeline/src/declared/decl.rs:1, core/dr-pipeline/src/declared/decl.rs:420, core/dr-pipeline/src/declared/decl.rs:67, core/dr-pipeline/src/declared/mod.rs:1, core/dr-pipeline/src/declared/mod.rs:384, core/dr-pipeline/src/declared/mod.rs:403
FR-RAW-1 core/dr-decode/src/lib.rs:243, core/dr-types/src/lib.rs:130, core/dr-types/src/lib.rs:201
FR-RAW-3 core/dr-decode/src/lib.rs:139, core/dr-decode/src/lib.rs:506, core/dr-decode/src/locate.rs:1366
FR-RAW-4 core/dr-decode/src/error.rs:1, ui/dr-ui/src/lib.rs:213
FR-RAW-5 core/dr-decode/src/lib.rs:167, core/dr-gpu/src/demosaic.rs:34, core/dr-gpu/src/demosaic.rs:602, core/dr-gpu/src/demosaic.rs:681, core/dr-gpu/src/demosaic.rs:805
FR-UI-1 ui/dr-ui/src/lib.rs:3172, ui/dr-ui/src/lib.rs:89, ui/dr-ui/src/masks_ui.rs:816, ui/dr-ui/ui/identity.slint:181, ui/dr-ui/ui/library.slint:1099
FR-UI-2 ui/dr-ui/src/collections_ui.rs:1002, ui/dr-ui/src/collections_ui.rs:1012, ui/dr-ui/src/collections_ui.rs:119, ui/dr-ui/src/collections_ui.rs:1495, ui/dr-ui/src/collections_ui.rs:1509, ui/dr-ui/src/collections_ui.rs:160, ui/dr-ui/src/collections_ui.rs:1761, ui/dr-ui/src/collections_ui.rs:2812, ui/dr-ui/src/collections_ui.rs:486, ui/dr-ui/src/gestures.rs:1, ui/dr-ui/src/lib.rs:89, ui/dr-ui/src/lib.rs:96, ui/dr-ui/src/library_ui.rs:308, ui/dr-ui/src/library_ui.rs:5394, ui/dr-ui/src/library_ui.rs:5539, ui/dr-ui/src/library_ui.rs:6744, ui/dr-ui/ui/adjust.slint:1072, ui/dr-ui/ui/adjust.slint:544, ui/dr-ui/ui/adjust.slint:741, ui/dr-ui/ui/app.slint:2119, ui/dr-ui/ui/app.slint:530, ui/dr-ui/ui/app.slint:537, ui/dr-ui/ui/app.slint:58, ui/dr-ui/ui/app.slint:888, ui/dr-ui/ui/controls.slint:474, ui/dr-ui/ui/develop.slint:223, ui/dr-ui/ui/gestures.slint:1, ui/dr-ui/ui/histogram.slint:127, ui/dr-ui/ui/history.slint:118, ui/dr-ui/ui/library.slint:1267, ui/dr-ui/ui/library.slint:1274, ui/dr-ui/ui/library.slint:1337, ui/dr-ui/ui/library.slint:2692, ui/dr-ui/ui/library.slint:3828, ui/dr-ui/ui/library.slint:850, ui/dr-ui/ui/library.slint:906, ui/dr-ui/ui/masks.slint:314, ui/dr-ui/ui/peaking.slint:82, ui/dr-ui/ui/presets.slint:19, ui/dr-ui/ui/settings.slint:110, ui/dr-ui/ui/spots.slint:88
FR-UI-3 ui/dr-ui/src/develop.rs:2224, ui/dr-ui/src/develop.rs:2333, ui/dr-ui/src/library_ui.rs:4503, ui/dr-ui/src/masks_ui.rs:218, ui/dr-ui/src/masks_ui.rs:908, ui/dr-ui/src/masks_ui.rs:930, ui/dr-ui/src/spots_ui.rs:19, ui/dr-ui/ui/app.slint:1935, ui/dr-ui/ui/collections.slint:4, ui/dr-ui/ui/collections.slint:682, ui/dr-ui/ui/masks.slint:524
FR-UI-4 tools/traceability/src/gestures.rs:1, tools/traceability/src/gestures.rs:365, ui/dr-ui/src/collections_ui.rs:1002, ui/dr-ui/src/collections_ui.rs:1012, ui/dr-ui/src/collections_ui.rs:119, ui/dr-ui/src/collections_ui.rs:132, ui/dr-ui/src/collections_ui.rs:1495, ui/dr-ui/src/collections_ui.rs:1509, ui/dr-ui/src/collections_ui.rs:160, ui/dr-ui/src/collections_ui.rs:1625, ui/dr-ui/src/collections_ui.rs:1761, ui/dr-ui/src/collections_ui.rs:1788, ui/dr-ui/src/collections_ui.rs:1887, ui/dr-ui/src/collections_ui.rs:2812, ui/dr-ui/src/collections_ui.rs:486, ui/dr-ui/src/collections_ui.rs:560, ui/dr-ui/src/gesture_book.rs:3, ui/dr-ui/src/gestures.rs:1, ui/dr-ui/src/library_ui.rs:4503, ui/dr-ui/src/library_ui.rs:4515, ui/dr-ui/src/library_ui.rs:4567, ui/dr-ui/src/library_ui.rs:4670, ui/dr-ui/src/library_ui.rs:4698, ui/dr-ui/src/library_ui.rs:5527, ui/dr-ui/src/library_ui.rs:5539, ui/dr-ui/ui/app.slint:1775, ui/dr-ui/ui/app.slint:506, ui/dr-ui/ui/app.slint:537, ui/dr-ui/ui/app.slint:622, ui/dr-ui/ui/gestures.slint:1, ui/dr-ui/ui/library.slint:1075, ui/dr-ui/ui/library.slint:1242, ui/dr-ui/ui/library.slint:1267, ui/dr-ui/ui/library.slint:1274, ui/dr-ui/ui/library.slint:1330, ui/dr-ui/ui/library.slint:1337, ui/dr-ui/ui/library.slint:2692, ui/dr-ui/ui/library.slint:3828, ui/dr-ui/ui/library.slint:850, ui/dr-ui/ui/library.slint:900, ui/dr-ui/ui/library.slint:906, ui/dr-ui/ui/library.slint:925
FR-UI-5 ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/lib.rs:2609, ui/dr-ui/src/lib.rs:3211, ui/dr-ui/src/lib.rs:3396, ui/dr-ui/src/masks_ui.rs:863, ui/dr-ui/ui/app.slint:109, ui/dr-ui/ui/collections.slint:4
FR-UI-6 ui/dr-ui/ui/widgets.slint:1
FR-UI-7 core/dr-pipeline/src/descriptor.rs:177, core/dr-pipeline/src/framing.rs:385
NFR-ARCH-2 core/dr-catalog/src/jobs.rs:1, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/library.rs:3069
NFR-ARCH-3 ui/dr-ui/src/export.rs:1553, ui/dr-ui/src/export.rs:1579, ui/dr-ui/src/export.rs:409, ui/dr-ui/src/export.rs:435, ui/dr-ui/src/lib.rs:2306, ui/dr-ui/ui/app.slint:1064, ui/dr-ui/ui/library.slint:975
NFR-ARCH-4 core/dr-catalog/src/error.rs:1, core/dr-export/src/error.rs:1, core/dr-thumbs/src/error.rs:1, platform/dr-plat/src/storage.rs:148, ui/dr-ui/src/export.rs:499
NFR-OPS-1 tools/traceability/src/gestures.rs:1, tools/traceability/src/lib.rs:268
NFR-OPS-3 core/dr-types/src/settings.rs:1, ui/dr-ui/src/settings_store.rs:1
NFR-P1 core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/scan.rs:1, core/dr-catalog/src/walk.rs:162, core/dr-catalog/src/walk.rs:1, tools/traceability/src/lib.rs:481
NFR-P13 core/dr-decode/src/preview.rs:121
NFR-P14 core/dr-gpu/src/focus.rs:186, core/dr-gpu/src/focus.rs:1, core/dr-gpu/src/focus.rs:317, core/dr-gpu/src/shaders/focus_peak.wgsl:1, ui/dr-ui/src/develop.rs:2964, ui/dr-ui/src/lib.rs:1679
NFR-P5 core/dr-catalog/src/schema.rs:330, ui/dr-ui/src/library.rs:4132, ui/dr-ui/src/library.rs:5066, ui/dr-ui/src/library_ui.rs:4176, ui/dr-ui/src/library_ui.rs:64
NFR-P9 ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/export.rs:942, ui/dr-ui/src/library.rs:1, ui/dr-ui/src/library_ui.rs:1, ui/dr-ui/src/trash.rs:1
NFR-PORT-1 core/dr-catalog/src/walk.rs:1, core/dr-types/src/lib.rs:270, core/dr-types/src/lib.rs:303, platform/dr-plat/src/display.rs:1, platform/dr-plat/src/storage.rs:1, platform/dr-plat/src/storage.rs:216, platform/dr-plat/src/storage.rs:287, platform/dr-plat/src/storage.rs:344, platform/dr-plat/src/volumes.rs:1, platform/dr-plat/src/volumes.rs:62
NFR-PORT-2 core/dr-gpu/src/lib.rs:1
NFR-PORT-3 platform/dr-plat/src/storage.rs:1
NFR-R1 core/dr-catalog/src/sync.rs:1, core/dr-gpu/src/lib.rs:179, core/dr-sync/src/account.rs:220, ui/dr-ui/src/library.rs:1101
NFR-R2 core/dr-catalog/src/trash.rs:1
NFR-R5 core/dr-catalog/src/collections.rs:1, core/dr-catalog/src/error.rs:1, core/dr-catalog/src/keywords.rs:1, core/dr-catalog/src/schema.rs:1
NFR-R7 core/dr-gpu/src/error.rs:1
NFR-R8 core/dr-gpu/src/error.rs:1
NFR-RES-1 core/dr-gpu/src/adjust.rs:1029, core/dr-pipeline/src/history.rs:86, ui/dr-ui/src/develop.rs:3069, ui/dr-ui/src/identity_ui.rs:115, ui/dr-ui/src/lib.rs:81, ui/dr-ui/src/memory.rs:1
NFR-RES-4 core/dr-catalog/src/cache.rs:1, core/dr-catalog/src/face_shard.rs:1, core/dr-catalog/src/schema.rs:692, core/dr-gpu/src/lib.rs:80, core/dr-thumbs/src/codec.rs:1, core/dr-thumbs/src/lib.rs:1, core/dr-thumbs/src/lib.rs:376, ui/dr-ui/src/library.rs:2964
NFR-SEC-1 core/dr-decode/src/error.rs:1
NFR-SEC-2 core/dr-sync/src/account.rs:298, platform/dr-plat/src/secrets.rs:82
NFR-SEC-3 core/dr-sync-nextcloud/src/lib.rs:1, core/dr-sync-nextcloud/src/provider.rs:1
NFR-SEC-5 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:521, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/identity.rs:1, ui/dr-ui/src/identity_ui.rs:1, ui/dr-ui/ui/identity.slint:1
R1 tools/traceability/src/lib.rs:497, tools/traceability/src/lib.rs:501
R3 core/dr-export/src/lib.rs:1, core/dr-pipeline/src/lib.rs:1
R4 core/dr-gpu/src/lib.rs:338
R6 core/dr-sync-nextcloud/src/lib.rs:1

Not yet tagged

59 of 179 requirements have no implementation tag. Expected while the codebase is young; each should gain one as it is built.

Show untagged requirements
  • FR-CAT-14
  • FR-CULL-6
  • FR-CULL-7
  • FR-DEV-3g
  • FR-DSP-2
  • FR-DSP-4
  • FR-NC-11
  • FR-PLAT-AND-4
  • FR-PLAT-AND-6
  • FR-PLAT-LIN-3
  • FR-PLG-1
  • FR-PLG-10
  • FR-PLG-11
  • FR-PLG-12
  • FR-PLG-1a
  • FR-PLG-2a
  • FR-PLG-2b
  • FR-PLG-2c
  • FR-PLG-3
  • FR-PLG-3a
  • FR-PLG-4
  • FR-PLG-4a
  • FR-PLG-5
  • FR-PLG-5a
  • FR-PLG-5b
  • FR-PLG-5c
  • FR-PLG-6
  • FR-PLG-6a
  • FR-PLG-7
  • FR-PLG-8
  • FR-PLG-9
  • FR-RAW-2
  • NFR-A11Y-1
  • NFR-A11Y-2
  • NFR-A11Y-3
  • NFR-ARCH-1
  • NFR-COMPAT-1
  • NFR-COMPAT-2
  • NFR-OPS-2
  • NFR-OPS-4
  • NFR-P10
  • NFR-P11
  • NFR-P12
  • NFR-P15
  • NFR-P2
  • NFR-P3
  • NFR-P4
  • NFR-P6
  • NFR-P7
  • NFR-P8
  • NFR-R3
  • NFR-R4
  • NFR-R6
  • NFR-RES-2
  • NFR-RES-3
  • NFR-SEC-4
  • NFR-SEC-6
  • R2
  • R5