v1.4.0
V1.4.0 - Feat & Rename
O app agora se chama Pofu Code Studio
Antes era Pofuserver Coder Studio. O nome mudou em toda a interface, nos instaladores, nos metadados e nas URLs do repositório (que agora é Dspofu/Pofu-Code-Studio). O package-lock.json entrou no controle de versão junto, para o build de quem clona ser reproduzível.
O agente pergunta quando trava de verdade
Quando o pedido tem duas leituras que levam a trabalhos diferentes, o agente para e pergunta em vez de escolher no escuro e refazer depois. A ferramenta é ask_user: o card mostra as opções que o modelo propôs (dá para marcar uma, ou várias quando ele pede), você escreve uma resposta própria no campo de texto, ou Pula.
Pular é uma resposta válida: o agente segue com o que já sabe e declara qual suposição adotou, em vez de ficar preso. O turno fica parado até você responder, e o Parar fecha o card junto com o resto.
As instruções pedem que ela seja usada com parcimônia — só quando a resposta muda o trabalho, nunca para o que dá para descobrir lendo o projeto, e sempre depois de já ter feito tudo que não dependia da resposta.
Skills e instruções suas
Em Ajustes → Instruções do agente há um campo de system prompt: o que você escrever entra no prompt a cada mensagem. Por padrão é somado às instruções de fábrica; o interruptor Substituir o prompt padrão descarta as de fábrica e deixa só o seu — inclusive as regras de ler antes de sobrescrever e de validar antes de dizer que terminou, então é escolha para quem vai reescrever esse comportamento.
Logo abaixo ficam as skills: arquivos de instrução (o SKILL.md do Claude Code e parecidos) que você importa e liga por chave. O name e o description saem do frontmatter YAML quando existe; sem ele, o app usa o título # e a primeira linha de texto. Reimportar o mesmo arquivo atualiza a skill em vez de duplicar, que é o fluxo de quem está escrevendo uma.
Cada linha mostra o custo em tokens por mensagem, porque é isso que uma skill ativa é: conteúdo somado ao prompt em toda requisição — não um anexo que se lê uma vez. Skill desligada não entra no prompt.
O nível de raciocínio sai do servidor, não de um palpite
Ao escolher o modelo, o app pergunta ao endpoint o que ele aceita — as capabilities do /v1/models, o chat_template do /props (llama.cpp) e o /api/show (Ollama) — e só mostra os níveis confirmados; o rodapé do menu diz de onde veio a informação.
- Modelo com raciocínio → os níveis que o servidor anuncia
- Modelo sem modo de pensar → só Padrão
- Endpoint que não responde nada disso (vLLM, OpenAI, gateways) → todos os níveis, porque silêncio não é prova de que não suporta
Um nível salvo que o servidor novo não aceita volta para Padrão sozinho, em vez de derrubar a primeira mensagem com um HTTP 400.
O agente fala a sua língua
As instruções de fábrica, as descrições das ferramentas e as mensagens de erro que voltam das tool calls passaram a ser escritas em inglês — é a língua em que os modelos foram treinados a seguir instrução e a chamar ferramenta. A interface continua em português, e o agente responde na língua em que você escrever, em vez de ficar preso ao pt-BR.
Edições de arquivo mais seguras
Três correções no edit_file, o jeito padrão de mexer num arquivo existente:
- CRLF: a busca é refeita na quebra de linha do arquivo quando o trecho veio sem o
\r— antes, num arquivo Windows a edição exata nunca casava e o modelo ficava num vaivém de reler. $$e afins: a substituição usasplit/joinem vez dereplace, que expandia$&,$$,$1dentro do texto — umnew_textcom$$var(PHP, sed, LaTeX) era gravado corrompido e ainda voltava sucesso.- Arquivo travado: erro de escrita (somente-leitura, aberto em outro programa) volta com uma dica, em vez da exceção crua.
Instalação — baixe o instalador da sua plataforma abaixo:
| Sistema | Arquivo |
|---|---|
| Windows | .exe (NSIS) |
| Debian / Ubuntu | .deb |
| Fedora | .rpm |
Full Changelog: v1.3.1...v1.4.0