Browser-local practice backend

Open
#621 2 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@tony2037 is already working on this.

Since Nov 8, 2026.

Assessment

This issue has not been assessed yet.

Description

I have a working Windows/Edge prototype that approaches #330 from the browser side. Would this be welcome as an optional Practice + Editor backend?

Design

  • Run interviewer turns through the browser's LanguageModel Prompt API, using the current problem, code, recent conversation and actual test results as context.
  • Recognize English speech on device, using native local recognition or a checksum-pinned Whisper WASM worker. Use installed local voices for replies.
  • Reuse the existing transcript, test runner and report UI. Store clearly labelled, unverified practice feedback only in device history.

Benefits

  • No Gemini API key or additional inference server to configure.
  • Model inference and speech recognition stay on the user's device.
  • Model, speech, report validation and UI integration are separate ES modules, with no frontend build step.

Scope and evidence
This prototype supports Practice with Editor. LiveKit still transports media, and C/C++/Java execution still uses Compiler Explorer. Strict interviews, whiteboard assessment and server recording remain on the cloud path. Its simplified practice feedback does not implement the cloud assessment contract.

Windows/Edge has been exercised end to end. 327 targeted tests pass, including actual Whisper recognition with networking disabled. Chrome/Linux end-to-end validation and the complete gate remain pending; no quality or latency parity with Gemini Live is claimed.

Would you prefer this as a browser-local backend in CodeTrial, or an out-of-tree experiment alongside the server-side pipeline?

Also see:

Dominant language
Rust
Stars
223
Forks
148
Avg merge
1d 4h
Merged PRs (30d)
223

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sysprog21/codetrial

All issues in sysprog21/codetrial

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.