Make every settings row reachable, and every accessibility switch honest
Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -194,7 +194,23 @@ for (const required of ["rule.urgency === \"low\"", "rule.urgency === \"critical
|
||||
fail(`effectiveUrgency is missing ${required}`);
|
||||
}
|
||||
|
||||
const bell = functionBody("playBell");
|
||||
// The DECISION PATH of the bell, rather than the text of one function. Visual
|
||||
// alerts split the shared gates out into `bellWouldRing`, so the screen flash
|
||||
// can follow the same rules as the chime without following the event-sounds
|
||||
// switch (the rule is pinned above that function). The gates below did not
|
||||
// change; they moved one call up, and a contract reading only the body of
|
||||
// playBell would have reported the per-application sound switch as dropped.
|
||||
//
|
||||
// NOTE: this whole block is a bun -e argument in single quotes. No apostrophes.
|
||||
const playBell = functionBody("playBell");
|
||||
const bell = playBell + functionBody("bellWouldRing");
|
||||
|
||||
// ...and the split only holds while playBell actually consults the predicate.
|
||||
// A playBell that stopped calling it would leave every gate below in a
|
||||
// function nothing runs, which reads exactly like a passing contract.
|
||||
if (!/bellWouldRing\(notification\)/.test(playBell))
|
||||
fail("playBell no longer consults bellWouldRing, so the per-application, urgency and suppress-sound gates sit in a function the bell never calls");
|
||||
|
||||
if (!bell.includes("root.effectiveUrgency(notification) === NotificationUrgency.Low"))
|
||||
fail("the bell reads the claimed urgency rather than the effective one, so treat-as-low would still chime");
|
||||
// The per-application sound switch is narrower than the enabled switch: the
|
||||
|
||||
Reference in New Issue
Block a user