Fix 9 seam-review findings
- Pinned target's profitability flag now overrides the extractor's bucket guess - Extractor/target periods canonicalized so ledger forecast chaining matches - autoRunOnDrop no longer error-loops on ungradeable inbox content; failed batches count as seen - Ship 2 default graders (pipeline requires >=2 valid reports per deck) - UI styles 'failed' deck chips as errors; .markdown discoverable - Unknown adjudicator model disables adjudication loudly instead of silently - Reserved rids extractor/adjudicator; teardown also clears bm-grader-* containers Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
b1d7aed9f4
commit
1d1074b625
@@ -109,6 +109,7 @@ class Ledger:
|
||||
def prior_targets(self, slug: str, period: str) -> list[dict]:
|
||||
"""Forward targets an earlier deck set for `period` (this deck's exam)."""
|
||||
company = self.get_company(slug)
|
||||
period = decks_mod.canonicalize_period(period)
|
||||
if not company or not period:
|
||||
return []
|
||||
return (company.get("extracted_targets", {}).get(period) or {}).get("targets", [])
|
||||
@@ -143,7 +144,9 @@ class Ledger:
|
||||
from_key = decks_mod.period_sort_key(period)
|
||||
by_period: dict[str, list[dict]] = {}
|
||||
for ft in forward_targets or []:
|
||||
tp = ft.get("target_period")
|
||||
# Extractor-supplied target periods are free-form ("2026-q3");
|
||||
# canonicalize so the next deck's filename period finds them.
|
||||
tp = decks_mod.canonicalize_period(ft.get("target_period"))
|
||||
if tp:
|
||||
by_period.setdefault(tp, []).append(ft)
|
||||
for tp, targets in by_period.items():
|
||||
|
||||
Reference in New Issue
Block a user