docs(6209): lesson links, design roles, version readout and endpoint, timestamp filters, settings defaults, opened ledger, surfaces

Eight more test files state their properties without issue, milestone and
rule numbers or dated regressions. The version tests describe what folding
the channel into the version breaks instead of the date it did; the surface
registry and settings-defaults tests state that floors move rather than
quoting the decision that made them move.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-21 21:32:13 -04:00
co-authored by Claude Opus 5.5
parent b3e6a27dc1
commit fa41e006a7
8 changed files with 71 additions and 87 deletions
+7 -7
View File
@@ -1,4 +1,4 @@
"""Real-Postgres tests for lesson → rule links (milestone 440 step 1, #4630).
"""Real-Postgres tests for lesson → rule links.
What a mock cannot show: that the CHECK holds the three states, that deleting
either end takes the link with it, that a rule the caller does not own cannot
@@ -162,7 +162,7 @@ async def test_one_row_per_pair(world):
await s.commit()
# ── #4631: "no rule fits" and the unjudged list ─────────────────────────────
# ── "no rule fits" and the unjudged list ────────────────────────────────────
async def _judgment(lesson_id: int) -> dict:
@@ -243,7 +243,7 @@ async def test_deleting_the_lesson_takes_its_answer_with_it(world):
assert left == []
# ── #4637: soft links from co-surfacing ─────────────────────────────────────
# ── soft links from co-surfacing ────────────────────────────────────────────
async def _link(lesson_id: int, rule_id: int):
@@ -316,12 +316,12 @@ async def test_confirming_a_suggestion_keeps_what_it_rested_on(world):
assert len(out["evidence"]["situations"]) == 3
# ── #4633: which links can carry a rule ─────────────────────────────────────
# ── which links can carry a rule ────────────────────────────────────────────
async def test_only_a_confirmed_link_can_carry_its_rule(world):
"""A suggested link never expands: it would manufacture the co-arrival
that #4637 counts, and prove itself. A rejected one obviously not."""
that co-surfacing counts, and prove itself. A rejected one obviously not."""
owner, lesson = world["owner"], world["lesson"]
await links_svc.co_surfaced(owner, [lesson], [world["r1"]], arm="p", situation="one ask here")
await links_svc.judge_link(owner, lesson, world["r2"], "reject", "not this")
@@ -335,7 +335,7 @@ async def test_only_a_confirmed_link_can_carry_its_rule(world):
async def test_a_project_rule_stays_in_its_project_even_through_a_lesson(world):
"""Milestone 414's scope, kept on the side door: the lesson surfaces
"""Rule scope, kept on the side door: the lesson surfaces
everywhere, its project rule only in its project."""
owner, lesson = world["owner"], world["lesson"]
await links_svc.set_lesson_rules(owner, lesson, [world["r1"]])
@@ -349,7 +349,7 @@ async def test_a_stranger_reaches_no_rule_through_someone_elses_link(world):
assert await links_svc.confirmed_lessons(world["stranger"]) == set()
# ── #4634: which lessons count toward convergence ───────────────────────────
# ── which lessons count toward convergence ──────────────────────────────────
async def test_only_answered_lessons_are_no_rule_lessons(world):