From b5ae5c2be1f641472de360b65250349366b1e442 Mon Sep 17 00:00:00 2001 From: Duncan Tourolle Date: Thu, 24 Sep 2026 23:38:17 -0400 Subject: [PATCH] Record FR-DEV-16 as met and where FR-UI-5 stands FR-DEV-16's promise that the gesture book cannot describe a binding the application lacks is now enforced by the gestures gate in both directions, and every binding it names is bound and tagged, so it is marked met, with what develop answers beyond the list. FR-UI-5 is not met in full: its keyboard half and the 2026-09-19 amendment are, but no develop slider takes the scroll wheel, so its status says that rather than rounding up. --- docs/dev/requirements.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/dev/requirements.md b/docs/dev/requirements.md index 5e447df..49d499c 100644 --- a/docs/dev/requirements.md +++ b/docs/dev/requirements.md @@ -605,6 +605,15 @@ Editing rhythm depends on the hands staying put: reaching for a menu breaks the edit the same way it breaks the pace of a cull. A binding nobody can discover is the same as no binding, which is why the generated book is part of the requirement rather than documentation of it. +*Status (2026-09-24).* Met. Every binding named above is bound in develop's key handler and tagged +beside it, and develop also answers zoom in, out, fit and 1:1, panning a magnified view, rating, +flagging and labelling the open photograph, nudging the control last moved (the framing sliders +included), turning a mask part's join, keeping a crop that hid a mask, and going back to the grid. +"Cannot describe a binding the application does not have" is now checked rather than argued: +`traces gestures-check` reads the chord every handler compares against (`Keys.chord`, in +`ui/dr-ui/ui/keys.slint`) and fails when a bound key has no tag in its place or a tagged key has no +handler (`tools/traceability/src/keymap.rs`). + **FR-DEV-20 — Perspective correction.** Framing shall include perspective correction — a vertical and a horizontal keystone — applied before the crop. It runs in the coordinate chain after the crop and the straightening and before the stored orientation and the lens warp, so that "vertical" @@ -733,6 +742,15 @@ rating, and common adjustments. Neither is required for any operation to be reac > wherever they can be set, and on the roll's cells, so stepping along a set shows what has been > judged. +*Status (2026-09-24).* The keyboard half and the amendment are met; the pointer half is not yet. +Keys cover navigation, rating and common adjustments in the grid, develop, the collections sidebar, +People and the export and copy sheets, each one in the gesture book and held to its handler by the +gestures gate. Rating and flagging work in develop on the open photograph without advancing, with +stars and Pick/Reject in the top bar, and the roll's cells carry each frame's flag and stars; pick +and reject also gained a pointer and touch route in the grid (Flag in the selection bar), where they +had been keyboard-only. Outstanding: scroll-wheel adjustment on numeric controls — the develop +sliders do not take the wheel. + **FR-UI-6 — Shared component library.** Touch and desktop presentations are variants of shared components, not parallel implementations. A new operation (FR-DEV-3c) becomes usable on both without frontend work.