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

source-academy / frontend / 30454968033
44%

Build:
DEFAULT BRANCH: master
Ran 29 Jul 2026 01:15PM UTC
Jobs 1
Files 473
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:12PM UTC coverage: 43.033% (+0.2%) from 42.797%
30454968033

push

github

web-flow
feat: Integrate autocomplete <-> frontend (#4190)

* feat: load autocomplete modes through runner plugin

* fix: preserve disabled Conductor flag

* fix: fix lookup for non-autocomplete evaluators

* fix: resolve dependency paths and lookupPlugin crash on cleanup

package.json's @sourceacademy/common-autocomplete, web-autocomplete, and
runner-module-loader were pointing at file:..\plugins\src\... - a
Windows-style local sibling-checkout path from the author's machine that
doesn't exist in CI or for any other contributor. Swapped for the
published npm ranges (web-autocomplete needs ^0.0.2 specifically -
0.0.1 shipped with an unresolvable workspace:* internal dependency).

.yarnrc.yml's npmPreapprovedPackages needed the three new first-party
packages added, since npmMinimalAgeGate otherwise quarantines any
package version under 3 days old.

terminatePreparedConductor assumed conduit.lookupPlugin() returns null
when a plugin was never registered, but it actually throws
ConductorInternalError. Any conductor cleanup where the runner hadn't
yet requested the autocomplete plugin (e.g. switching evaluators before
first use) threw uncaught, aborting the saga that prepares the next
conductor - so neither syntax highlighting nor autocomplete ever
activated for any Conductor-backed language. Wrapped in try/catch.

* fix: bind Ace mode hooks to their source instance, guard stale mode publishes

AutocompletePlugin.loadSynchronousModeMethod extracted checkOutdent/
autoOutdent/getNextLineIndent from a freshly-constructed Ace mode
instance but returned the bare function. Modes that delegate to
internal state (e.g. matching_brace_outdent's this.$outdent - used by
several bundled modes) lose that receiver once the function is
assigned onto our own Mode.prototype, and throw when Ace invokes the
hook. Bind each extracted method to the instance it came from.

Removed a dead `if (this.currentMode)` check in the constructor -
currentMode is a field initialized to null and no... (continued)

2860 of 7662 branches covered (37.33%)

Branch coverage included in aggregate %.

53 of 95 new or added lines in 7 files covered. (55.79%)

1 existing line in 1 file now uncovered.

6627 of 14384 relevant lines covered (46.07%)

28.56 hits per line

Uncovered Changes

Lines Coverage ∆ File
18
0.0
0.0% src/features/conductor/AutocompletePlugin.ts
11
4.23
-0.46% src/commons/sagas/helpers/conductorEvaluatorCache.ts
9
42.55
5.97% src/commons/editor/Editor.tsx
3
49.43
-0.38% src/commons/sagas/WorkspaceSaga/index.ts
1
94.74
src/features/conductor/autocompleteModeStore.ts

Coverage Regressions

Lines Coverage ∆ File
1
0.0
0.0% src/features/conductor/AutocompletePlugin.ts
Jobs
ID Job ID Ran Files Coverage
1 30454968033.1 29 Jul 2026 01:15PM UTC 473
43.03
GitHub Action Run
Source Files on build 30454968033
  • Tree
  • List 473
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 81d29b1d on github
  • Prev Build on master (#30420758495)
  • Next Build on master (#30462086054)
  • 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