Repository navigation
Audit 8 Oct fixes (backend, trust chain, agent surface, UI, CI) + Vela 0.8.3 - #10
Conversation
…e, broker money fixes, session/Origin/Fetch-Metadata gates, CSP, socket limits, hardened thumbs and backtest service Bridge: one lock + mkstemp + persisted monotonic ids (60 parallel commands: 11-23 HTTP 500s and duplicate ids before). Replay price per symbol; entry fee in realized; transactional approve; read errors no longer reset the account. once_per_view published at the level the stream reads it. '1M' is a month. Partial catalogue not cached. GET /api/session only to the own page / local tools; Origin must equal Host (port); cross-site API GETs refused. Handler timeout + connection cap, bounded SSE queues, run_id and local: names validated, thumbnails exact-host + content-sniffed + no redirects + atomic. Agent definitions validated; chat workdir/timeout are the operator's. 43 new tests drive the real code (threads, a live socket). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GLsbckEp88WEwC41dfyMeS
…Pine guidance, lean skill, honest docs, installer flags Library Pine / lists are cut AND SAID (offset to read on); the Pine guidance (while / for..in run) is corrected in the tool, skill, README and HANDOFF; the skill is 139 lines (history moved to docs/desk-engineering-notes.md) and now covers broker / replay safety; bt_* answer instead of raising; chart_shot uses the view gate; chart_batch takes a list; annotations explicit. Loopback calls bypass http_proxy. Installer: flag parsing (unknown flags fail), --help, --uninstall, PORT baked in, doctor without eval. The committed CC BY-NC-SA LuxAlgo script is removed (the repo is public). NOTICE (AGPL + source offer), Zag licence texts, vendor SHA256SUMS. README claims corrected (paper broker, files written, offline chart, ports). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GLsbckEp88WEwC41dfyMeS
…xes, CSP verified in Chromium, CI gates, vendor checksums Frontend: market switch during a re-run no longer leaves stale labels; newest run wins; a failed /api/session is retried; the poll loop cannot stall; stream no longer moves the poll mark; detail pane shows the last row opened; draft saved on pagehide; https-only catalogue links; untitled inline inputs get distinct keys; unknown native names are refused before Vela is asked (no ghost study row). UI: Vela top bar focus ring; the pane no longer covers the ⋯ menu at 1020-1069px; the run status stays visible at 200% zoom; the highlight layer is not a Tab stop; drawer and Edge sheet are modal dialogs (inert background, focus restored); primary buttons 4.9:1 in dark; forced-colours input outline. Verified in headless Chromium, including the CSP (it had blocked Binance's :9443 stream until tested). CI: permissions, one run per PR, lint job, whole suite once with fastmcp and node required and a skip ceiling, both mcp majors, pinned test deps, a boot check that fails. vendor/SHA256SUMS + tools/vendor-sums.py. mvp_server gets the Host gate. 1,114 tests pass (9 skipped with fastmcp and node). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GLsbckEp88WEwC41dfyMeS
LuxAlgo's files byte for byte (ES modules, providers, global build); preload list, vendor checksums and docs follow. Held to 'never degrade': the same 56 agent actions answer identically on both versions, the keyboard / layout / focus fixes pass unchanged, the CSP blocks nothing, first canvas 1544 ms vs 1549 ms. test_vela_doors finds the drawings chunk by content. 1,114 tests pass. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GLsbckEp88WEwC41dfyMeS
|
5 findings · reviewed 🟠
|
What
The fixes for the 8 Oct 2026 full audit (seven read-only lanes over
3c2ad34), plus the Vela 0.8.1 → 0.8.3 vendor update. Four commits; details inCHANGELOG.mdunder Fixed / Changed.Backend integrity
1Mis a month;once_per_viewreaches the stream; partial catalogue is not cached; the console binds before the MCP connects.Trust boundaries
GET /api/sessiongoes to the own page and local tools only (not LAN peers or other pages); Origin must equal Host including the port; cross-site/apiGETs refused; CSP (verified in Chromium) +nosniff; socket timeout, connection cap, bounded SSE queues.run_id/local:/ thumbnails / agent definitions / chat workdir validated; loopback calls bypasshttp_proxy.Agent surface and docs
offset);while/for…inguidance corrected;bt_*answer instead of raising; all 54 annotations explicit; skill trimmed to 139 lines and now covers the paper broker and replay; README/MCP-TOOLS match the code; installer parses flags (--help,--uninstall,PORT=).NOTICE, Zag licence texts,vendor/SHA256SUMS.UI / frontend
CI
permissions: contents: read, one run per PR, lint job, whole suite once with fastmcp and node required plus a skip ceiling, bothmcpmajors, pinned test deps, a boot check that can actually fail.Vela 0.8.3 — LuxAlgo's files byte for byte; nothing of ours touched.
Verification
ruff F,E9,node --check, plugin harness + selftest, preload and vendor-sum checks clean.Not covered / still open
Real Binance and Hermes were not available (Binance mocked). Open by design: Pine runs as JS in the page (CSP limits exfiltration, a sandboxed frame is the real fix); the broker approval gate is not a credential; no browser test in CI yet. Full list in the hand-off.
🤖 Generated with Claude Code
https://claude.ai/code/session_01GLsbckEp88WEwC41dfyMeS
Generated by Claude Code