Skip to content

feat: hot-reload dev server on Python file changes#60

Merged
cristipufu merged 2 commits intomainfrom
feat/trace-span-filter
Feb 14, 2026
Merged

feat: hot-reload dev server on Python file changes#60
cristipufu merged 2 commits intomainfrom
feat/trace-span-filter

Conversation

@cristipufu
Copy link
Member

Summary

  • File watcher (watchfiles) monitors .py files in cwd and sends a WebSocket reload event to all connected clients
  • Frontend shows a toast prompting the user to reload; clicking it calls POST /api/reload which flushes user modules from sys.modules and recreates the runtime factory
  • Graph data is snapshotted per run at creation time and persisted on the backend, so existing runs keep their graph across reloads and browser refreshes
  • Reload-pending state is tracked server-side so the toast persists across page refreshes
  • Bumps version to 0.0.41

Test plan

  • Start dev server with a factory_creator lambda
  • Modify a .py file — verify toast appears
  • Click Reload — verify POST /api/reload succeeds and toast dismisses
  • Create a new run — verify it uses updated code
  • Verify existing runs keep their original graph after reload
  • Refresh browser with pending reload — verify toast reappears
  • Verify reload is blocked while a run is in progress (409)
  • Dismiss toast with X button — verify it hides

🤖 Generated with Claude Code

cristipufu and others added 2 commits February 14, 2026 08:09
Respect the runtime factory's trace_settings.span_filter so that
only matching spans are exported to the dev UI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
File watcher (watchfiles) monitors .py files and notifies the frontend
via WebSocket. A toast prompts the user to reload, which flushes user
modules from sys.modules and recreates the runtime factory. Graph data
is snapshotted per run at creation time so existing runs keep their
graph across reloads and browser refreshes. Reload state is tracked
server-side so the toast persists across page refreshes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cristipufu cristipufu merged commit ef16278 into main Feb 14, 2026
11 checks passed
@cristipufu cristipufu deleted the feat/trace-span-filter branch February 14, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant