Strip scorpio to unique Theia features for parallel installation - #183
Conversation
Defines what to keep (workspace-root auto-clone, env strategy, settings protection, git identity fallback, auth) and what to remove (sidebar, course/exercise UI, submit, repo detection, websocket, UML, realtime sync, all shared models). Includes package.json, tsconfig.json, and webpack.config.js changes. Codex-reviewed and approved.
…move dead HTTP helpers
|
Important Review skippedToo many files! This PR contains 111 files, which is 11 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (9)
📒 Files selected for processing (111)
You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
… docs Auth has no consumer after the feature strip: clone uses GIT_URI directly, git identity uses GIT_USER/GIT_MAIL, settings protection needs no token. Remove ARTEMIS_TOKEN from env requirements so DataBridge polling no longer blocks on a value scorpio never reads. Fix disposable leak in initSettings. Rewrite READMEs to reflect the stripped-down Theia infrastructure scope.
- Remove legacy .eslintrc.json (superseded by eslint.config.js flat config) - Remove unused ts-node devDependency - Drop dead "Extension Tests" launch config and stale ARTEMIS_TOKEN env entry - Replace real VCS credentials in launch.json with placeholders - Exclude dev tooling configs and docs from the VSIX package - Remove yo-code boilerplate quickstart and internal planning docs - Add MIT license text and package.json license field
Resolve conflicts from main #178 (feature/add-gradle-init) against the stripped tree, keeping Gradle pre-warming in a strip-compatible form. - cloning.service.ts: take the stripped side; cloneUserRepo and its auth/exercise-model imports stay removed. - env-strategy.ts: keep both the strip's REQUIRED_ENV_KEYS and main's GRADLE_PREWARM type/default/parse plumbing. - theia.ts: wire warmupGradleDaemon into initTheia's auto-clone path, running every session (fresh clone and already-cloned) since the daemon is cold on restart. Drop main's Java-language gate (stripped infra); gradle.service self-guards on gradlew presence and platform. - Docs: document GRADLE_PREWARM in README/README_THEIA and list gradle.service.ts in README_DEVELOPER. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ppvozz3xdbrDsoUXtSj6aQ
Description
Strip Scorpio down to the Theia/EduIDE infrastructure that the full Artemis extension does not provide, so the two can be installed side by side without runtime conflicts. Net change: 120 files, +2,253 / -19,520, leaving 6 source modules.
Kept (unique infrastructure):
.vscode/settings.json,.theia,persisted,lost+found) and an idempotence guard that skips re-cloning when the repo already matchesGIT_URI.user.name/user.email) with hostname fallback.ProcessEnvStrategy/DataBridgeStrategy(SCORPIO_THEIA_ENV_STRATEGY).apiBaseUrl/repoPathin Theia environments.mainfeature/add-gradle-init #178, see below).Removed: sidebar UI, course/exercise selection, submit, repo detection, WebSocket, UML rendering, realtime sync, the Angular webview app, all shared models, the authentication provider/HTTP client, and their tests and build scaffolding.
Remaining source (6 files)
src/extension.tssrc/theia/theia.tssrc/theia/env-strategy.tsProcessEnvStrategy+DataBridgeStrategy; parsesGRADLE_PREWARMsrc/shared/settings.tsapiBaseUrl/repoPathsrc/participation/cloning.service.tssrc/participation/gradle.service.tsMerge of
main(#178 feature/add-gradle-init)mainadded Gradle build pre-warming, hooked intocloneUserRepoand gated on the exercise's programming language - both removed by this strip. Resolved conflicts to keep the feature in a strip-compatible form:env-strategy.tskeeps both the strip'sREQUIRED_ENV_KEYSand main'sGRADLE_PREWARMtype/default/parse plumbing.theia.tscallswarmupGradleDaemon(...)after the auto-clone, every session (fresh clone and already-cloned restart, since the Gradle daemon is cold on restart).gradle.service.tsself-guards ongradlewpresence + non-Windows, so non-Gradle repos are skipped automatically.GRADLE_PREWARMlevels:off,daemon(default),deps,full.Steps for Testing
GIT_URI(andARTEMIS_URL) in the Theia environment and open a workspace; confirm the exercise repo is auto-cloned into the workspace root with preserved paths intact.Repository already present, skipping auto-clonelog and no workspace wipe.gradlewdaemon is pre-warmed in the background; setGRADLE_PREWARM=offand confirm it is skipped; open a non-Gradle repo and confirm no warm-up runs.scorpio.artemis.apiBaseUrl/scorpio.defaults.repoPathcannot be changed.npm install && npm run buildcompiles;npm run lintreports 0 errors.Review Progress
Code Review
Manual Tests
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ppvozz3xdbrDsoUXtSj6aQ