Trace the eye reading to FR-CULL-8a and the chip to FR-CULL-13

The register grew both clauses the same day this was built: FR-CULL-8a is
the per-face state the reading is, and FR-CULL-13 is the rule that a
signal is shown and filtered and never writes a judgement. The tags,
faces.md §17 and catalog.md now say which is which; FR-CULL-8a records
what of it is built, and that its third model is under the InsightFace
grant by the same decision as the pair.
This commit is contained in:
2026-09-19 14:06:59 +02:00
parent d706c12d77
commit 85cc2b1dcc
16 changed files with 36 additions and 33 deletions
+3 -3
View File
@@ -157,7 +157,7 @@ pub struct IndexAudit {
/// Outstanding with no proxy on disk. Costs a range request, same as the
/// ones above now do.
pub awaiting_proxy: u64,
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a
/// Faces this model found that the measuring pass still has to read:
/// stored without their quality, or — on a device with the eye models —
/// without an eye reading. Work that is not visible in the coverage
@@ -272,7 +272,7 @@ pub fn audit(
})
}
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a
/// Read one face's eyes from the buffer its crop came from, if this device
/// can.
///
@@ -1699,7 +1699,7 @@ mod tests {
assert!(a.is_complete());
}
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a
/// A fully indexed library whose faces have not been read is not
/// finished: the screen hides the button on `is_complete`, and this is
/// the only way the readings of an old library ever get filled in.
+1 -1
View File
@@ -101,7 +101,7 @@ pub struct FaceCell {
/// of its raw embedding (`dr_face::MIN_GALLERY_QUALITY`). `None` for a
/// face indexed before it was kept.
pub quality: Option<f32>,
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a | FR-CULL-13
/// What the eyes are doing, where they were read.
pub eyes: Option<dr_face::EyeReading>,
}
+4 -4
View File
@@ -318,7 +318,7 @@ pub struct RatingFilter {
pub people: Vec<u64>,
/// Whether [`RatingFilter::people`] is a union or an intersection.
pub people_mode: PeopleMode,
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a | FR-CULL-13
/// Only photographs in which the chosen people are not caught blinking.
///
/// A term *on* [`RatingFilter::people`]: Anna with her eyes open, whoever
@@ -8310,7 +8310,7 @@ mod tests {
.unwrap();
}
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a | FR-CULL-13
/// With a person chosen, the chip asks about *that* person's eyes: Anna
/// blinking hides the frame, and Bob blinking beside her does not.
#[test]
@@ -8353,7 +8353,7 @@ mod tests {
assert_eq!(count(vec![anna.0, bob.0], PeopleMode::Any, true), 4);
}
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a | FR-CULL-13
/// With nobody chosen the chip asks about every face, and a face behind
/// sunglasses is not a blink.
#[test]
@@ -8391,7 +8391,7 @@ mod tests {
);
}
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a | FR-CULL-13
/// An eye that cannot be read is not a blink, in SQL as in
/// `dr_face::EyeReading::state` — the two must agree, or the badge on
/// the People screen would say one thing and the grid another.
+1 -1
View File
@@ -698,7 +698,7 @@ export component AppWindow inherits Window {
in property <bool> library-filter-people-all: false;
callback library-filter-person-cleared(int);
callback library-filter-people-mode-toggled();
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a | FR-CULL-13
/// Whether the grid is narrowed to photographs with nobody blinking.
in property <bool> library-filter-eyes-open: false;
callback library-filter-eyes-open-toggled();
+1 -1
View File
@@ -60,7 +60,7 @@ export struct IdentityFace {
// group that has gathered none of a person's other photographs has an
// explanation the user can only see if every member's label says it.
in-gallery: bool,
// TRACES: FR-CULL-13
// TRACES: FR-CULL-8a | FR-CULL-13
// "Eyes closed", "Sunglasses" or "Eyes unclear", or empty — composed in
// Rust like the two above. Empty for open eyes and for a face never
// read, so the mark is only ever the reason a frame is or is not under
+1 -1
View File
@@ -1509,7 +1509,7 @@ export component LibraryGrid inherits Rectangle {
in property <bool> filter-people-all: false;
callback filter-person-cleared(int);
callback filter-people-mode-toggled();
/// TRACES: FR-CULL-13
/// TRACES: FR-CULL-8a | FR-CULL-13
/// Only photographs in which the chosen people are not blinking. Shown
/// and meaningful only while `filter-people` holds someone.
in property <bool> filter-eyes-open: false;