fix(rectification): cover all candidate minutes on the compare card and keep delivery narration (BUG-614/615)
Independent Staging Quality Gate / validate (push) Failing after 9m31s
Independent Staging Quality Gate / publish (push) Has been skipped

Engine by_time ledgers now include the full candidate set so posterior columns can look up fit and windows. Delivery turns keep up to three sentences after idle persist; the card subtracts repeated traits and folds the board chart.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-09 18:32:03 +08:00
co-authored by Cursor
parent ca921c3f2a
commit 5c476ba784
28 changed files with 685 additions and 109 deletions
+6 -2
View File
@@ -263,9 +263,13 @@ def column_times_for_compare(
candidate_times: Sequence[str],
representative_time: str | None,
*,
limit: int = 3,
limit: int = 9,
) -> list[str]:
"""At most `limit` unique HH:MM keys, ranked as given (engine score order)."""
"""Unique HH:MM keys for by_time ledgers/windows, capped at `limit`.
Compare cards still project at most three posterior columns; this set is
the engine candidate list so those clocks can look up a row.
"""
seen: list[str] = []
for raw in candidate_times:
clock = _clock_key(raw)