Files
DarkRoom/docs/traceability.md
T
dtourolleandClaude Opus 5 f41b3f6e8e
Build and test / Desktop (Linux) (push) Successful in 2h7m52s
Build and test / Layer separation (push) Successful in 59s
🐳 Android image / Build and push (push) Successful in 3s
Build and test / android-image (push) Successful in 4s
Traceability / Requirement traces (push) Successful in 37s
Build and test / Android (aarch64) (push) Successful in 22m22s
Answer "what would the other device end up with" without the other device
A tablet showed 200 of a person's 611 faces after syncing, and the obvious
suspects — that suggestions deliberately do not travel, that the cross-device
face match was too strict — were both wrong. Finding that out meant reading a
catalog on a release-signed Android build, which cannot be done.

So this stands the second device up locally: an empty catalog, given the images
a scan would have found, the shards adopted into it exactly as a sync does, and
the real catalog merged in as the remote. Then it counts, per person, against
what the source holds.

    person                     source     here
    Catherine                     611      611
    Me                            242      242
    Ian                           219      219

Which settled it: the merge carries everything, and the shortfall was transfer —
shards that never finished arriving. Worth keeping, because "did the sync lose
this or has it not got here yet" is a question that will come up again, and
guessing at it cost most of an evening.

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

84 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 278
TRACES tags found 811
Requirements defined 177
Requirements covered 106
Coverage 59.9% (106/177)

By type

Type Covered Defined
FR 84 122
NFR 20 49
R 2 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:200, core/dr-types/src/lib.rs:269, core/dr-types/src/lib.rs:302, platform/dr-plat/src/storage.rs:1, platform/dr-plat/src/storage.rs:216, tools/traceability/src/lib.rs:479, tools/traceability/src/lib.rs:511, 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:116, 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:337, ui/dr-ui/src/import_ui.rs:1, ui/dr-ui/src/lib.rs:1126, ui/dr-ui/ui/import.slint:5, ui/dr-ui/ui/library.slint:1014, ui/dr-ui/ui/library.slint:1176, ui/dr-ui/ui/library.slint:863
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:1126, ui/dr-ui/src/library.rs:163, ui/dr-ui/src/library.rs:2247, ui/dr-ui/ui/import.slint:5
FR-CAT-12 core/dr-pipeline/src/sidecar.rs:118
FR-CAT-13 core/dr-catalog/src/keywords.rs:1
FR-CAT-15 core/dr-catalog/src/schema.rs:641, core/dr-catalog/src/trash.rs:1, core/dr-sync-nextcloud/src/lib.rs:447, core/dr-sync/src/lib.rs:124, core/dr-sync/src/scan.rs:426, core/dr-sync/src/scan.rs:57, core/dr-thumbs/src/lib.rs:376, ui/dr-ui/src/collections_ui.rs:1225, ui/dr-ui/src/collections_ui.rs:1995, ui/dr-ui/src/library.rs:163, ui/dr-ui/src/library.rs:180, ui/dr-ui/src/library.rs:209, ui/dr-ui/src/library.rs:3661, ui/dr-ui/src/library.rs:3695, ui/dr-ui/src/library_ui.rs:185, ui/dr-ui/src/library_ui.rs:758, 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:53, 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:479
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:464, ui/dr-ui/src/import.rs:489, ui/dr-ui/src/library.rs:2724, ui/dr-ui/src/library.rs:3195, ui/dr-ui/src/library_ui.rs:172, ui/dr-ui/src/library_ui.rs:3627, ui/dr-ui/src/library_ui.rs:4593, ui/dr-ui/ui/app.slint:316, ui/dr-ui/ui/settings.slint:372, ui/dr-ui/ui/settings.slint:72
FR-CAT-4 core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/query.rs:1, core/dr-catalog/src/schema.rs:318, ui/dr-ui/src/library.rs:190, ui/dr-ui/src/library.rs:1, 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:1059, core/dr-catalog/src/schema.rs:556, core/dr-decode/src/lib.rs:285, core/dr-decode/src/lib.rs:404, core/dr-pipeline/src/sidecar.rs:135, ui/dr-ui/src/collections_ui.rs:1578, ui/dr-ui/src/collections_ui.rs:1597, ui/dr-ui/src/collections_ui.rs:243, ui/dr-ui/src/collections_ui.rs:340, ui/dr-ui/src/collections_ui.rs:89, ui/dr-ui/src/library.rs:3709, ui/dr-ui/src/library_ui.rs:629, ui/dr-ui/src/library_ui.rs:6390, ui/dr-ui/src/library_ui.rs:6401, ui/dr-ui/src/library_ui.rs:6414, ui/dr-ui/src/library_ui.rs:6429, ui/dr-ui/src/library_ui.rs:6438, ui/dr-ui/ui/app.slint:261, ui/dr-ui/ui/app.slint:442, ui/dr-ui/ui/library.slint:1225, ui/dr-ui/ui/library.slint:1228, ui/dr-ui/ui/library.slint:18, ui/dr-ui/ui/library.slint:856, ui/dr-ui/ui/library.slint:908
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:556, core/dr-types/src/selector.rs:1, core/dr-types/src/settings.rs:63, core/dr-types/src/time.rs:67, core/dr-types/src/time.rs:90, ui/dr-ui/src/library.rs:214, ui/dr-ui/src/library.rs:3955, ui/dr-ui/src/library_ui.rs:316, ui/dr-ui/src/library_ui.rs:388, ui/dr-ui/src/library_ui.rs:5204, ui/dr-ui/src/library_ui.rs:5257, ui/dr-ui/src/library_ui.rs:6530, ui/dr-ui/ui/app.slint:264, ui/dr-ui/ui/app.slint:442, ui/dr-ui/ui/app.slint:687, ui/dr-ui/ui/library.slint:109, ui/dr-ui/ui/library.slint:1301, ui/dr-ui/ui/library.slint:908, ui/dr-ui/ui/settings.slint:147
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:1693, ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/derived_sync.rs:1, ui/dr-ui/src/library_ui.rs:3485, ui/dr-ui/src/library_ui.rs:4183, ui/dr-ui/ui/app.slint:437, ui/dr-ui/ui/collections.slint:4, ui/dr-ui/ui/library.slint:2564, ui/dr-ui/ui/library.slint:879, ui/dr-ui/ui/library.slint:898
FR-CAT-8 core/dr-pipeline/src/graph.rs:345, core/dr-pipeline/src/graph.rs:384, core/dr-pipeline/src/ops/curve.rs:137, core/dr-pipeline/src/ops/curve.rs:656, core/dr-pipeline/src/sidecar.rs:1636, core/dr-pipeline/src/sidecar.rs:92, 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:3345, ui/dr-ui/src/develop.rs:3374, ui/dr-ui/src/export.rs:752, ui/dr-ui/src/lib.rs:1387, ui/dr-ui/src/lib.rs:1788, ui/dr-ui/src/lib.rs:1924, ui/dr-ui/src/lib.rs:498, ui/dr-ui/src/lib.rs:923, ui/dr-ui/src/library.rs:1656, ui/dr-ui/src/library.rs:460, ui/dr-ui/src/library.rs:507, ui/dr-ui/src/library.rs:544, ui/dr-ui/src/library.rs:792, ui/dr-ui/src/library_ui.rs:4885, 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:613, 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:704, core/dr-sync-nextcloud/src/desktop_client.rs:30, core/dr-sync/src/reachability.rs:1, core/dr-types/src/lib.rs:119, ui/dr-ui/src/develop.rs:2870, ui/dr-ui/src/library.rs:149, ui/dr-ui/src/library.rs:1616, ui/dr-ui/src/library.rs:1693, ui/dr-ui/src/library.rs:234, ui/dr-ui/src/library.rs:4062, ui/dr-ui/src/library.rs:544, ui/dr-ui/src/library.rs:776, ui/dr-ui/src/library.rs:792, ui/dr-ui/src/library.rs:846, ui/dr-ui/src/library_ui.rs:1565, ui/dr-ui/src/library_ui.rs:1591, ui/dr-ui/src/library_ui.rs:1607, ui/dr-ui/src/library_ui.rs:1701, ui/dr-ui/src/library_ui.rs:227, ui/dr-ui/src/library_ui.rs:2317, ui/dr-ui/src/library_ui.rs:260, ui/dr-ui/src/library_ui.rs:2755, ui/dr-ui/src/library_ui.rs:2979, ui/dr-ui/src/library_ui.rs:3260, ui/dr-ui/src/library_ui.rs:3348, ui/dr-ui/src/library_ui.rs:3536, ui/dr-ui/src/library_ui.rs:3654, ui/dr-ui/src/library_ui.rs:441, ui/dr-ui/src/library_ui.rs:499, ui/dr-ui/src/library_ui.rs:5302, ui/dr-ui/src/library_ui.rs:5417, ui/dr-ui/src/presets.rs:326, ui/dr-ui/src/presets.rs:338, 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:357, core/dr-catalog/src/schema.rs:442, core/dr-face/src/neighbours.rs:1, ui/dr-ui/src/develop.rs:119, ui/dr-ui/src/develop.rs:128, ui/dr-ui/src/develop.rs:1793, ui/dr-ui/src/develop.rs:194, ui/dr-ui/src/develop.rs:589, 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:1896, ui/dr-ui/ui/identity.slint:1
FR-CULL-11 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:442, ui/dr-ui/src/identity.rs:1, ui/dr-ui/src/identity_ui.rs:1, ui/dr-ui/src/library.rs:255, ui/dr-ui/src/library.rs:285, ui/dr-ui/ui/identity.slint:1
FR-CULL-12 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:357, core/dr-catalog/src/schema.rs:442, 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:464
FR-CULL-4 core/dr-catalog/src/rating.rs:1, core/dr-pipeline/src/sidecar.rs:135, ui/dr-ui/src/library.rs:214, ui/dr-ui/src/library.rs:460
FR-CULL-8 core/dr-catalog/src/face_shard.rs:1, core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:401, core/dr-catalog/src/schema.rs:442, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/library.rs:2725, ui/dr-ui/src/library.rs:2829, ui/dr-ui/ui/settings.slint:404, ui/dr-ui/ui/settings.slint:81
FR-CULL-9 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:442, core/dr-face/src/neighbours.rs:1, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/identity_ui.rs:1
FR-DEV-2 core/dr-pipeline/src/operation.rs:389
FR-DEV-3 core/dr-gpu/src/adjust.rs:2165, 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:387, core/dr-pipeline/src/detail.rs:465, core/dr-pipeline/src/framing.rs:191, core/dr-pipeline/src/framing.rs:365, core/dr-pipeline/src/framing.rs:620, core/dr-pipeline/src/graph.rs:169, core/dr-pipeline/src/graph.rs:577, 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:156, core/dr-pipeline/src/sidecar.rs:1636, core/dr-pipeline/src/sidecar.rs:1696, core/dr-pipeline/tests/tone_curve.rs:1, ui/dr-ui/src/develop.rs:101, ui/dr-ui/src/develop.rs:1297, ui/dr-ui/src/develop.rs:163, ui/dr-ui/src/develop.rs:1775, ui/dr-ui/src/develop.rs:1793, ui/dr-ui/src/develop.rs:1807, ui/dr-ui/src/develop.rs:1829, ui/dr-ui/src/develop.rs:1975, ui/dr-ui/src/develop.rs:2073, ui/dr-ui/src/develop.rs:326, ui/dr-ui/src/develop.rs:3345, ui/dr-ui/src/develop.rs:363, ui/dr-ui/src/develop.rs:3909, ui/dr-ui/src/develop.rs:3963, ui/dr-ui/src/develop.rs:4007, ui/dr-ui/src/develop.rs:4057, ui/dr-ui/src/develop.rs:628, ui/dr-ui/src/develop.rs:675, ui/dr-ui/src/lib.rs:1472, ui/dr-ui/src/lib.rs:2174, ui/dr-ui/src/lib.rs:319, ui/dr-ui/src/library.rs:507, 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/app.slint:1761, ui/dr-ui/ui/app.slint:790, ui/dr-ui/ui/masks.slint:490
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:262, core/dr-pipeline/src/graph.rs:23, core/dr-pipeline/src/graph.rs:250, core/dr-pipeline/src/graph.rs:45, core/dr-pipeline/src/graph.rs:58, 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:1194, ui/dr-ui/src/lib.rs:613, 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:262, core/dr-pipeline/src/graph.rs:58, 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:250, core/dr-pipeline/src/graph.rs:45, core/dr-pipeline/src/mask.rs:955, ui/dr-ui/src/develop.rs:4636
FR-DEV-3d core/dr-gpu/src/adjust.rs:1041, core/dr-gpu/src/adjust.rs:104, 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:476, core/dr-gpu/tests/noise_reduction.rs:556, core/dr-pipeline/src/framing.rs:191, core/dr-pipeline/src/graph.rs:616, 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:101, core/dr-pipeline/src/graph.rs:124, core/dr-pipeline/src/graph.rs:324, 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:111, core/dr-pipeline/src/sidecar.rs:167, core/dr-pipeline/src/sidecar.rs:1957, core/dr-pipeline/src/sidecar.rs:2033, core/dr-pipeline/src/sidecar.rs:533, core/dr-pipeline/src/sidecar.rs:660, core/dr-pipeline/src/sidecar.rs:792, 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:2885, ui/dr-ui/src/develop.rs:2902, ui/dr-ui/src/develop.rs:2914, ui/dr-ui/src/develop.rs:2952, ui/dr-ui/src/develop.rs:2961, ui/dr-ui/src/develop.rs:3064, ui/dr-ui/src/develop.rs:3382, ui/dr-ui/src/develop.rs:3397, ui/dr-ui/src/lib.rs:2148, ui/dr-ui/src/lib.rs:546, ui/dr-ui/src/lib.rs:604, ui/dr-ui/src/library.rs:498, ui/dr-ui/src/library.rs:747, ui/dr-ui/src/presets.rs:275, ui/dr-ui/ui/adjust.slint:1006, ui/dr-ui/ui/adjust.slint:924, ui/dr-ui/ui/app.slint:2251, ui/dr-ui/ui/app.slint:568
FR-DEV-3h core/dr-decode/src/lib.rs:404, core/dr-decode/src/preview.rs:29, core/dr-pipeline/src/framing.rs:205, core/dr-pipeline/src/framing.rs:365, core/dr-pipeline/src/framing.rs:927, core/dr-types/src/lib.rs:336, core/dr-types/src/lib.rs:444, core/dr-types/src/lib.rs:456, core/dr-types/src/lib.rs:472, ui/dr-ui/src/develop.rs:138, ui/dr-ui/src/develop.rs:1992, ui/dr-ui/src/segmentation.rs:322
FR-DEV-4 core/dr-gpu/src/adjust.rs:770, core/dr-gpu/src/lib.rs:217, ui/dr-ui/ui/crop.slint:1
FR-DEV-5 core/dr-pipeline/src/graph.rs:345, core/dr-pipeline/src/graph.rs:384, 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:2914, ui/dr-ui/src/develop.rs:3397, ui/dr-ui/src/develop.rs:3427, ui/dr-ui/src/develop.rs:3440, ui/dr-ui/src/develop.rs:3452, ui/dr-ui/src/develop.rs:3468, ui/dr-ui/src/develop.rs:3500, ui/dr-ui/src/develop.rs:3504, ui/dr-ui/src/develop.rs:3523, ui/dr-ui/src/develop.rs:3539, ui/dr-ui/src/develop.rs:610, ui/dr-ui/src/labels.rs:12, ui/dr-ui/src/labels.rs:215, ui/dr-ui/src/lib.rs:1420, ui/dr-ui/src/lib.rs:1450, ui/dr-ui/src/lib.rs:1458, ui/dr-ui/src/lib.rs:2344, ui/dr-ui/ui/history.slint:1
FR-DEV-6 core/dr-pipeline/src/preset.rs:1, core/dr-types/src/settings.rs:182, ui/dr-ui/src/develop.rs:3339, ui/dr-ui/src/develop.rs:3360, ui/dr-ui/src/lib.rs:1387, ui/dr-ui/src/library.rs:1656, ui/dr-ui/src/library.rs:460, ui/dr-ui/src/library.rs:488, ui/dr-ui/src/library_ui.rs:2577, ui/dr-ui/src/library_ui.rs:2979, ui/dr-ui/src/library_ui.rs:467, ui/dr-ui/src/presets.rs:1, ui/dr-ui/src/settings_ui.rs:547, ui/dr-ui/ui/adjust.slint:613, ui/dr-ui/ui/library.slint:1328, ui/dr-ui/ui/library.slint:837, ui/dr-ui/ui/library.slint:919, ui/dr-ui/ui/settings.slint:100
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:3468, ui/dr-ui/src/develop.rs:3500, ui/dr-ui/src/lib.rs:1458, ui/dr-ui/src/lib.rs:2344, ui/dr-ui/ui/history.slint:1
FR-DEV-8 core/dr-gpu/src/detail.rs:252, core/dr-gpu/src/detail.rs:434, core/dr-gpu/tests/detail_instances.rs:1, core/dr-gpu/tests/spot_removal.rs:1, core/dr-pipeline/src/detail.rs:363, core/dr-pipeline/src/detail.rs:387, core/dr-pipeline/src/detail.rs:422, core/dr-pipeline/src/detail.rs:496, core/dr-pipeline/src/graph.rs:113, core/dr-pipeline/src/graph.rs:191, core/dr-pipeline/src/graph.rs:685, core/dr-pipeline/src/operation.rs:330, core/dr-pipeline/src/operation.rs:554, core/dr-pipeline/src/sidecar.rs:183, core/dr-pipeline/src/sidecar.rs:352, core/dr-pipeline/src/sidecar.rs:672, core/dr-pipeline/src/sidecar.rs:808, core/dr-pipeline/src/sidecar.rs:862, core/dr-pipeline/src/sidecar.rs:892, 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:2144, ui/dr-ui/src/develop.rs:2182, ui/dr-ui/src/develop.rs:2247, ui/dr-ui/src/develop.rs:2330, ui/dr-ui/src/develop.rs:2344, ui/dr-ui/src/develop.rs:658, ui/dr-ui/src/labels.rs:52, ui/dr-ui/src/lib.rs:1479, ui/dr-ui/src/lib.rs:2441, ui/dr-ui/src/lib.rs:324, 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:700, ui/dr-ui/ui/app.slint:108, ui/dr-ui/ui/app.slint:1666, ui/dr-ui/ui/app.slint:1839, ui/dr-ui/ui/app.slint:2157, 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:2088, core/dr-gpu/src/adjust.rs:2165, core/dr-gpu/src/adjust.rs:2250, core/dr-gpu/src/adjust.rs:54, core/dr-gpu/src/adjust.rs:770, core/dr-gpu/src/lib.rs:54, core/dr-gpu/src/lib.rs:94, core/dr-gpu/tests/capture_sharpen.rs:200, core/dr-gpu/tests/detail_stage.rs:328, core/dr-gpu/tests/local_contrast.rs:263, core/dr-gpu/tests/noise_reduction.rs:378, core/dr-pipeline/src/detail.rs:136, core/dr-pipeline/src/detail.rs:465, core/dr-pipeline/src/graph.rs:547, core/dr-pipeline/src/graph.rs:577, core/dr-pipeline/src/ops/capture_sharpen.rs:1, core/dr-pipeline/src/ops/capture_sharpen.rs:657, core/dr-pipeline/src/ops/local_contrast.rs:1, core/dr-pipeline/src/ops/local_contrast.rs:672, core/dr-pipeline/src/ops/noise_reduction.rs:698, core/dr-pipeline/src/spot.rs:673, ui/dr-ui/src/develop.rs:2668, ui/dr-ui/src/develop.rs:3698, ui/dr-ui/src/develop.rs:4181, ui/dr-ui/src/develop.rs:4215, ui/dr-ui/src/lib.rs:72, ui/dr-ui/src/lib.rs:754, ui/dr-ui/src/lib.rs:813
FR-DSP-3 core/dr-gpu/tests/frame_budget.rs:101
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:2698, ui/dr-ui/src/develop.rs:5473, ui/dr-ui/src/lib.rs:1435, ui/dr-ui/src/lib.rs:2647
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:2747, ui/dr-ui/src/develop.rs:5283, ui/dr-ui/src/develop.rs:5315, ui/dr-ui/src/develop.rs:621, ui/dr-ui/src/histogram.rs:1, ui/dr-ui/src/lib.rs:1535, ui/dr-ui/src/lib.rs:314, ui/dr-ui/ui/app.slint:68, 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:2644, ui/dr-ui/src/develop.rs:2698, ui/dr-ui/src/develop.rs:5473, ui/dr-ui/src/develop.rs:5519, ui/dr-ui/src/develop.rs:5538, ui/dr-ui/src/develop.rs:689, 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:1409, ui/dr-ui/src/lib.rs:1435, ui/dr-ui/src/lib.rs:2624, ui/dr-ui/src/lib.rs:2647, ui/dr-ui/ui/app.slint:1526, ui/dr-ui/ui/app.slint:47, ui/dr-ui/ui/settings.slint:120, ui/dr-ui/ui/settings.slint:731
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:2398, core/dr-pipeline/src/graph.rs:537, core/dr-pipeline/src/graph.rs:591, 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:595, ui/dr-ui/src/develop.rs:5538, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-3 core/dr-export/src/lib.rs:1, core/dr-export/src/size.rs:1, core/dr-export/src/size.rs:25, core/dr-types/src/settings.rs:1, ui/dr-ui/src/settings_ui.rs:1
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:362, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/src/settings_ui.rs:48, ui/dr-ui/src/settings_ui.rs:602
FR-EXP-7 ui/dr-ui/src/activity.rs:83, ui/dr-ui/src/export.rs:1, ui/dr-ui/src/export.rs:944, ui/dr-ui/src/lib.rs:204, ui/dr-ui/src/lib.rs:2090, ui/dr-ui/src/lib.rs:362, ui/dr-ui/src/lib.rs:397, ui/dr-ui/src/lib.rs:424, ui/dr-ui/src/library_ui.rs:3365, ui/dr-ui/src/library_ui.rs:558, ui/dr-ui/src/library_ui.rs:6372, ui/dr-ui/src/library_ui.rs:6449, ui/dr-ui/src/library_ui.rs:6461, ui/dr-ui/src/library_ui.rs:661, ui/dr-ui/src/library_ui.rs:718, ui/dr-ui/ui/app.slint:1367, ui/dr-ui/ui/app.slint:926, ui/dr-ui/ui/library.slint:1336, ui/dr-ui/ui/library.slint:841, ui/dr-ui/ui/library.slint:934
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:652, core/dr-types/src/settings.rs:313, ui/dr-ui/src/export.rs:620, ui/dr-ui/src/export.rs:648, ui/dr-ui/src/export.rs:779, ui/dr-ui/src/export.rs:796, 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:1068, ui/dr-ui/src/develop.rs:2829, ui/dr-ui/src/lib.rs:362
FR-NC-1 core/dr-sync-nextcloud/src/auth.rs:132, core/dr-sync-nextcloud/src/auth.rs:44, core/dr-sync-nextcloud/src/session.rs:128, ui/dr-ui/src/launch.rs:256, ui/dr-ui/src/launch.rs:49, ui/dr-ui/src/launch_ui.rs:344
FR-NC-10 ui/dr-ui/src/export.rs:1, ui/dr-ui/src/lib.rs:424, ui/dr-ui/src/library.rs:1049, ui/dr-ui/src/library.rs:1693, ui/dr-ui/src/library.rs:544, ui/dr-ui/src/library.rs:846, ui/dr-ui/src/library_ui.rs:1607, ui/dr-ui/src/library_ui.rs:3365, ui/dr-ui/src/library_ui.rs:499, ui/dr-ui/src/sidecar_cache.rs:1
FR-NC-12 core/dr-sync-nextcloud/src/lib.rs:34, core/dr-sync-nextcloud/src/lib.rs:904, core/dr-sync/src/lib.rs:157, core/dr-sync/src/lib.rs:40, core/dr-sync/src/reachability.rs:1, ui/dr-ui/src/remote.rs:1
FR-NC-2 core/dr-sync-nextcloud/src/session.rs:128, core/dr-sync-nextcloud/src/session.rs:34, 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:41, core/dr-thumbs/src/lib.rs:1, ui/dr-ui/src/library.rs:1, ui/dr-ui/src/library.rs:2724, ui/dr-ui/src/library.rs:3195, ui/dr-ui/src/library_ui.rs:1, ui/dr-ui/src/library_ui.rs:3627, ui/dr-ui/src/library_ui.rs:4593, ui/dr-ui/ui/app.slint:316, ui/dr-ui/ui/settings.slint:372, ui/dr-ui/ui/settings.slint:72
FR-NC-4 core/dr-sync-nextcloud/src/propfind.rs:100, core/dr-sync-nextcloud/src/propfind.rs:51, core/dr-sync/src/capability.rs:6, core/dr-sync/src/lib.rs:157, core/dr-sync/src/scan.rs:93, ui/dr-ui/src/launch.rs:49
FR-NC-5 core/dr-sync-nextcloud/src/propfind.rs:51, ui/dr-ui/src/import.rs:489
FR-NC-6 ui/dr-ui/src/activity.rs:1
FR-NC-6a core/dr-catalog/src/cache.rs:1, core/dr-catalog/src/schema.rs:1014, core/dr-catalog/src/schema.rs:613, core/dr-types/src/selector.rs:1, core/dr-types/src/settings.rs:1, ui/dr-ui/src/collections_ui.rs:3195, ui/dr-ui/src/collections_ui.rs:621, ui/dr-ui/src/collections_ui.rs:683, ui/dr-ui/src/lib.rs:1819, ui/dr-ui/src/lib.rs:2710, ui/dr-ui/src/library.rs:1435, ui/dr-ui/src/library.rs:1458, ui/dr-ui/src/library.rs:1616, ui/dr-ui/src/library_ui.rs:1066, ui/dr-ui/src/library_ui.rs:1139, ui/dr-ui/src/library_ui.rs:1240, ui/dr-ui/src/library_ui.rs:1295, ui/dr-ui/src/library_ui.rs:1413, ui/dr-ui/src/library_ui.rs:1532, ui/dr-ui/src/library_ui.rs:2059, ui/dr-ui/src/library_ui.rs:268, ui/dr-ui/src/library_ui.rs:279, ui/dr-ui/src/library_ui.rs:287, ui/dr-ui/src/library_ui.rs:299, ui/dr-ui/src/library_ui.rs:308, ui/dr-ui/src/library_ui.rs:400, ui/dr-ui/src/library_ui.rs:410, ui/dr-ui/src/library_ui.rs:452, ui/dr-ui/src/library_ui.rs:515, ui/dr-ui/src/library_ui.rs:5319, ui/dr-ui/src/library_ui.rs:5337, ui/dr-ui/src/library_ui.rs:5349, ui/dr-ui/src/library_ui.rs:546, ui/dr-ui/src/library_ui.rs:558, ui/dr-ui/src/settings_store.rs:1, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/ui/app.slint:2330, ui/dr-ui/ui/app.slint:431, 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:980
FR-NC-6b ui/dr-ui/src/library_ui.rs:1295
FR-NC-6c core/dr-sync-nextcloud/src/desktop_client.rs:30, core/dr-types/src/lib.rs:119, core/dr-types/src/lib.rs:201, ui/dr-ui/src/activity.rs:1, ui/dr-ui/src/collections_ui.rs:3195, ui/dr-ui/src/collections_ui.rs:621, ui/dr-ui/src/collections_ui.rs:683, ui/dr-ui/src/library_ui.rs:1066, ui/dr-ui/src/library_ui.rs:1139, ui/dr-ui/ui/collections.slint:249, ui/dr-ui/ui/collections.slint:682, ui/dr-ui/ui/icons.slint:260
FR-NC-7 core/dr-catalog/src/face_shard.rs:1, core/dr-sync-nextcloud/src/lib.rs:95, ui/dr-ui/src/derived_sync.rs:1, ui/dr-ui/src/library.rs:3195, ui/dr-ui/src/library_ui.rs:3627, ui/dr-ui/ui/settings.slint:372
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:116, 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:1126, 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:123, ui/dr-ui/src/import.rs:337, ui/dr-ui/src/import.rs:585, ui/dr-ui/src/import.rs:97, ui/dr-ui/src/import_ui.rs:1, ui/dr-ui/src/lib.rs:1126
FR-NC-8 core/dr-pipeline/src/sidecar.rs:118, core/dr-pipeline/src/sidecar.rs:92, ui/dr-ui/src/lib.rs:1788, ui/dr-ui/src/library.rs:460, ui/dr-ui/src/library_ui.rs:467
FR-NC-9 core/dr-catalog/src/merge.rs:1, core/dr-catalog/src/schema.rs:556, core/dr-catalog/src/sync.rs:1, core/dr-pipeline/src/sidecar.rs:156, core/dr-pipeline/src/sidecar.rs:183, core/dr-pipeline/src/sidecar.rs:2033, core/dr-pipeline/src/sidecar.rs:352, core/dr-pipeline/src/sidecar.rs:450, core/dr-pipeline/src/spot.rs:245, core/dr-pipeline/tests/spot_sidecar.rs:1, ui/dr-ui/src/library.rs:846, ui/dr-ui/src/library.rs:976
FR-PLAT-AND-1 core/dr-types/src/lib.rs:53, platform/dr-plat/src/volumes.rs:62
FR-PLAT-AND-3 core/dr-catalog/src/jobs.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:863, 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:635, 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:129, core/dr-types/src/lib.rs:200
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:204
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:2792, ui/dr-ui/src/lib.rs:80, ui/dr-ui/src/masks_ui.rs:816, ui/dr-ui/ui/identity.slint:165, ui/dr-ui/ui/library.slint:1046
FR-UI-2 ui/dr-ui/src/collections_ui.rs:1005, ui/dr-ui/src/collections_ui.rs:118, ui/dr-ui/src/collections_ui.rs:1508, ui/dr-ui/src/collections_ui.rs:1522, ui/dr-ui/src/collections_ui.rs:1568, ui/dr-ui/src/collections_ui.rs:159, ui/dr-ui/src/collections_ui.rs:1666, ui/dr-ui/src/collections_ui.rs:485, ui/dr-ui/src/collections_ui.rs:514, ui/dr-ui/src/collections_ui.rs:995, ui/dr-ui/src/lib.rs:80, ui/dr-ui/src/lib.rs:87, ui/dr-ui/src/library_ui.rs:287, ui/dr-ui/src/library_ui.rs:5204, ui/dr-ui/src/library_ui.rs:5349, ui/dr-ui/src/library_ui.rs:6480, ui/dr-ui/ui/adjust.slint:506, ui/dr-ui/ui/adjust.slint:641, ui/dr-ui/ui/adjust.slint:962, ui/dr-ui/ui/app.slint:1945, ui/dr-ui/ui/app.slint:461, ui/dr-ui/ui/app.slint:468, ui/dr-ui/ui/app.slint:54, ui/dr-ui/ui/app.slint:761, ui/dr-ui/ui/develop.slint:223, ui/dr-ui/ui/histogram.slint:127, ui/dr-ui/ui/history.slint:118, ui/dr-ui/ui/library.slint:1202, ui/dr-ui/ui/library.slint:1209, ui/dr-ui/ui/library.slint:1215, ui/dr-ui/ui/library.slint:2314, ui/dr-ui/ui/library.slint:829, ui/dr-ui/ui/library.slint:879, ui/dr-ui/ui/masks.slint:304, ui/dr-ui/ui/settings.slint:106, ui/dr-ui/ui/spots.slint:88
FR-UI-3 ui/dr-ui/src/develop.rs:2073, ui/dr-ui/src/develop.rs:2182, ui/dr-ui/src/library_ui.rs:4388, 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:1761, ui/dr-ui/ui/collections.slint:4, ui/dr-ui/ui/collections.slint:682, ui/dr-ui/ui/masks.slint:490
FR-UI-4 ui/dr-ui/src/collections_ui.rs:1005, ui/dr-ui/src/collections_ui.rs:118, ui/dr-ui/src/collections_ui.rs:131, ui/dr-ui/src/collections_ui.rs:1508, ui/dr-ui/src/collections_ui.rs:1522, ui/dr-ui/src/collections_ui.rs:1568, ui/dr-ui/src/collections_ui.rs:159, ui/dr-ui/src/collections_ui.rs:1666, ui/dr-ui/src/collections_ui.rs:1693, ui/dr-ui/src/collections_ui.rs:485, ui/dr-ui/src/collections_ui.rs:514, ui/dr-ui/src/collections_ui.rs:582, ui/dr-ui/src/collections_ui.rs:995, ui/dr-ui/src/library_ui.rs:4388, ui/dr-ui/src/library_ui.rs:4433, ui/dr-ui/src/library_ui.rs:4536, ui/dr-ui/src/library_ui.rs:4564, ui/dr-ui/src/library_ui.rs:5337, ui/dr-ui/src/library_ui.rs:5349, ui/dr-ui/ui/app.slint:1603, ui/dr-ui/ui/app.slint:437, ui/dr-ui/ui/app.slint:468, ui/dr-ui/ui/library.slint:1202, ui/dr-ui/ui/library.slint:1209, ui/dr-ui/ui/library.slint:1215, ui/dr-ui/ui/library.slint:2314, ui/dr-ui/ui/library.slint:829, ui/dr-ui/ui/library.slint:879, ui/dr-ui/ui/library.slint:898
FR-UI-5 ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/lib.rs:2406, ui/dr-ui/src/lib.rs:2831, ui/dr-ui/src/lib.rs:3016, ui/dr-ui/src/masks_ui.rs:863, ui/dr-ui/ui/app.slint:89, ui/dr-ui/ui/collections.slint:4
FR-UI-7 core/dr-pipeline/src/descriptor.rs:177, core/dr-pipeline/src/framing.rs:262
NFR-ARCH-2 core/dr-catalog/src/jobs.rs:1, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/library.rs:2829
NFR-ARCH-3 ui/dr-ui/src/export.rs:1555, ui/dr-ui/src/export.rs:1581, ui/dr-ui/src/export.rs:410, ui/dr-ui/src/export.rs:436, ui/dr-ui/src/lib.rs:2124, ui/dr-ui/ui/app.slint:937, ui/dr-ui/ui/library.slint:934
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:500
NFR-OPS-1 tools/traceability/src/lib.rs:266
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:479
NFR-P13 core/dr-decode/src/preview.rs:121
NFR-P5 core/dr-catalog/src/schema.rs:318, ui/dr-ui/src/library.rs:3795, ui/dr-ui/src/library.rs:4568, ui/dr-ui/src/library_ui.rs:4073, ui/dr-ui/src/library_ui.rs:64
NFR-P9 ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/export.rs:944, 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:269, core/dr-types/src/lib.rs:302, 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-3 platform/dr-plat/src/storage.rs:1
NFR-R1 core/dr-catalog/src/sync.rs:1, ui/dr-ui/src/library.rs:1049
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-pipeline/src/history.rs:86, ui/dr-ui/src/lib.rs:72
NFR-RES-4 core/dr-catalog/src/cache.rs:1, core/dr-catalog/src/face_shard.rs:1, core/dr-catalog/src/schema.rs:613, 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:2724
NFR-SEC-1 core/dr-decode/src/error.rs:1
NFR-SEC-2 platform/dr-plat/src/secrets.rs:82
NFR-SEC-5 core/dr-catalog/src/faces.rs:1, core/dr-catalog/src/schema.rs:442, 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:495, tools/traceability/src/lib.rs:499
R4 core/dr-gpu/src/lib.rs:217

Not yet tagged

71 of 177 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-3
  • FR-CULL-5
  • FR-CULL-6
  • FR-CULL-7
  • FR-DEV-1
  • FR-DEV-3g
  • FR-DSP-2
  • FR-DSP-4
  • FR-NC-11
  • FR-PLAT-AND-2
  • FR-PLAT-AND-4
  • FR-PLAT-AND-5
  • 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
  • FR-UI-6
  • NFR-A11Y-1
  • NFR-A11Y-2
  • NFR-A11Y-3
  • NFR-ARCH-1
  • NFR-COMPAT-1
  • NFR-COMPAT-2
  • NFR-OPS-2
  • NFR-OPS-3
  • NFR-OPS-4
  • NFR-P10
  • NFR-P11
  • NFR-P12
  • NFR-P14
  • NFR-P15
  • NFR-P2
  • NFR-P3
  • NFR-P4
  • NFR-P6
  • NFR-P7
  • NFR-P8
  • NFR-PORT-2
  • NFR-R3
  • NFR-R4
  • NFR-R6
  • NFR-RES-2
  • NFR-RES-3
  • NFR-SEC-3
  • NFR-SEC-4
  • NFR-SEC-6
  • R2
  • R3
  • R5
  • R6