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

source-academy / frontend / 30415002524
43%

Build:
DEFAULT BRANCH: master
Ran 29 Jul 2026 01:48AM UTC
Jobs 1
Files 469
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Jul 2026 01:46AM UTC coverage: 42.797% (-0.05%) from 42.846%
30415002524

push

github

web-flow
Fix data visualizer tab stealing focus and appearing before CSE Machine (#4192)

* Add revealTab to ITabService implementations

showTab() reveals a tab AND focuses/selects it - correct for a plugin
that decides mid-session it wants attention, wrong for a plugin's
constructor, which runs as soon as the language loads. There was no way
to reveal a tab without also stealing focus.

Add revealTab(id): visibility only, no selection change. In
DeferredConductorTabService, track visibility and "last explicitly
focused tab" separately, so activate() replay only re-selects a tab
that was genuinely shown via showTab(), not merely revealed.

Needed by the Data Visualizer plugin (source-academy/plugins#71), whose
tab was getting auto-selected on every language switch, hijacking
whatever tab the student had open (typically the welcome tab).

* Fix duplicate legacy data visualizer tab and CSE Machine tab order

Two bugs in the conductor tab list:

- The legacy (pre-Conductor) Data Visualizer tab was showing up
  alongside the real Conductor plugin tab. `languageConfig` (the old
  Source-only SALanguage config) is never updated when selecting a
  Conductor language via the dropdown, so `shouldShowDataVisualizer`
  stays stuck at whatever it was last set to (e.g. true, from the
  Source §4 default) - showing a dead, non-functional tab next to the
  working one. Gate it behind `!conductorEnabled`, matching the
  existing pattern already used for the legacy stepper tab.

- CSE Machine's tab was hardcoded into the `beforeDynamicTabs` bucket,
  which always renders before the dynamically-loaded plugin tabs (e.g.
  Data Visualizer) - no load-order fix could change this. Move it to
  `afterDynamicTabs` (conductor-only, so legacy Source behavior is
  unaffected) so it lands after plugin tabs instead of before them.

---------

Co-authored-by: Shrey Jain <“shreyjain5132@email.com>
Co-authored-by: sayomaki <sayomayomaki@gmail.com>

2825 of 7631 branches covered (37.02%)

Branch coverage included in aggregate %.

7 of 26 new or added lines in 3 files covered. (26.92%)

4 existing lines in 2 files now uncovered.

6572 of 14326 relevant lines covered (45.87%)

28.57 hits per line

Uncovered Changes

Lines Coverage ∆ File
16
0.0
0.0% src/features/conductor/deferredConductorTabService.ts
2
53.29
0.34% src/pages/playground/Playground.tsx
1
23.33
-0.4% src/commons/sideContent/SideContentManager.ts

Coverage Regressions

Lines Coverage ∆ File
3
33.65
-1.44% src/commons/sideContent/content/SideContentCseMachine.tsx
1
0.0
0.0% src/features/conductor/deferredConductorTabService.ts
Jobs
ID Job ID Ran Files Coverage
1 30415002524.1 29 Jul 2026 01:48AM UTC 469
42.8
GitHub Action Run
Source Files on build 30415002524
  • Tree
  • List 469
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • f5ca0958 on github
  • Prev Build on master (#30363489071)
  • Next Build on master (#30420758495)
  • Delete
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