149 lines
6.5 KiB
Markdown
149 lines
6.5 KiB
Markdown
---
|
|
id: DEC-0031
|
|
ticket: studio-editor-workspace-cleanup
|
|
title: Limpeza completa do Workspace Editor do Studio e remoção dos acoplamentos legados
|
|
status: in_progress
|
|
created: 2026-05-05
|
|
accepted: 2026-05-05
|
|
agenda: AGD-0034
|
|
plans: [PLN-0062, PLN-0063, PLN-0064]
|
|
tags: [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.
|