chore(frontend): remove the legacy vanilla-JS frontend and its tooling

The SvelteKit app under /frontend has fully superseded the legacy
vanilla-JS/CSS frontend in /static, which was only ever served by a
debug `cargo run` / `PROFILE=dev` and never shipped to production.
Remove it together with the whole subsystem that existed only to
support it (~54k lines).

Frontend & assets:
- Delete /static (js/, css/, *.html, sw.js, basemaps/, locales symlink).
- Relocate the brand/PWA assets (logo/, favicon.ico, manifest.webmanifest)
  to frontend/static/ so they ship with the SPA. This also fixes the
  favicon, which app.html referenced but was missing from the prod bundle.
- Migrate the Nextcloud login-flow redirects from /nextcloud-error.html
  to the SvelteKit /nextcloud/error route.

Web layer:
- Simplify resolve_static_path: drop the PROFILE=dev branch; always prefer
  the Vite static-dist/ build, fall back to the configured path.
- Resolve i18n locales from the served SPA dir with a frontend/static
  fallback so `just dev` works without a prior build.

Build:
- Prune build.rs from 1262 to ~70 lines (git metadata only); the Rust asset
  pipeline and the OXICLOUD_RUST_ASSETS rollback flag are gone.
- Drop the now-unused build-dependencies (oxc_*, lightningcss).
- Remove the COPY static lines from the Dockerfile (cacher + builder).

Tooling & docs:
- Delete biome.json, jsconfig.json, tools/check-*.py, identifier.sh.
- Remove the legacy front-* justfile recipes; repoint the design-system
  scripts (locales, dead-tokens, brand-drift, token-docs) at the frontend,
  and drop check-contrast/check-headings (coupled to the old token
  taxonomy / multi-page HTML).
- Repoint docs/DESIGN-SYSTEM.md links; remove 5 superseded docs/plan/*.

Backend dead code:
- Remove the dead `folder_repo` field from FileBlobWriteRepository.
- Remove the deprecated GET /api/folders/{id}/listing endpoint
  (superseded by /resources).

Verified: cargo clippy (all-features/all-targets) clean, cargo test
--workspace 448 passed, cargo fmt clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DioCrafts
2026-06-21 03:17:34 +02:00
parent 6be3c99580
commit 54639d466a
211 changed files with 171 additions and 53965 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Maskable PWA icon: full-bleed accent tile with the cloud mark inside the
~80% safe zone, so platform crops (circle/squircle) never clip it. -->
<svg viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="oxi-maskable-bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#ff5e3a"/>
<stop offset="1" stop-color="#ff8a5c"/>
</linearGradient>
</defs>
<rect width="500" height="500" fill="url(#oxi-maskable-bg)"/>
<g transform="translate(250 250) scale(0.55) translate(-250 -250)">
<path
d="m 364.14537,344.11776 c 40.65049,0 73.64219,-32.99169 73.64219,-73.64218 0,-40.65047 -32.9917,-73.64217 -73.64219,-73.64217 -7.80607,0 -15.17028,1.17827 -22.23993,3.38754 -11.04633,-40.94506 -47.57285,-69.6655 -91.16903,-69.6655 -43.59616,0 -80.12268,28.72044 -92.64185,68.19265 -7.06965,-0.73642 -14.43386,-1.91469 -22.23994,-1.91469 -40.65049,0 -73.64218,32.9917 -73.64218,73.64217 0,40.65049 32.99169,73.64218 73.64218,73.64218 z"
fill="#ffffff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 500 500"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<!-- Fondo circular más pequeño -->
<circle
cx="252.03235"
cy="253.65822"
r="233.24736"
fill="#f8f9fa" />
<!-- Forma de nube principal - manteniendo la misma posición -->
<path
d="m 364.14537,344.11776 c 40.65049,0 73.64219,-32.99169 73.64219,-73.64218 0,-40.65047 -32.9917,-73.64217 -73.64219,-73.64217 -7.80607,0 -15.17028,1.17827 -22.23993,3.38754 -11.04633,-40.94506 -47.57285,-69.6655 -91.16903,-69.6655 -43.59616,0 -80.12268,28.72044 -92.64185,68.19265 -7.06965,-0.73642 -14.43386,-1.91469 -22.23994,-1.91469 -40.65049,0 -73.64218,32.9917 -73.64218,73.64217 0,40.65049 32.99169,73.64218 73.64218,73.64218 z"
fill="#ff5e3a" />
</svg>

After

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

+24
View File
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Social share image (1200×630). SOURCE asset — most platforms ignore SVG
og:images, so export this to og-image.png for full Facebook/Twitter/etc.
support and point the meta tags at the PNG. -->
<svg viewBox="0 0 1200 630" xmlns="http://www.w3.org/2000/svg"
font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif">
<defs>
<linearGradient id="oxi-og-tile" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#ff5e3a"/>
<stop offset="1" stop-color="#ff8a5c"/>
</linearGradient>
</defs>
<rect width="1200" height="630" fill="#0f172a"/>
<circle cx="1000" cy="110" r="280" fill="#ff5e3a" opacity="0.08"/>
<circle cx="150" cy="560" r="220" fill="#ff5e3a" opacity="0.06"/>
<rect x="490" y="158" width="140" height="140" rx="34" fill="url(#oxi-og-tile)"/>
<g transform="translate(560 228) scale(0.34) translate(-250 -250)">
<path
d="m 364.14537,344.11776 c 40.65049,0 73.64219,-32.99169 73.64219,-73.64218 0,-40.65047 -32.9917,-73.64217 -73.64219,-73.64217 -7.80607,0 -15.17028,1.17827 -22.23993,3.38754 -11.04633,-40.94506 -47.57285,-69.6655 -91.16903,-69.6655 -43.59616,0 -80.12268,28.72044 -92.64185,68.19265 -7.06965,-0.73642 -14.43386,-1.91469 -22.23994,-1.91469 -40.65049,0 -73.64218,32.9917 -73.64218,73.64217 0,40.65049 32.99169,73.64218 73.64218,73.64218 z"
fill="#ffffff"/>
</g>
<text x="600" y="400" text-anchor="middle" fill="#f1f5f9" font-size="78" font-weight="700">OxiCloud</text>
<text x="600" y="452" text-anchor="middle" fill="#94a3b8" font-size="30">Fast, private cloud storage built with Rust</text>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB