Files
DarkRoom/docs/traceability.md
T
dtourolleandClaude Opus 5 2c8768ac29 Lay the ratio chips out by hand, because Slint will not lay them out
The ratio chips shipped inside a `GridLayout` with `row` and `col`
computed from the repeater's index. It compiles. On screen every chip
piles into a single row that runs off the panel, and the terminal fills
with

    Internal error in Slint: RepeatedItemTree::grid_layout_input_data()
    not implemented

once per frame. A `for` inside a `GridLayout` is not supported, and
nothing says so until it is running.

A `HorizontalLayout` is not the answer either: six chips side by side
need over 400px, and this column's width is the largest width any panel
declares — so one row would widen every other panel in the application to
fit a control that is on screen only while cropping.

So the grid is arithmetic over the index inside a plain `Rectangle`. It
costs the layout engine nothing, it wraps a seventh ratio onto a third
row by itself, and — because a bare `Rectangle` declares no preferred
width — it takes the width the column already has instead of setting it.
The Portrait chip gets a container of its own for the same reason: a
`ChoiceChip` dropped straight into a `VerticalLayout` is stretched the
full width of the panel and reads as a button for the section rather than
as one more chip.

The three conditional pieces are also now individually-conditional
children of the one layout rather than a nested layout under a single
`if`, which is the convention `app.slint` and `masks.slint` already carry
notes about: a conditional nested layout under-reports its height here
and the panels below it draw on top of one another.

All of this was invisible in the source and obvious in a screenshot.

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

90 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 290
TRACES tags found 879
Requirements defined 179
Requirements covered 107
Coverage 59.8% (107/179)

By type

Type Covered Defined
FR 85 124
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: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: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:336, ui/dr-ui/src/import_ui.rs:1, ui/dr-ui/src/lib.rs:1175, 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:1175, ui/dr-ui/src/library.rs:162, ui/dr-ui/src/library.rs:2375, 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:456, core/dr-sync/src/lib.rs:135, core/dr-sync/src/scan.rs:429, core/dr-sync/src/scan.rs:57, core/dr-thumbs/src/lib.rs:376, ui/dr-ui/src/collections_ui.rs:1219, ui/dr-ui/src/collections_ui.rs:1975, ui/dr-ui/src/library.rs:162, ui/dr-ui/src/library.rs:179, ui/dr-ui/src/library.rs:208, ui/dr-ui/src/library.rs:3869, ui/dr-ui/src/library.rs:3903, ui/dr-ui/src/library_ui.rs:190, ui/dr-ui/src/library_ui.rs:756, 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: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:463, ui/dr-ui/src/import.rs:488, ui/dr-ui/src/library.rs:2848, ui/dr-ui/src/library.rs:3356, ui/dr-ui/src/library_ui.rs:172, ui/dr-ui/src/library_ui.rs:3627, ui/dr-ui/src/library_ui.rs:4592, ui/dr-ui/ui/app.slint:347, ui/dr-ui/ui/settings.slint:384, 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:189, 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:1558, ui/dr-ui/src/collections_ui.rs:1577, 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:3917, ui/dr-ui/src/library_ui.rs:631, ui/dr-ui/src/library_ui.rs:6389, ui/dr-ui/src/library_ui.rs:6400, ui/dr-ui/src/library_ui.rs:6413, ui/dr-ui/src/library_ui.rs:6428, ui/dr-ui/src/library_ui.rs:6437, ui/dr-ui/ui/app.slint:292, ui/dr-ui/ui/app.slint:473, 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:213, ui/dr-ui/src/library.rs:4163, ui/dr-ui/src/library_ui.rs:321, ui/dr-ui/src/library_ui.rs:393, ui/dr-ui/src/library_ui.rs:5203, ui/dr-ui/src/library_ui.rs:5256, ui/dr-ui/src/library_ui.rs:6529, ui/dr-ui/ui/app.slint:295, ui/dr-ui/ui/app.slint:473, ui/dr-ui/ui/app.slint:718, 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:1673, ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/derived_sync.rs:1, ui/dr-ui/src/library_ui.rs:3489, ui/dr-ui/src/library_ui.rs:4182, ui/dr-ui/ui/app.slint:468, 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:3515, ui/dr-ui/src/develop.rs:3544, ui/dr-ui/src/export.rs:750, ui/dr-ui/src/lib.rs:1428, ui/dr-ui/src/lib.rs:1829, ui/dr-ui/src/lib.rs:1964, ui/dr-ui/src/lib.rs:553, ui/dr-ui/src/lib.rs:978, ui/dr-ui/src/library.rs:1787, ui/dr-ui/src/library.rs:459, ui/dr-ui/src/library.rs:506, ui/dr-ui/src/library.rs:543, ui/dr-ui/src/library.rs:790, ui/dr-ui/src/library_ui.rs:4884, 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:120, ui/dr-ui/src/develop.rs:2968, ui/dr-ui/src/library.rs:148, ui/dr-ui/src/library.rs:1747, ui/dr-ui/src/library.rs:1823, ui/dr-ui/src/library.rs:233, ui/dr-ui/src/library.rs:4270, ui/dr-ui/src/library.rs:543, ui/dr-ui/src/library.rs:774, ui/dr-ui/src/library.rs:790, ui/dr-ui/src/library.rs:844, ui/dr-ui/src/library_ui.rs:1580, ui/dr-ui/src/library_ui.rs:1606, ui/dr-ui/src/library_ui.rs:1622, ui/dr-ui/src/library_ui.rs:1716, ui/dr-ui/src/library_ui.rs:232, ui/dr-ui/src/library_ui.rs:2332, ui/dr-ui/src/library_ui.rs:265, ui/dr-ui/src/library_ui.rs:2770, ui/dr-ui/src/library_ui.rs:2992, ui/dr-ui/src/library_ui.rs:3270, ui/dr-ui/src/library_ui.rs:3358, ui/dr-ui/src/library_ui.rs:3540, ui/dr-ui/src/library_ui.rs:3654, ui/dr-ui/src/library_ui.rs:446, ui/dr-ui/src/library_ui.rs:504, ui/dr-ui/src/library_ui.rs:5301, ui/dr-ui/src/library_ui.rs:5416, 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/assign.rs:1, 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:1891, ui/dr-ui/src/develop.rs:194, ui/dr-ui/src/develop.rs:687, 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:1936, 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:254, ui/dr-ui/src/library.rs:284, 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:463
FR-CULL-4 core/dr-catalog/src/rating.rs:1, core/dr-pipeline/src/sidecar.rs:135, ui/dr-ui/src/library.rs:213, ui/dr-ui/src/library.rs:459
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:2849, ui/dr-ui/src/library.rs:2953, ui/dr-ui/ui/settings.slint:416, 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/assign.rs:1, 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: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: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:1395, ui/dr-ui/src/develop.rs:163, ui/dr-ui/src/develop.rs:1873, ui/dr-ui/src/develop.rs:1891, ui/dr-ui/src/develop.rs:1905, ui/dr-ui/src/develop.rs:1927, ui/dr-ui/src/develop.rs:2073, ui/dr-ui/src/develop.rs:2171, ui/dr-ui/src/develop.rs:3239, ui/dr-ui/src/develop.rs:3269, ui/dr-ui/src/develop.rs:326, ui/dr-ui/src/develop.rs:3335, ui/dr-ui/src/develop.rs:3515, ui/dr-ui/src/develop.rs:363, ui/dr-ui/src/develop.rs:4175, ui/dr-ui/src/develop.rs:4229, ui/dr-ui/src/develop.rs:4273, ui/dr-ui/src/develop.rs:4323, ui/dr-ui/src/develop.rs:586, ui/dr-ui/src/develop.rs:647, ui/dr-ui/src/develop.rs:726, ui/dr-ui/src/develop.rs:773, ui/dr-ui/src/lib.rs:1513, ui/dr-ui/src/lib.rs:2214, ui/dr-ui/src/lib.rs:2410, ui/dr-ui/src/lib.rs:2582, ui/dr-ui/src/lib.rs:2646, ui/dr-ui/src/lib.rs:2700, ui/dr-ui/src/lib.rs:319, ui/dr-ui/src/lib.rs:362, ui/dr-ui/src/lib.rs:385, ui/dr-ui/src/library.rs:506, 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:499, ui/dr-ui/ui/adjust.slint:615, ui/dr-ui/ui/app.slint:118, ui/dr-ui/ui/app.slint:164, ui/dr-ui/ui/app.slint:1810, ui/dr-ui/ui/app.slint:828, 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:385, 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:1292, ui/dr-ui/src/lib.rs:668, 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: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:4902
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:558, core/dr-gpu/tests/noise_reduction.rs:556, core/dr-pipeline/src/framing.rs:314, 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:2983, ui/dr-ui/src/develop.rs:3000, ui/dr-ui/src/develop.rs:3012, ui/dr-ui/src/develop.rs:3050, ui/dr-ui/src/develop.rs:3059, ui/dr-ui/src/develop.rs:3162, ui/dr-ui/src/develop.rs:3552, ui/dr-ui/src/develop.rs:3567, ui/dr-ui/src/lib.rs:2188, ui/dr-ui/src/lib.rs:601, ui/dr-ui/src/lib.rs:659, ui/dr-ui/src/library.rs:497, ui/dr-ui/src/library.rs:745, ui/dr-ui/src/presets.rs:275, ui/dr-ui/ui/adjust.slint:1031, ui/dr-ui/ui/adjust.slint:1113, ui/dr-ui/ui/app.slint:2316, ui/dr-ui/ui/app.slint:599
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:138, ui/dr-ui/src/develop.rs:2090, ui/dr-ui/src/segmentation.rs:322
FR-DEV-4 core/dr-gpu/src/adjust.rs:770, core/dr-gpu/src/lib.rs:335, 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:3012, ui/dr-ui/src/develop.rs:3567, ui/dr-ui/src/develop.rs:3597, ui/dr-ui/src/develop.rs:3610, ui/dr-ui/src/develop.rs:3622, ui/dr-ui/src/develop.rs:3638, ui/dr-ui/src/develop.rs:3670, ui/dr-ui/src/develop.rs:3674, ui/dr-ui/src/develop.rs:3693, ui/dr-ui/src/develop.rs:3709, ui/dr-ui/src/develop.rs:708, ui/dr-ui/src/labels.rs:12, ui/dr-ui/src/labels.rs:215, ui/dr-ui/src/lib.rs:1461, ui/dr-ui/src/lib.rs:1491, ui/dr-ui/src/lib.rs:1499, ui/dr-ui/src/lib.rs:2384, 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:3509, ui/dr-ui/src/develop.rs:3530, ui/dr-ui/src/lib.rs:1428, ui/dr-ui/src/library.rs:1787, ui/dr-ui/src/library.rs:459, ui/dr-ui/src/library.rs:487, ui/dr-ui/src/library_ui.rs:2592, ui/dr-ui/src/library_ui.rs:2992, ui/dr-ui/src/library_ui.rs:472, ui/dr-ui/src/presets.rs:1, ui/dr-ui/src/settings_ui.rs:624, ui/dr-ui/ui/adjust.slint:720, 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:3638, ui/dr-ui/src/develop.rs:3670, ui/dr-ui/src/lib.rs:1499, ui/dr-ui/src/lib.rs:2384, ui/dr-ui/ui/history.slint:1
FR-DEV-8 core/dr-gpu/src/detail.rs:387, core/dr-gpu/src/detail.rs:592, 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: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:2242, ui/dr-ui/src/develop.rs:2280, ui/dr-ui/src/develop.rs:2345, ui/dr-ui/src/develop.rs:2428, ui/dr-ui/src/develop.rs:2442, ui/dr-ui/src/develop.rs:756, ui/dr-ui/src/labels.rs:52, ui/dr-ui/src/lib.rs:1520, ui/dr-ui/src/lib.rs:2502, 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:807, ui/dr-ui/ui/app.slint:108, ui/dr-ui/ui/app.slint:1713, ui/dr-ui/ui/app.slint:1888, ui/dr-ui/ui/app.slint:2222, 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:156, core/dr-gpu/src/lib.rs:176, core/dr-gpu/src/lib.rs:54, core/dr-gpu/src/lib.rs:77, 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: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: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:2766, ui/dr-ui/src/develop.rs:3964, ui/dr-ui/src/develop.rs:4447, ui/dr-ui/src/develop.rs:4481, ui/dr-ui/src/lib.rs:72, ui/dr-ui/src/lib.rs:809, ui/dr-ui/src/lib.rs:868
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:2796, ui/dr-ui/src/develop.rs:5739, ui/dr-ui/src/lib.rs:1476, ui/dr-ui/src/lib.rs:2813
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:2845, ui/dr-ui/src/develop.rs:5549, ui/dr-ui/src/develop.rs:5581, ui/dr-ui/src/develop.rs:719, ui/dr-ui/src/histogram.rs:1, ui/dr-ui/src/lib.rs:1576, 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:2742, ui/dr-ui/src/develop.rs:2796, ui/dr-ui/src/develop.rs:5739, ui/dr-ui/src/develop.rs:5785, ui/dr-ui/src/develop.rs:5804, ui/dr-ui/src/develop.rs:787, 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:1450, ui/dr-ui/src/lib.rs:1476, ui/dr-ui/src/lib.rs:2790, ui/dr-ui/src/lib.rs:2813, ui/dr-ui/ui/app.slint:1573, ui/dr-ui/ui/app.slint:47, ui/dr-ui/ui/settings.slint:120, ui/dr-ui/ui/settings.slint:772
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:600, ui/dr-ui/src/develop.rs:5804, 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:645, core/dr-types/src/settings.rs:653, core/dr-types/src/settings.rs:669, core/dr-types/src/settings.rs:738, core/dr-types/src/settings.rs:766, core/dr-types/src/settings.rs:777, core/dr-types/src/settings.rs:783, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/src/settings_ui.rs:206, ui/dr-ui/src/settings_ui.rs:221, ui/dr-ui/src/settings_ui.rs:551, ui/dr-ui/ui/settings.slint:675, ui/dr-ui/ui/settings.slint:685
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:414, 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:204, ui/dr-ui/src/lib.rs:2130, ui/dr-ui/src/lib.rs:414, ui/dr-ui/src/lib.rs:449, ui/dr-ui/src/lib.rs:476, ui/dr-ui/src/library_ui.rs:3375, ui/dr-ui/src/library_ui.rs:563, ui/dr-ui/src/library_ui.rs:6371, ui/dr-ui/src/library_ui.rs:6448, ui/dr-ui/src/library_ui.rs:6460, ui/dr-ui/src/library_ui.rs:663, ui/dr-ui/src/library_ui.rs:720, ui/dr-ui/ui/app.slint:1414, ui/dr-ui/ui/app.slint:964, 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:653, core/dr-types/src/settings.rs:313, 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:1068, ui/dr-ui/src/develop.rs:2927, ui/dr-ui/src/lib.rs:414
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:476, ui/dr-ui/src/library.rs:1068, ui/dr-ui/src/library.rs:1823, ui/dr-ui/src/library.rs:543, ui/dr-ui/src/library.rs:844, ui/dr-ui/src/library_ui.rs:1622, ui/dr-ui/src/library_ui.rs:3375, ui/dr-ui/src/library_ui.rs:504, 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:39, core/dr-sync-nextcloud/src/lib.rs:913, 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:2848, ui/dr-ui/src/library.rs:3356, ui/dr-ui/src/library_ui.rs:1, ui/dr-ui/src/library_ui.rs:3627, ui/dr-ui/src/library_ui.rs:4592, ui/dr-ui/ui/app.slint:347, ui/dr-ui/ui/settings.slint:384, ui/dr-ui/ui/settings.slint:72
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:1014, core/dr-catalog/src/schema.rs:613, 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:3174, ui/dr-ui/src/collections_ui.rs:621, ui/dr-ui/src/collections_ui.rs:683, ui/dr-ui/src/lib.rs:1859, ui/dr-ui/src/lib.rs:2876, ui/dr-ui/src/library.rs:1449, ui/dr-ui/src/library.rs:1472, ui/dr-ui/src/library.rs:1747, ui/dr-ui/src/library_ui.rs:1065, ui/dr-ui/src/library_ui.rs:1138, ui/dr-ui/src/library_ui.rs:1239, ui/dr-ui/src/library_ui.rs:1294, ui/dr-ui/src/library_ui.rs:1429, ui/dr-ui/src/library_ui.rs:1547, ui/dr-ui/src/library_ui.rs:2074, ui/dr-ui/src/library_ui.rs:273, ui/dr-ui/src/library_ui.rs:284, ui/dr-ui/src/library_ui.rs:292, ui/dr-ui/src/library_ui.rs:304, ui/dr-ui/src/library_ui.rs:313, ui/dr-ui/src/library_ui.rs:405, ui/dr-ui/src/library_ui.rs:415, ui/dr-ui/src/library_ui.rs:457, ui/dr-ui/src/library_ui.rs:520, ui/dr-ui/src/library_ui.rs:5318, ui/dr-ui/src/library_ui.rs:5336, ui/dr-ui/src/library_ui.rs:5348, ui/dr-ui/src/library_ui.rs:551, ui/dr-ui/src/library_ui.rs:563, ui/dr-ui/src/settings_store.rs:1, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/ui/app.slint:2395, ui/dr-ui/ui/app.slint:462, 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:1294
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:803, core/dr-sync-folder/src/lib.rs:842, 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:3174, ui/dr-ui/src/collections_ui.rs:621, ui/dr-ui/src/collections_ui.rs:683, ui/dr-ui/src/derived_sync.rs:555, ui/dr-ui/src/derived_sync.rs:627, ui/dr-ui/src/library.rs:1569, ui/dr-ui/src/library.rs:1659, ui/dr-ui/src/library.rs:3138, ui/dr-ui/src/library.rs:3476, ui/dr-ui/src/library.rs:948, ui/dr-ui/src/library_ui.rs:1065, ui/dr-ui/src/library_ui.rs:1138, ui/dr-ui/src/library_ui.rs:1337, 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-7 core/dr-catalog/src/face_shard.rs:1, core/dr-sync-nextcloud/src/lib.rs:104, ui/dr-ui/src/derived_sync.rs:1, ui/dr-ui/src/library.rs:3356, ui/dr-ui/src/library_ui.rs:3627, ui/dr-ui/ui/settings.slint:384
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:1175, 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:1175
FR-NC-8 core/dr-pipeline/src/sidecar.rs:118, core/dr-pipeline/src/sidecar.rs:92, ui/dr-ui/src/lib.rs:1829, ui/dr-ui/src/library.rs:459, ui/dr-ui/src/library_ui.rs:472
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/derived_sync.rs:555, ui/dr-ui/src/library.rs:844, ui/dr-ui/src/library.rs:998
FR-PLAT-AND-1 core/dr-types/src/lib.rs:54, 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:918, 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: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: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:2958, ui/dr-ui/src/lib.rs:80, ui/dr-ui/src/masks_ui.rs:816, ui/dr-ui/ui/identity.slint:164, 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:1488, ui/dr-ui/src/collections_ui.rs:1502, ui/dr-ui/src/collections_ui.rs:1548, ui/dr-ui/src/collections_ui.rs:159, ui/dr-ui/src/collections_ui.rs:1646, 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:292, ui/dr-ui/src/library_ui.rs:5203, ui/dr-ui/src/library_ui.rs:5348, ui/dr-ui/src/library_ui.rs:6479, ui/dr-ui/ui/adjust.slint:1069, ui/dr-ui/ui/adjust.slint:524, ui/dr-ui/ui/adjust.slint:748, ui/dr-ui/ui/app.slint:1994, ui/dr-ui/ui/app.slint:492, ui/dr-ui/ui/app.slint:499, ui/dr-ui/ui/app.slint:54, ui/dr-ui/ui/app.slint:799, 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:2171, ui/dr-ui/src/develop.rs:2280, ui/dr-ui/src/library_ui.rs:4387, 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:1810, 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:1488, ui/dr-ui/src/collections_ui.rs:1502, ui/dr-ui/src/collections_ui.rs:1548, ui/dr-ui/src/collections_ui.rs:159, ui/dr-ui/src/collections_ui.rs:1646, ui/dr-ui/src/collections_ui.rs:1673, 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:4387, ui/dr-ui/src/library_ui.rs:4432, ui/dr-ui/src/library_ui.rs:4535, ui/dr-ui/src/library_ui.rs:4563, ui/dr-ui/src/library_ui.rs:5336, ui/dr-ui/src/library_ui.rs:5348, ui/dr-ui/ui/app.slint:1650, ui/dr-ui/ui/app.slint:468, ui/dr-ui/ui/app.slint:499, 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:2467, ui/dr-ui/src/lib.rs:2997, ui/dr-ui/src/lib.rs:3182, 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:385
NFR-ARCH-2 core/dr-catalog/src/jobs.rs:1, ui/dr-ui/src/faces.rs:1, ui/dr-ui/src/library.rs:2953
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:2164, ui/dr-ui/ui/app.slint:975, 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:499
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:4003, ui/dr-ui/src/library.rs:4795, ui/dr-ui/src/library_ui.rs:4072, 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-3 platform/dr-plat/src/storage.rs:1
NFR-R1 core/dr-catalog/src/sync.rs:1, core/dr-gpu/src/lib.rs:176, core/dr-sync/src/account.rs:220, ui/dr-ui/src/library.rs:1068
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-gpu/src/lib.rs:77, 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:2848
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-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:335

Not yet tagged

72 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-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-NC-6d
  • 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