Group/stack decisions: date the event, not the photo #109
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: HIGH value
The idea
Most of a collection arrives in event-sized clumps — a roll of film is 24 photos of the same two
days. Forcing one decision per photo multiplies total work by roughly the average event size.
Multi-select in the browser or album (plus auto-suggested clusters from album adjacency and
near-duplicate similarity from #16), form an event group, then make one date decision that
fans out to every member as individual
DateDecisionrows sharing provenance.Why it preserves the product's covenant
This is not auto-approval. It is one deliberate, explicitly scoped human decision — the reviewer
sees exactly which photos they are deciding for. A member can be individually re-decided later
without breaking the group.
Also implements PhotoGroup
docs/circa-spec.md§8 specifies aPhotoGroupentity — "Christmas 1989" event groups withbounds and
auto_grouped— which is absent from the models and tracked nowhere. #19 is titled"group constraint propagation" but its body only uses albums and anchors. This issue creates the
missing entity.
Scope
PhotoGroupmodel and migration, with label, date bounds, andauto_grouped.DateDecisionrows written transactionally, each recording the group id in provenance.Honest assessment
The riskiest part is bulk-selection ergonomics, not the data model. Probably the single largest
reducer of total project hours in the backlog.
Done when
References
docs/circa-spec.md§8 (PhotoGroup)Depends on: #18 (album ordering) helps; #16 (pHash) improves suggestions.