v11.23.0
Includes everything in v11.22.12 plus the full Phase BM landing
plus six infra root-causes diagnosed + fixed during BM.5 verification
(each one a real latent bug, none xfail'd).
Phase BM (dissolve the dual-SQL date-filter form)
Replaces the pre-BM dual SQL form (analysis-level TimeRangeFilter
on QS + {date_filter} template + app2_date_filter() for App2)
with a unified <<$pXxxDateStart>> / <<$pXxxDateEnd>> dataset
parameter pushdown across both renderers. Same <<$pX>> pattern
Phase Y used for categorical / slider filters. Both renderers narrow
at the DB; the QS day-edge quirk + visual_identifier= test dance
artifacts dissolve by construction.
Coverage:
- L1 dashboard (8 datasets) — shared
pL1DateStart/
pL1DateEndacross drift, ledger_drift, overdraft, limit_breach,
todays_exceptions, transactions, drift_timeline,
ledger_drift_timeline. - Executives (3 datasets) —
pExecDateStart/pExecDateEnd
for transaction_summary, transaction_daily,
account_summary_active. - L2 Flow Tracing (4 datasets, BM.5 sweep) — per-sheet pair
(pL2ftDate*for Rails-on-postings,pL2ftChainsDate*for
chain_instances,pL2ftTtDate*shared across tt_instances +
tt_legs). Pre-BM L2FT's App2 pickers were UX lies (widget shown,
no SQL narrowing); now both renderers narrow.
Dead machinery removed:
build_dataset.app2_date_columnkwarg +{date_filter}slot.common/sql/app2_filters.py::app2_date_filter()(file rewritten
to expose onlyuniversal_date_range_clause).Analysis.default_universal_date_rangefield + the BL.2 bind-
layer prepop helper.DateView.emit_app2_date_from/emit_app2_date_to.- App2 universal-range hidden
date_from/date_toblock — each
picker now renders as its ownParameterDateSpecwith a
param_<name>URL key, symmetric with other categorical
pickups. - Both bg5 [qs] xfails (
test_bg5_transaction_volume_kpis_*+
test_bg5_money_moved_kpis_*) — the day-edge quirk dissolves by
construction so the strict=False xfails are gone.
BM.5 infra root-cause fixes (each diagnosed, not xfail'd)
-
xdist
dist=loadgroupnever fired under barepytest -n N:
the conftest's pre-BM check matched onlydist == "load"but
xdist's default-to-load happens after our hook runs. Bump now
matches"load"OR"no". Fixes
test_invariant_three_way_agreement[anomaly]DROP-race between
two xdist workers racing on the same iagree-prefixed matview. -
Freshness oracle deadlock on filter-control-free sheets:
emit_visual_data_fragmentskippeddata-bound-paramswhen no
param_*/filter_*URL keys were present (L2 Exceptions
sheet shape). bootstrap.js'sbeforeRequestalways stamped
data-requested-params="{}", leaving the oracle deadlocked on
req="{}" === ren=undefined. Always emit ("{}"when empty).
Fixestest_bg6_l2ft_exceptions_*[app2]. -
Oracle DPY-4008 from
:MI/:SSinside TO_DATE format
literals: oracledb's pre-execution bind-name scanner doesn't
respect SQL string-literal quoting and tripped on
'YYYY-MM-DD"T"HH24:MI:SS'. Sidestep with
TO_DATE(SUBSTR(<param>, 1, 10), 'YYYY-MM-DD'). Documented in
docs/reference/oracle-19c-constraints.md. Fixes the entire
Oracle leg of the BM date pushdown. -
Spine
Invariant.detect()portable cursor helper: pre-BM
the 12 detect methods calledconn.execute(sql).fetchall()
relying on sqlite3.Connection's convenience shim. oracledb +
psycopg only support DB-API 2.0 cursor-then-execute. New
common/spine/_db.py::fetch_all(conn, sql)swept across all
12 modules. Fixes 4test_spine_live_agreementtests on the
Oracle/AWS variant. -
Bun lightningcss DLOPEN race on parallel cell pytest
invocations: the tailwind drift check fires Bun which
extracts a native lib to /tmp; 13 parallel cell pytest sessions
racing on the same extraction crashed cells with
ERR_DLOPEN_FAILED. Runner now setsRECON_GEN_SKIP_TAILWIND=1
on per-cell layer subprocesses (the unit prelude already runs
the gate cleanly once at session start). Fixes sp_sl_lo
app2-layer crash. -
Docker PG
max_connectionsbump: postgres:17-alpine
defaults to 100. Per-cellpytest -n auto× ~16 xdist workers
× per-fixture App2 pool size 10 = ~160 connections in-flight.
Bump to 300 via.with_command(). Fixes sp_pg_lo PoolTimeout
cascade.
Test surface
- 3,582 non-e2e tests green throughout.
- sp_pg_aw browser layer green end-to-end (the major PG/AWS
variant) — proves the BM core + 5 root-cause fixes hold under
live AWS load. - Remaining sasquatch+AWS variant failures (sq_pg_aw / sq_or_aw /
sp_or_aw) filed as Phase BN (sasquatch seed-vs-BM-date-window- Oracle/AWS load-scaling). Independent of BM-the-mechanism.