fix: cost pricing order, antigravity guard, and source symlink escape
- deepseek-reasoner/-r1 pricing was dead code: the bare 'deepseek' branch matched first and billed reasoner runs at chat rates. Reorder the specific branch ahead of it in all four cost tables (cost.py, agent.py, codex.py, summary.ts). - antigravity ListDir extraction indexed parts[-3] behind a len>=2 guard, raising IndexError for 2-element field paths; require len>=3. - source /api/source/file only string-checked the path; add a realpath containment check so a symlink inside the project can't read files outside the project root.
A
Axel Delaval committed
b7a2ce97aa8bc9a1b104f5d8b0ee243ed2e18cf1
Parent: 7bcc133