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

source-academy / frontend / 30080708709

24 Jul 2026 08:56AM UTC coverage: 42.588% (+0.2%) from 42.352%
30080708709

push

github

web-flow
Enable Conductor by default; fix Python None/builtin display and expression-statement coloring in CSE machine (#4159)

* Enable Conductor feature flag by default (#4074)

Most development now happens through Conductor, so flip
conductor.enable's default to true instead of requiring it to be
turned on manually. It can still be disabled via Feature Flags.

* Render Python None as "None" in CSE machine visualizer (#4111)

CseSnapshotAdapter mapped Python's None (label nonetype/none/null)
straight to JS null. PrimitiveValue/Text then stringified it via
String(value), so bindings and stash items showed "null" instead of
"None". Return a source-object sentinel (matching the existing
float/complex pattern) so it renders via toReplString() instead.

* Pin conductor.enable off in tests (CI fix for #4074)

evalCodeSaga branches into evalCodeConductorSaga based on
selectConductorEnable, which now defaults to true. The existing saga/
component test suite exercises the legacy js-slang path and doesn't
stand up a Conductor evaluator/worker, so it started failing with
"no evaluator" once the default flipped. Pin the flag's default off
in the test environment only; tests that specifically exercise the
Conductor path already override it via state/modifiedFlags.

* Fix CSE machine builtin-quoting and add expression-statement coloring

CseSnapshotAdapter's closure branch only handled function-like values that
carried metadata.closureFrameId. Builtins (abs, print, ...) have none, so
they fell through to the generic string fallback, and StashItemComponent's
`typeof val === 'string'` check then wrapped the bare name in quotes as if
it were a Python str value. Render builtins as a plain JS function instead
(picked up by isBuiltInFn()) so the unquoted name displays correctly.

Fixes source-academy/py-slang#302.

Also thread py-slang's new expressionStatement tag (source-academy/py-slang#270)
through to ControlItemComponent so expression-statement control items render
in a di... (continued)

2787 of 7580 branches covered (36.77%)

Branch coverage included in aggregate %.

28 of 37 new or added lines in 9 files covered. (75.68%)

3 existing lines in 1 file now uncovered.

6504 of 14236 relevant lines covered (45.69%)

28.74 hits per line

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

56.14
/src/features/cseMachine/components/ControlItemComponent.tsx


Source Not Available

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

© 2026 Coveralls, Inc