Remove frontend islands infrastructure

What does this MR do and why?

Frontend islands (ee/frontend_islands/) was a separate Vue 3 and TypeScript workspace. It was meant for building parts of the UI outside the Vue 2 monolith. Duo Next was its only app. After !259424 (merged), nothing in GitLab loads it.

This MR depends on !259424 (merged).

The islands jobs ran in pipelines for every frontend change. The asset build also ran the islands build first. All of that was for code that no longer ships. Removing it shortens frontend pipelines and speeds up local yarn webpack and dev-server startup.

This MR deletes the workspace and everything that builds, lints, tests, and caches it:

  • ee/frontend_islands/: the workspace, the duo_next app, and the shared configs.
  • Scripts: build_frontend_islands, install_frontend_islands, fe_islands_ci_shared.rb, update_fe_islands_ci.rb, validate_fe_islands_ci.rb, lib/frontend_islands_sha.rb, and their specs.
  • CI jobs: compile-fe-islands, test-fe-islands, type-check-fe-islands, validate-fe-islands-ci, the .eslint:fe-islands template, untamper-fe-islands-lockfile, cache:fe-islands-hash, and cache:fe-islands-node-modules. Their caches, rules, and change patterns are removed too.
  • The needs: on compile-fe-islands from asset compilation, Jest, ESLint, bundle-size review, and per-test coverage jobs.
  • The scripts/build_frontend_islands && prefix from the yarn webpack, rspack, vite, and dev-server scripts in package.json.
  • The Vite prebuild plugin and the fe_islands webpack and Jest alias.
  • The custom-element allowlists (Vue ignoredElements, the Vue 3 compiler, ESLint, Jest).
  • The lefthook hooks, .prettierignore entries, and CODEOWNERS entries.

Pipeline impact:

  • Removed jobs: compile-fe-islands, test-fe-islands, type-check-fe-islands, validate-fe-islands-ci, untamper-fe-islands-lockfile, cache:fe-islands-hash, and cache:fe-islands-node-modules.
  • Removed the needs: on compile-fe-islands from the jobs that listed it.
  • No new jobs were added.

Notes for reviewers:

  • Frontend islands was a deliberate architecture direction (see #577797). Removing it should be agreed by the frontend maintainers and group::ai framework. If the plan is to add another island soon, this MR may be closed and only !259424 (merged) merged.
  • .gitlab/ci/frontend/test-base.gitlab-ci.yml now declares needs: []. The key stays because several jobs pull it in with !reference [.frontend-test-base, needs]. In EE pipelines, test-linters and test-vue3migration-tooling used to wait for compile-fe-islands and now start right away. That is harmless and slightly faster.
  • doc/development/fe_guide/frontend_goals.md keeps its Vue 2.x status line without the islands clause.
  • If you have ever built the island locally, run rm -rf ee/frontend_islands after pulling this change. Its .gitignore is deleted, so a leftover dist/main.js shows up as untracked and fails spec/dot_gitlab_ci/rules_spec.rb locally. CI is not affected.

References

Screenshots or screen recordings

Not applicable. There is no visual change.

How to set up and validate locally

  1. Run yarn webpack, or start the GDK frontend dev server. Confirm it starts without running the islands build.
  2. Open the Duo Agentic Chat panel and confirm it still renders.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

🤖 Generated with Claude Code

Edited by Rafa Frederico

Merge request reports

Loading
Loading