--- 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.