One snapshot per block, and figures that say what they measure

FixDocsService
Ya
12 Agosti 2026, 20:47 UTC
Mwandishi
Kamo
Ahadi ya
8c6ee4b

Both summarize methods are @Transactional(readOnly = true). Each issues six or seven reads whose figures are cross-checked ACROSS query boundaries: countOverdueByMemberForOrg's own javadoc promises the per-member figures sum to `overdue`, an invariant spanning two separate reads that can only hold under one snapshot. Without it each read commits on its own and a delivery landing mid-summary makes the compliance matrix disagree with the pillar above it. envelopeMissing -> executionIncomplete. The field never measured a missing envelope: it read the EXECUTION_INCOMPLETE bucket straight off the histogram. The real signal — a signable document with no envelope — is the PRE-delivery defect **************** reports, a different fact at a different lifecycle point. Renamed rather than reimplemented because the UI label ("Execution incomplete") was already honest, so the identifier was the only thing lying about itself; the org-level envelope-missing query remains unbuilt and the javadoc says so rather than leaving it implied by a name. averageScore is one AVG over GRADED_STATES, org-wide. It sampled the 200 most recently DELIVERED assignments while passRate was org-wide, so a card could print "83% pass rate / mean score 55" with both true of different people — and the sample was drawn on DELIVERY, which correlates with nothing about scoring: one large assignment delivered this morning displaced every graded row and the mean went null while the pass rate sat unchanged. The pass rate's denominator now reads the same GRADED_STATES constant, so the two populations cannot drift apart by edit. Null-when-nothing-graded is preserved on both. WIRE CHANGE: legal.envelopeMissing -> legal.executionIncomplete. HrResourceAccess -> HrSummaryAccess: it has always gated all three blocks and canReadAnything is the whole endpoint's admission check, so a name scoped to resources understates its blast radius. AttentionRow.daysOverdue said "always positive"; DAYS.between truncates, so a row two hours overdue reads 0. Non-negative — presence in the list is the test for lateness, not `> 0`. The overdue predicate split is untouched: legal OPEN_STATES, training REMINDABLE_STATES, AWAITING_GRADING never overdue.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei