Add content wrapper for screen entry category data
Consolidates enriched category data under a nested "content" key for
cleaner detection of basic vs enriched frames. Previously required
checking all category keys or using fragile request-count heuristics.
- describe.py: Write category results to content.<category>
- tmux/capture.py: Write tmux data under content.tmux
- screen.py: Read from content dict, remove legacy fallbacks
- routes.py: Use content presence for is_basic check
- workspace.html: Use analysis.primary instead of analysis.visible
New format: {"analysis": {...}, "content": {"meeting": {...}}}
Check: bool(entry.get("content")) for enriched frames
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>