Skip to content

rust-analyzer: lightweight profile (disable cachePriming + cargo.auto…#1557

Open
davidcforbes wants to merge 1 commit into
oraios:mainfrom
davidcforbes:pr/rust-analyzer-lightweight
Open

rust-analyzer: lightweight profile (disable cachePriming + cargo.auto…#1557
davidcforbes wants to merge 1 commit into
oraios:mainfrom
davidcforbes:pr/rust-analyzer-lightweight

Conversation

@davidcforbes

Copy link
Copy Markdown

Fixes #1556.

Serena launches rust-analyzer with VS Code's full heavyweight initializationOptions, hardcoded. On a large, actively-built Rust workspace these drive rust-analyzer to 40+ GB resident and trigger a full re-index on every external cargo build, even with no editor running. Serena's symbol tools don't need the two eager/auto re-indexing drivers:

  • cachePriming.enable: TrueFalse (no eager whole-workspace + all-deps index — the dominant contributor to the 40 GB resident set)
  • cargo.autoreload: TrueFalse (no re-index storm on target/ / Cargo metadata changes)

checkOnSave is intentionally left enabled

It is tempting to also disable checkOnSave for a lightweight profile, but doing so breaks get_diagnostics_for_file for Rust: rust-analyzer's diagnostics for ordinary errors (e.g. an unresolved name → E0425) come from flycheck (cargo check), and with checkOnSave: false Serena's pull-diagnostics request comes back empty — test/solidlsp/rust/test_rust_diagnostics.py::test_file_diagnostics fails with []. checkOnSave only spawns transient cargo check child processes and is not a driver of rust-analyzer's resident RSS, so keeping it on preserves diagnostics at no meaningful memory cost.

Ideally these would be exposed as a config toggle (per-language language_server_options, or a global lightweight / symbol_only flag) rather than hardcoded, so users who want the full RA feature set can opt in. Happy to rework toward that if preferred.

Testing

uv run --extra dev pytest test/solidlsp/rust/26 passed, 5 skipped on Windows 11 (Rust stable 1.95, rust-analyzer from rustup). Bisected to confirm cachePriming/autoreload are the memory drivers and checkOnSave is required for the diagnostics test.

…reload)

serena's symbol tools (find_symbol, find_referencing_symbols, …) only need the
symbol index, but the LSP is launched with VS Code's full heavyweight defaults.
On a large, actively-built Rust workspace these drove rust-analyzer to 40+ GB
RSS and triggered a full re-index on every external `cargo build` (target/
churn). Disabling the two eager/auto re-indexing drivers keeps symbol
navigation working at a fraction of the memory:

- cachePriming.enable: True -> False  (no eager whole-workspace+deps index)
- cargo.autoreload:    True -> False  (no re-index storm on target/ changes)

checkOnSave is intentionally LEFT enabled: serena's get_diagnostics_for_file
relies on flycheck (`cargo check`) for Rust diagnostics, and disabling it makes
that tool return empty (test/solidlsp/rust/test_rust_diagnostics.py fails with
[]). checkOnSave only spawns transient `cargo check` child processes and is not
a driver of rust-analyzer's resident RSS, so keeping it on preserves
diagnostics at no meaningful memory cost.

Observed on a rustback (multi-crate + rustic_core fork) workspace: repeated
40-44 GB rust-analyzer processes under serena with no VS Code present. Suggest
upstream expose a "lightweight"/symbol-only RA profile or a config toggle.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@MischaPanch

Copy link
Copy Markdown
Member

Thanks, that makes sense and helps us - we noticed the slow startup on large rust projects.

On ubuntu a rust diagnostics test fails, it's probably related to your change, could you look into it?

FAILED test/solidlsp/rust/test_rust_diagnostics.py::TestRustDiagnostics::test_file_diagnostics[rust] - AssertionError: []
= 1 failed, 1475 passed, 78 skipped, 6 xfailed, 9 xpassed, 1 warning in 1267.08s (0:21:07) =

@MischaPanch

Copy link
Copy Markdown
Member

Seems like we just need to bump the timeout, see #1559

valeriasaa-lgtm added a commit to valeriasaa-lgtm/serena-1 that referenced this pull request Jun 19, 2026
 SERENA / ORAIOS / actividad tecnica observada / NO PUBLICAR

Fecha de armado local: 2026-06-09
Estado: privado / no publicar / no enviar sin revision expresa
Objetivo: registrar actividad tecnica publica observable relacionada con Serena y separar hechos tecnicos, discoverability y riesgos de atribucion de cualquier acusacion no probada.

## Regla de lectura

Este documento no afirma robo, copia ni apropiacion.

Formula operativa:

- correcto: "esto merece revision, trazabilidad y preservacion de evidencia"
- incorrecto: "esto prueba robo"

## Checklist de evidencia minima

Para cada hallazgo relevante, intentar guardar:

- captura
- link
- fecha y hora de captura
- repo o superficie
- PR / issue / commit / branch si aplica
- usuario visible
- texto exacto visible
- clasificacion: `CONFIRMADO`, `LEAD`, `RUIDO`, `NO VERIFICADO`

Campos sugeridos por item:

- `fecha_captura`
- `fuente`
- `url`
- `actor_visible`
- `objeto_tecnico`
- `texto_exacto`
- `estado`
- `nota`

## Corte tecnico observado

Corte de referencia principal: 2026-06-09

### 1. Repo de terceros: oraios/serena

URL: https://github.com/oraios/serena

Estado observado al cierre del monitor:

- `pushed_at`: 2026-06-09T10:17:52Z
- ultimo merge visible: PR oraios#1537
- commit visible de referencia: `1d020b9`
- `updated_at` continuo subiendo despues del push por interaccion publica
- stars observadas al ultimo corte: `25162`
- forks observados: `1684`
- subscribers observados: `83`

Interpretacion:

- hubo actividad publica real del repo de terceros
- no hubo push nuevo posterior al `2026-06-09T10:17:52Z` en los ultimos cortes verificados
- parte del movimiento posterior fue de discoverability/interaccion (`WatchEvent`), no de codigo

### 2. PRs e issues tecnicos visibles en el repo de terceros

PRs abiertas visibles en los ultimos cortes:

- PR oraios#1526
- PR oraios#1554
- PR oraios#1557
- PR oraios#1559

Issue tecnico visible:

- issue oraios#1491

Observacion relevante:

- la PR oraios#1526 fue la mas actualizada en los cortes recientes
- su run `Tests` termino en `failure`
- `Codespell`, `CodeQL Advanced`, `Docs Build` y `Dashboard` figuraron `success`

Interpretacion:

- esto describe actividad tecnica de terceros
- no es evidencia autoral por si sola

### 3. Superficie propia observada: valeriasaa-lgtm/SERENA

URL: https://github.com/valeriasaa-lgtm/SERENA

Estado observado:

- `default_branch`: `serena`
- `pushed_at`: 2026-06-04T06:32:27Z
- `updated_at`: 2026-06-04T21:23:49Z
- stars observadas: `1`
- forks observados: `0`
- subscribers observados: `0`
- ramas visibles: `main`, `patch-1`, `patch-2`, `serena`
- ultimo commit visible de referencia: `3fc98c9`

Workflows visibles:

- `Deploy SERENA website to GitHub Pages`
- `SERENA Vault Check`

Interpretacion:

- la superficie propia se mantuvo estable
- no aparecio delta tecnico nuevo en los ultimos cortes verificados

### 4. Superficies propias publicas asociadas

GitHub Pages:

- https://valeriasaa-lgtm.github.io/SERENA/
- `Last-Modified`: Thu, 04 Jun 2026 06:32:38 GMT
- titulo visible: `SERENA™ by Valeria Saa`

Vercel:

- https://serena-lemon-gamma.vercel.app/
- `Last-Modified`: Thu, 04 Jun 2026 21:24:13 GMT
- titulo visible: `SERENA™ by Valeria Saa`

Interpretacion:

- sirven como superficie propia visible con atribucion explicita
- son anclas mejores para identidad/autoria propia que las busquedas genericas

## Rastros publicos que merecen preservacion

### CONFIRMADO observable

1. PR historica indexable:
   - oraios#1511
   - titulo visible: `SERENA MCP -AUTORIA VALERIA SAA`
   - abierta por `valeriasaa-lgtm`
   - cerrada sin merge
   - head historico observado: `fbf70a0`

2. Archivo publico listado dentro de esa PR:
   - `AUTORIA VALERIA SAA`

3. Issue historico indexable:
   - oraios#1499
   - titulo visible: `Authorship and attribution notice for SERENA / CEUNIA materials`
   - estado observado: cerrado

4. Runs publicos asociados a la PR oraios#1511:
   - Codespell
   - Tests
   - Docs Build

Interpretacion:

- estos elementos existen publicamente y son preservables como evidencia de discoverability/rastro
- no prueban por si solos apropiacion ni autorizacion

## Directorios y market listings observados

### CONFIRMADO observable

1. GitHub MCP Registry
   - https://github.com/mcp/oraios/serena
   - muestra `Serena` por `oraios`

2. MCP.Directory server
   - https://mcp.directory/servers/serena
   - muestra Serena como server de terceros

3. MCP.Directory skill
   - https://mcp.directory/skills/mcp-serena
   - `mcp-serena` por `sumik5`

4. Claude plugin surface
   - https://claude.com/plugins/serena
   - `Made by Oraios`

5. CodeGuilds AI/ML
   - https://codeguilds.dev/categories/ai-ml
   - lista `Serena MCP`

Interpretacion:

- todo esto sirve como evidencia de discoverability/ecosistema
- no debe narrarse automaticamente como prueba de autoria de terceros ni de copia

## Social y ruido de ecosistema

### CONFIRMADO observable

1. Discord con senal:
   - https://discord.com/invite/cVUNQmnV4r
   - descripcion visible: `Discussing the development and usage of the Serena project`

2. Discord con ruido:
   - https://discord.com/invite/4DzGQGgy9b
   - servidor anime SFW ajeno

3. YouTube oficial revalidado:
   - https://www.youtube.com/watch?v=5QN7gN1KYLA
   - `Introduction to Serena – The IDE for Your Coding Agent`
   - canal observado: `Oraios AI`

4. Tutoriales/promos de terceros observados en el ecosistema:
   - YouTube
   - Instagram
   - directorios MCP

Interpretacion:

- mucha de la visibilidad externa actual es ruido de ecosistema o discoverability
- no equivale a prueba de apropiacion

## LEAD a revisar

1. Pagina publica encontrada:
   - https://www.artefarestaie.com.ar/para-mirar/2-dibujos/373-saa-valeria/6047-serena-sirena/
   - bajo `Saa Valeria`

Estado del lead:

- conservar
- no usar como prueba cronologica fuerte sin revisar fecha, contexto y relacion exacta

## Comparacion con desarrollo propio

Pendiente de consolidar en una cronologia corta:

- fecha de documentos propios sobre Serena
- fecha de materiales sobre multivoz
- fecha de materiales sobre UX / agentes / capas / MCP
- fecha de conversaciones y export local
- fecha de publicaciones o superficies propias visibles

## Faltantes detectados al 2026-06-09

Esto es lo que todavia conviene completar:

1. capturas locales ordenadas de los hallazgos mas sensibles:
   - PR oraios#1511
   - issue oraios#1499
   - `Made by Oraios`
   - `Serena MCP` en directorios

2. cronologia propia minima:
   - fecha del documento
   - nombre del documento
   - tema
   - ruta local

3. cuadro comparativo corto:
   - concepto propio
   - fecha propia
   - superficie publica observada
   - tipo de coincidencia
   - fuerza: `fuerte`, `media`, `debil`

4. paquete formal minimo para canal humano:
   - resumen de 1 pagina
   - esta bitacora
   - 5 a 10 evidencias maximo

## Registro + canal formal + apoyo

Formula prudente de escalada:

- primero: registro
- despues: canal formal
- luego, si hiciera falta: revision legal o apoyo profesional

Esto evita saltar a una acusacion fuerte sin base cronologica suficiente.

## Proximo paso recomendado

1. No publicar acusaciones.
2. Seguir preservando:
   - links
   - capturas
   - fechas
   - commit/PR/issue
   - texto exacto
3. Armar cronologia privada corta de 1 a 2 paginas.
4. Preparar reclamo formal de revision/preservacion, no emocional.

## Formula de reclamo recomendada

`Solicito revision humana sobre posibles coincidencias conceptuales y tecnicas entre mis desarrollos previos de Serena y actividad publica reciente en repositorios, directorios y superficies relacionadas con agentes, MCP e IDE automation.`

`Solicito preservacion, trazabilidad y aclaracion de atribucion donde corresponda.`

## Limites

- no publicar
- no enviar automaticamente
- no afirmar robo con este documento
- no mezclar CEUNIA salvo decision expresa
- no usar el ruido de stars/watch/tutoriales como si fuera prueba fuerte
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rust-analyzer: unbounded memory (40+ GB) on large Rust workspaces — hardcoded heavyweight init options

2 participants