• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

source-academy / frontend / 28201350626

25 Jun 2026 09:22PM UTC coverage: 41.461% (-0.5%) from 42.006%
28201350626

push

github

web-flow
feat(cse): Python CSE Machine via Conductor (#4000)

* feat(cse): wire conductor CSE machine snapshots into frontend

Ports the language-agnostic CSE machine snapshot pipeline from the
liveness prototype into the main frontend, enabling Python (and any
future language) to display CSE machine visualizations via Conductor.

- Add CseMachineHostPlugin concrete subclass (reassignable receiveSnapshots)
- Add CseSnapshotAdapter to translate CseSnapshot → fake js-slang objects
- Register CseMachineHostPlugin in createConductor; return csePlugin
- Add cseSnapshots state field + updateCseSnapshots Redux action/reducer
- Add handleCseSnapshots saga fork in evalCodeConductorSaga; inject
  /__cse_config__ step-limit file so the evaluator respects the slider
- Add CseMachine.renderSnapshot(), getPairCreationMode(), lastSnapshot
- Add Layout.snapshotMode to skip Source-specific tree mutations
- Wire cseSnapshots prop + setEditorHighlightedLinesStep in SideContentCseMachine
- Add renderSnapshotAt, getChangepointSteps, envFingerprint methods
- Guard all CseMachine.redraw() calls to use renderSnapshotAt in snapshot mode

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(lint): sort imports in CseMachine and SideContentCseMachine

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(cse): pass csePlugin through conductor cache; port snapshot-mode animation fixes

- conductorEvaluatorCache: store and return csePlugin from PreparedConductor;
  was undefined before, causing 'Cannot set properties of undefined (receiveSnapshots)'
- CseMachineUtils.isEnvEqual: null-guard env1/env2 (snapshot adapter may produce
  closures whose defining env wasn't serialized)
- CseMachineAnimation: use __snapAnimType/__snapBody for snapshot-mode nodes;
  guard numOfArgs=0 for Python calls; use env identity for frameCreated detection;
  skip LookupAnimation for global-frame bindings; cast expression for ExpressionStatement
- CseMachineLayout: wrap CseAnimation.updat... (continued)

2580 of 7298 branches covered (35.35%)

Branch coverage included in aggregate %.

33 of 326 new or added lines in 13 files covered. (10.12%)

5 existing lines in 3 files now uncovered.

6107 of 13654 relevant lines covered (44.73%)

27.2 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

31.84
/src/features/cseMachine/CseMachineAnimation.tsx


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc