fix(think): make daily-unit failure caps terminal for day completion
A daily unit at its deterministic-failure cap was permanently skipped for dispatch, but the day-completion predicate still demanded every applicable unit be complete. That meant health/daily.updated was never written, the catchup scheduler re-queued the day forever, and journal doctor reported it stuck indefinitely.
Install the invariant that a unit's failure cap is terminal: the same predicate that stops dispatch marks the unit terminal-degraded for day completion. Day completion means all applicable units terminal, not all units succeeded. Degradation is terminal but visible.
Recalibrate deterministic caps so schema_invalid moves to cap 3 while every other deterministic reason stays at 2. schema_invalid measured 24.3% per-call failure on the affected talent (87 complete / 28 schema_invalid since the local cutover), with same-day fail-then-pass observed on 20260723 for entity_observer:vconic, failed 00:24 and completed 00:36. The other reasons are unmeasured and deliberately kept tight.
Replace DETERMINISTIC_FAILURE_THRESHOLD outright with the cogitate_policy.py cap SOT, DETERMINISTIC_FAILURE_CAPS plus failure_capped. Extract thinking.evaluate_daily_completion as the pure predicate and thinking.finalize_day_completion as the marker-write, payload, and log seam from the inline main() block. Surface capped units on the daily_complete payload, the BacklogDay complete-day path, and the journal doctor caught-up check.
retry_on_deterministic_failure deliberately affects dispatch only; the completion predicate treats capped units as terminal regardless of the flag.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>