Skip to content

fix(ui): activity panel, sandbox, session isolation, and performance#32

Merged
dimakis merged 1 commit intomainfrom
fix/activity-panel-sandbox-perf
Feb 14, 2026
Merged

fix(ui): activity panel, sandbox, session isolation, and performance#32
dimakis merged 1 commit intomainfrom
fix/activity-panel-sandbox-perf

Conversation

@dimakis
Copy link
Owner

@dimakis dimakis commented Feb 14, 2026

Summary

  • Activity panel topology: Nodes appear at brain-layout positions immediately (no scatter), edges deactivate when agents finish, node firing state is reliable
  • Sandbox auto-build: Auto-builds aether-sandbox:latest when missing instead of falling back to bare python:3.11-slim. Adds 10s timeout to prevent indefinite hang on Mac
  • Session isolation: Activity panel tracks the focused chat session; background streams don't corrupt the display; SSE streams abort on session switch
  • Performance: Cache entity context (60s TTL, eliminates 5-6 DB queries per request), cache LLM instances and bind_tools result

Test plan

  • 5 new tests for sandbox auto-build (image exists, auto-build, build failure, timeout, skip retry)
  • All 2761 unit tests pass
  • make ci-local passes (format, lint, mypy, bandit, pytest)

Made with Cursor

Activity panel topology:
- Nodes appear at brain-layout positions immediately (synchronous init,
  lower alpha, stronger target pull, no jitter)
- Edges deactivate when agents finish and clear on completion instead
  of accumulating permanently
- Node firing state uses agentStates as single source of truth

Sandbox:
- Auto-build aether-sandbox:latest from Containerfile when image is
  missing (one-time ~2-3 min) instead of falling back to python:3.11-slim
- Add 10s timeout to podman image-exists check to prevent indefinite
  hang when Podman machine is not running on Mac

Session isolation:
- Activity panel tracks the focused session via setActivitySession()
- Background streams don't corrupt the panel (gated ownsPanel check)
- Abort running SSE stream on session switch to prevent orphaned connections

Performance:
- Cache entity context with 60s TTL (eliminates 5-6 DB queries on
  99% of requests, biggest time-to-first-token improvement)
- Cache LLM instances per (provider, model, temperature) key
- Cache bind_tools result per agent instance via get_tool_llm()

Co-authored-by: Cursor <cursoragent@cursor.com>
@dimakis dimakis merged commit 7962ca1 into main Feb 14, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant