Release: Features 14, 03, 05 — quest model, children registry, presence engine (2026-09-15) #65

Merged
overseer merged 62 commits from release/2026-09-15-f14-f03-f05 into main 2026-09-16 08:01:06 -04:00
Showing only changes of commit bdf3513609 - Show all commits
+10 -3
View File
@@ -577,11 +577,18 @@ def test_engine_overlapping_snapshot_uses_latest_start() -> None:
def test_engine_override_lists_are_frozen() -> None:
"""The overrides snapshot must be truly read-only: mutating the
caller's list after construction must not change answers."""
"""The overrides snapshot must be truly read-only: the engine is
built directly on the CALLER's list, so mutating that list after
construction would change answers under a shallow copy — under the
frozen snapshot it must not."""
entry = PresenceOverride(1, "2026-01-06", "2026-01-06", False)
entries = [entry]
engine = _engine_with_overrides(*entries)
schedule = PresenceSchedule(
1, 2, ANCHOR, {0: {0, 1, 2, 3, 4, 5, 6}, 1: set()}
)
engine = PresenceEngine(
{1: schedule}, overrides={1: entries} # caller-owned list
)
assert engine.is_present(1, datetime.date(2026, 1, 6)) is False
entries.append(PresenceOverride(1, "2026-01-07", "2026-01-07", False))
# The late append must NOT change the engine's answers...