From ba90eee23a52174106bd4681a2edf9db17f0e371 Mon Sep 17 00:00:00 2001 From: Wessel Verheij Date: Mon, 14 Sep 2026 02:34:31 +0200 Subject: [PATCH] docs(ops): the thirty-four goals that outran the audit, and the eleven nobody had named MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v2.0 audit of 2026-09-05 covered 339 identifiers. The goals list now holds 373 and none has been removed, so 34 entered this manifest after the only pass that has ever checked one against the code. Twenty-three are accounted for somewhere in the notes above. Eleven were named nowhere in the file at all. All eleven are audited here, against beatrax@origin/main. Nine are satisfied, each with what it was read against, because two of them turn on a detail a summary would lose: A3-R22's bound is the STRICT comparison rather than the seven days, and A3-R23 holds because the reader-facing column list does not carry a date. Two were not satisfied, and neither could have been settled by reading the code. Both were already recorded `walked — defect` in the product's walk ledger on 2026-09-13, from a Galaxy A51 and an iPhone 12 mini: E2-R23 kept its offer after its refusal was written, and E5-R28 had its platform answer overwritten by a view. Both are closed by beatrax#846. What the pass does not establish is written down with it: the 339 were read against main as it stood on 2026-09-05 and have not been re-read. Five of the twenty-three were spot-checked and all five hold. Co-Authored-By: Claude Opus 5 (1M context) Signed-off-by: Wessel Verheij --- 70-operations/versions/2.0.0.toml | 61 +++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/70-operations/versions/2.0.0.toml b/70-operations/versions/2.0.0.toml index a9e225c..21ad4a8 100644 --- a/70-operations/versions/2.0.0.toml +++ b/70-operations/versions/2.0.0.toml @@ -466,6 +466,67 @@ # watchdog's rolling counter does not survive the request that writes it — and # it is in the roadmap's outstanding bucket rather than here. +# AUDITED 2026-09-14 — the goals that outran the audit above. +# +# The audit of 2026-09-05 covered 339 identifiers. The list below now carries +# 373, and none has been removed, so 34 goals entered this manifest after the +# only pass that has ever checked one against the code. Twenty-three of them are +# accounted for somewhere in the notes above — the thirteen resolved on 09-06, +# the E6/E5 block built in #406 and #407, B8-R16 and C7-R21 on 09-09, F1-R18 and +# A8-R27. Eleven were named nowhere in this file at all: +# +# C1-R15 C1-R16 C1-R17 G7-R16 G7-R17 G7-R18 +# E5-R28 E2-R23 A3-R22 A3-R23 A5-R18 +# +# All eleven were audited against beatrax@origin/main on 2026-09-14. NINE are +# satisfied, and what each was read against is worth keeping, because two of +# them turn on a detail a summary would lose: +# +# C1-R15 NetWorth carries excludedAccountNames(), hasExcludedAccounts and +# balancesWithoutRate, surfaced through accountExclusion(). +# C1-R16 NetWorthQuery excludes AccountKind::mirrorValues() — PaypalFunding +# and GooglePlay, the two kinds that mirror another account. +# C1-R17 SafeDate::dayOrNull() is createFromFormat('!Y-m-d') AND a +# round-trip back to the same string; an arch rule holds every +# supplied date to it. The `?period=` preset half of this +# requirement was NOT satisfied and was fixed in beatrax#826 — it +# was coerced to the default rather than refused. +# G7-R16 HostTimezone resolves the machine's zone, InstallTimezone holds a +# stored choice, and .env.example leaves APP_TIMEZONE unset with the +# requirement's own reasoning written beside it. +# G7-R17 `timezone` is a synced field in MergeRulesRegistry: one answer per +# installation, and it travels. +# G7-R18 InstallTimezone::THIS_MACHINE is the deferring option and stores +# null, so returning to it is a real state rather than a re-pick. +# A3-R22 RestatedRowMatch bounds the window with STRICT `>` and `<` on +# ±7 days, so the widest gap it will match is six — shorter than +# weekly, which C2-R20 makes the shortest cadence there is. The +# exclusive comparison is the whole of the bound. +# A3-R23 TransactionBooking carries the four booking terms as a set and +# NearTotalMatch::CONFLICT_COLUMNS — the fields put to the reader — +# holds only source_ref, source_format, counterparty_name, +# description, currency and amount_minor. No date, no ordinal. +# A5-R18 FingerprintStage asks the reference first and reaches the receipt +# band only where it matched nothing. +# +# TWO were not satisfied, and neither could have been settled by reading the +# code: both were already recorded `walked — defect` in the product's walk +# ledger on 2026-09-13, from a Galaxy A51 and an iPhone 12 mini. +# +# E2-R23 The refusal was there and the OFFER was not withdrawn: Show my +# code drew as an enabled card and refused on press. +# E5-R28 The platform check, the cause recording and the fail-closed +# behaviour were all present, and a view overwrote the answer — the +# row's WebAuthn probe raised capability on a WKWebView whose +# enclave had already said none_enrolled. +# +# Both are closed by beatrax#846. +# +# What this pass does NOT establish: the 339 were audited against main as it +# stood on 2026-09-05, and this pass did not re-read them. Five of the +# twenty-three accounted-for goals were spot-checked — C8-R22, D1-R29, A8-R27, +# F3-R37 and C1-R18 — and all five hold. + version = "2.0.0" status = "staged" repos = ["beatrax"]