sol/agents: read day list from fattened day index
Move per-use field derivation out of the listing path and into the
writer that already opens the same file once at use-completion. The
day-index entry is now a complete summary; api_talents_day reads it
directly with no per-completed-use file opens.
Same on-the-wire JSON shape. Same lode also fixes legacy day indexes
(agent_id schema) which previously returned empty.
- think/cortex.py: _append_day_index now writes thinking_count,
tool_count, cost, error_message, output_file, prompt alongside the
existing 10 fields. Single forward pass over the completed file.
- apps/sol/routes.py: _get_uses_for_day reads the day index directly,
with a single dual-key fallback for legacy agent_id entries.
_parse_use_file deleted; get_use_end_state no longer called from
the listing path. New _parse_active_use_file handles the bounded
active glob.
- tests/test_app_sol.py: covers index-only sufficiency, legacy
agent_id schema, and tolerated blanks for pre-existing entries.
Pre-existing entries that lack the new fields render as null.
No retroactive bulk migration; no lazy upgrade path. Founder-pulled
older days will gain rich data only when those uses run again.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>