prometeu-studio/discussion/workflow/decisions/DEC-0031-studio-editor-workspace-cleanup.md
2026-05-05 11:12:37 +01:00

6.5 KiB

id ticket title status created accepted agenda plans tags
DEC-0031 studio-editor-workspace-cleanup Limpeza completa do Workspace Editor do Studio e remoção dos acoplamentos legados in_progress 2026-05-05 2026-05-05 AGD-0034
PLN-0062
PLN-0063
PLN-0064
studio
editor
cleanup
vfs
lsp
migration

Decision

O repositório SHALL remover integralmente o Workspace Editor do Studio como superfície ativa do produto.

Essa remoção SHALL incluir:

  1. o workspace de código embutido em prometeu-studio;
  2. o prometeu-lsp legado usado por esse workspace;
  3. o prometeu-vfs legado acoplado ao modelo editorial desse workspace;
  4. os pontos de integração do shell, da sessão de projeto e do bootstrap que assumem a existência desse stack;
  5. e os artefatos normativos, testes e referências documentais que tratam esse stack como superfície vigente.

Ao mesmo tempo, esta decisão ALSO locks que:

  1. a capacidade de compilação dos projetos MUST permanecer disponível no Studio;
  2. os fluxos atuais de build, play, run e debug MUST permanecer funcionais desde que não dependam do editor legado, do prometeu-lsp legado ou do prometeu-vfs legado;
  3. esta decisão MUST NOT introduzir o novo backend de código, o novo servidor LSP ou o futuro contrato de automação;
  4. qualquer reconstrução dessas superfícies MUST acontecer em discussão posterior e separada.

Rationale

O Workspace Editor, o prometeu-lsp atual e o prometeu-vfs atual formam um stack único, criado especificamente para o editor embutido do Studio.

Esse stack não é mais alinhado à direção do produto:

  1. o editor JavaFX deixou de ser a direção principal;
  2. o prometeu-lsp atual não deve ser tratado como base séria para um futuro servidor LSP;
  3. o prometeu-vfs atual carrega um contrato editorial pensado para o editor embutido;
  4. manter esse legado vivo aumenta o custo de reconstrução e preserva boundaries errados por inércia.

Portanto, a limpeza precisa acontecer antes da reconstrução.

Technical Specification

1. Editor Workspace Removal

O Studio MUST remover a superfície Code Editor do shell.

Isso inclui:

  1. remover WorkspaceId.EDITOR;
  2. remover o EditorWorkspace e todos os controles, painéis, modelos e helpers sob prometeu-studio/.../workspaces/editor;
  3. remover a presença do editor na workspace rail, no layout principal e no fluxo de restauração de shell;
  4. remover strings, ícones e estado visual exclusivos dessa superfície.

2. Legacy LSP Removal

O repositório MUST remover o prometeu-lsp legado como módulo ativo.

Isso inclui:

  1. remover os módulos prometeu-lsp-api e prometeu-lsp-v1;
  2. remover LspService, LspServiceFactory e todos os DTOs/messages específicos desse stack legado;
  3. remover a criação e injeção dessas dependências no AppContainer, no Container, na sessão de projeto e nos testes associados;
  4. remover a hipótese de que esse LSP será evoluído para o futuro backend de código.

Os conceitos úteis descobertos nesse stack MAY ser reaproveitados mais tarde, mas esta decisão não preserva compatibilidade de código, pacote ou contrato com ele.

3. Legacy VFS Removal

O repositório MUST remover o prometeu-vfs legado como módulo ativo.

Isso inclui:

  1. remover os módulos prometeu-vfs-api e prometeu-vfs-v1;
  2. remover VfsProjectDocument, ProjectDocumentVfsFactory e implementações filesystem-backed associadas;
  3. remover a criação e posse desse VFS na sessão de projeto;
  4. remover qualquer regra que trate esse VFS como boundary documental vigente do Studio.

Esta decisão assume que o prometeu-vfs atual pertence ao modelo do editor legado e, portanto, não deve sobreviver por compatibilidade acidental.

4. Session and Shell Cleanup

O Studio MUST reconfigurar a sessão de projeto e o shell principal para não depender do stack removido.

Isso inclui:

  1. remover LSP e VFS legados da estrutura de StudioProjectSession;
  2. remover sua criação em StudioProjectSessionFactory;
  3. remover dependências globais correspondentes do bootstrap e do container;
  4. remover persistência de layout e restauração editorial específicas do editor.

5. State Cleanup

O estado local do projeto MUST deixar de persistir dados exclusivos do editor legado.

Isso inclui:

  1. remover editorRestoration;
  2. remover shellLayout.editorLayout;
  3. garantir fallback seguro para estados antigos já persistidos em .studio/state.json;
  4. preservar apenas os campos ainda pertencentes a workspaces vivos e ao shell remanescente.

6. Documentation and Test Cleanup

O repositório MUST limpar artefatos normativos e testes que descrevem o stack legado como vigente.

Isso inclui:

  1. revisar ou remover as specs do Code Editor, do Project Document VFS e do Integrated LSP Semantic Read Phase;
  2. revisar docs/specs/studio/README.md;
  3. remover ou arquivar testes exclusivos do editor, do prometeu-lsp legado e do prometeu-vfs legado;
  4. revisar lessons e referências históricas para deixar explícito que se tratam de legado, quando forem mantidas.

7. Capabilities That MUST Survive

As seguintes capacidades MUST sobreviver a esta limpeza:

  1. compilação de projetos pelo pipeline canônico existente;
  2. build de artefatos via BuilderPipelineService;
  3. preparação do fluxo de shipper;
  4. play, run e debug do Studio, desde que apoiados nas superfícies remanescentes e não no stack removido;
  5. workspaces Assets, Shipper e Debug, além do launcher e do shell geral.

8. Explicit Non-Goals

Esta decisão MUST NOT:

  1. definir o novo servidor LSP;
  2. definir o novo contrato de automação;
  3. definir o novo modelo de sessão de código;
  4. definir integração com VS Code;
  5. reter compatibilidade com o LSP ou VFS legados por conveniência.

Constraints

  1. A limpeza MUST preservar o pipeline canônico analyze, compile e build já existente no compiler.
  2. A limpeza MUST evitar remover ou degradar fluxos de build/run/debug que hoje dependem apenas de compiler, shipper, runtime e shell.
  3. A limpeza MUST deixar o shell do Studio em estado coerente, sem workspace fantasma, sem layout órfão e sem dependências mortas.
  4. A limpeza MUST tratar specs e estado persistido como parte do trabalho, não como detalhe pós-código.
  5. A futura reconstrução do backend de código SHALL nascer em discussão separada, sem herdar obrigação de compatibilidade com o stack removido.

Revision Log

  • 2026-05-05: Initial draft from AGD-0034.
  • 2026-05-05: Accepted and decomposed into PLN-0062, PLN-0063, and PLN-0064.