Contexto: Lya Code v1.0.0 publicado mas com 2 problemas pendentes:
- ❌ Lista do
/providernão mudou (eu editei o arquivo errado —provider.tsxé legacy, a tela real usaProviderManager.tsx+integrationArtifacts.generated.ts) ⚠️ Letras blocky mas com pequenos bugs de alinhamento (algumas linhas têm 11 chars em vez de 10)
Também: 3. 🌐 Estratégia de repo público (só instaladores + docs) + repo privado (código-fonte)
Modo: Lean execution (modo eco). Roadmap vivo. Cada bloco valida antes de seguir.
| # | Tarefa | Status |
|---|---|---|
| 1 | Corrigir lista de providers (arquivo gerado correto) | ⏳ |
| 2 | Corrigir bugs de bitmap das letras (a minúsculo) |
⏳ |
| 3 | Rebuild + smoke test local | ⏳ |
| 4 | Criar repo público lyacode-installers |
⏳ |
| 5 | Workflow que publica artefatos no repo público | ⏳ |
| 6 | Tag v1.0.1 + push | ⏳ |
| 7 | Validar instalação pública | ⏳ |
Arquivo correto: src/integrations/generated/integrationArtifacts.generated.ts
scripts/generate-integrations-artifacts.ts, mas a regra de ordem (ORDERED_PROVIDER_PRESETS) é editável direto — quando rodar bun run integrations:generate a ordem pode mudar de novo. Por isso o fix correto é:
Opção A (rápida): editar o array direto no arquivo gerado. Opção B (definitiva): descobrir como o gerador ordena (provavelmente alfabético ou ordem de import) e ajustar o script ou um descritor.
Para AGORA, fazer Opção A.
Em src/integrations/generated/integrationArtifacts.generated.ts, última seção do arquivo, substituir o array:
export const ORDERED_PROVIDER_PRESETS = [
"gitlawb-opengateway",
"anthropic",
// ... resto
] as constPelo novo array (Ollama Local 1º, Anthropic/Claude 2º, Gitlawb Opengateway último):
export const ORDERED_PROVIDER_PRESETS = [
"ollama",
"anthropic",
"dashscope-cn",
"dashscope-intl",
"atlas-cloud",
"azure-openai",
"bankr",
"deepseek",
"fireworks",
"gemini",
"groq",
"hicap",
"lmstudio",
"atomic-chat",
"minimax",
"mistral",
"moonshotai",
"kimi-code",
"nearai",
"nvidia-nim",
"openai",
"opencode-go",
"opencode",
"openrouter",
"together",
"venice",
"xai",
"xiaomi-mimo",
"zai",
"custom",
"gitlawb-opengateway"
] as constResumo da mudança: mover "ollama" pro topo, mover "gitlawb-opengateway" pro fim. Resto idêntico.
Depois de validar Opção A funcionando, investigar:
# Olhar como o gerador ordena
cat scripts/generate-integrations-artifacts.ts | grep -i "ORDERED\|sort\|order"
# Procurar se tem campo "order" nos descritores
grep -rn "order:" src/integrations/gateways/
grep -rn "order:" src/integrations/vendors/Se o gerador ordena por field order nos descritores: adicionar order: 1 em ollama, order: 999 em gitlawb-opengateway.
Se ordena por nome de arquivo: renomear preview com prefixo numérico.
Se é hardcoded no script: editar lá.
Arquivo: src/components/StartupScreen.ts
Problema: 3 linhas do bitmap a têm 11 caracteres, as outras têm 10. Causa desalinhamento sutil:
a: [
' ###### ', // 10 ✓
' ###### ', // 10 ✓
' ## ## ', // 10 ✓
' ## ## ', // 10 ✓
' ## ## ', // 10 ✓
' ######## ', // 11 ❌
' ######## ', // 11 ❌
' ## ## ', // 10 ✓
' ## ## ', // 10 ✓
' ####### ##' // 11 ❌
],Substituir por (todas com 10 chars):
a: [
' ###### ',
' ###### ',
' ## ## ',
' ## ## ',
' ## ## ',
' ######## ',
' ######## ',
' ## ## ',
' ## ## ',
' ######## '
],Mudanças: removeu 1 espaço das linhas 6 e 7; trocou a linha 10 pelo padrão simétrico.
Bug similar no D maiúsculo (não usado em "Lya Code" mas latente):
// ANTES (mistura 9 e 10 chars):
D: ['######## ', '######## ', '## ##', '## ##', '## ##', '## ##', '## ##', '## ##', '######## ', '######## '],
// DEPOIS (todas 10):
D: ['######### ', '######### ', '## ##', '## ##', '## ##', '## ##', '## ##', '## ##', '######### ', '######### '],cd E:\GitHub\lyacode-main
# Limpar restos
Remove-Item -Force "studiocodeai-lyacode-*.tgz" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "dist/installer/lyacode-portable-0.1.0" -ErrorAction SilentlyContinue
# Rebuild
bun run build
bun run smoke
# Testar visualmente
node bin/lyacode
# Verificar:
# - Letras "Lya Code" estão limpas (sem desalinhamento no 'a')
# - /provider abre com Ollama 1º, Gitlawb Opengateway último
# - lyacode v1.0.0 no rodapéSe algo ficar ruim, voltar pra editar antes de seguir.
Objetivo: repo público com SÓ instaladores + docs. Código-fonte fica no privado.
Abrir: https://github.com/organizations/StudioCodeAI/repositories/new (ou no perfil pessoal se preferir)
- Nome:
lyacode-installers - Visibilidade: Public
- Descrição: "Lya Code — installers, releases, and public documentation. Source code lives at the private StudioCodeAI/LyaCode repo."
- NÃO inicialize com README/gitignore/license (o script faz isso)
Vou criar pasta public-repo-template/ aqui mesmo no repo privado com o conteúdo inicial:
mkdir public-repo-template
cd public-repo-template
git initConteúdo a criar (Claude Code escreve):
README.md (do repo público):
# Lya Code — Installers & Releases
CLI agentic terminal by **Studio CodeAI**.
> Este repositório contém apenas **instaladores, documentação de uso e changelog**.
> O código-fonte vive no repositório privado da Studio CodeAI.
## ⚡ Instalação rápida
### Multi-plataforma via npm
\`\`\`bash
npm install -g https://github.com/StudioCodeAI/LyaCode-installers/releases/latest/download/studiocodeai-lyacode-1.0.0.tgz
\`\`\`
### Windows (portable .zip)
\`\`\`powershell
irm https://github.com/StudioCodeAI/LyaCode-installers/releases/latest/download/lyacode-portable-1.0.0.zip -OutFile lyacode-portable.zip
Expand-Archive lyacode-portable.zip -DestinationPath .\lyacode-portable -Force
cd lyacode-portable
.\install.cmd
\`\`\`
### Validar
\`\`\`bash
lya --version
# 1.0.0 (Lya Code)
\`\`\`
## 🚀 Primeiros passos
\`\`\`bash
lya # inicia CLI
> /provider # configura provedor
> /lya # ativa persona Lya
> /help # ver todos comandos
\`\`\`
## 🧠 Sobre a Lya
Lya é a engenheira sênior + CEO de projeto da família Studio CodeAI. Arquitetada para combinar **Claude Opus** (decisão) e **Sonnet 4.8** (execução).
7 sub-agentes especializados: architect, explorer, reviewer, tester, recorder, memory, provider.
## 📦 Releases
Veja todas as versões em [Releases](https://github.com/StudioCodeAI/LyaCode-installers/releases).
## 📜 Changelog
Veja [CHANGELOG.md](./CHANGELOG.md).
## ⚖️ Licença
Veja [LICENSE](./LICENSE).
## 🙌 Créditos
**Luis Cardozo** · `studiocoder.ai@gmail.com` · Studio CodeAI
[github.com/StudioCodeAI](https://github.com/StudioCodeAI)CHANGELOG.md:
# Changelog
## v1.0.0 — 2026-06-20 (produção estável)
🎉 **Primeira release de produção da Lya Code.**
### Adicionado
- Wordmark blocky 10-linhas "Lya Code" com gradiente Studio CodeAI no startup
- Persona Lya completa: 7 sub-agentes (architect, explorer, reviewer, tester, recorder, memory, provider)
- Comando \`/lya\` que invoca o system prompt sênior
- Configuração de provedores via \`/provider\`: Ollama Local, Anthropic, Gemini, Mistral, OpenAI-compatible, Codex, e ~30 outros
- Instaladores Windows: \`.exe\`, \`.zip\` portable e \`.tgz\` npm
- Aliases oficiais do binário: lyacode, lya, lscode
- Extensão VS Code em \`vscode-extension/lyacode-vscode\`
### Política de versionamento
- \`v0.x.y\` = teste (zero na frente)
- \`v1.0.0+\` = produção estávelLICENSE — copiar do repo privado (mesma licença).
cd public-repo-template
git add -A
git commit -m "initial: Lya Code installers repo"
git branch -M main
git remote add origin https://github.com/StudioCodeAI/LyaCode-installers.git
git push -u origin mainArquivo: .github/workflows/release.yml (no repo privado)
Atualizar pra usar PAT (Personal Access Token) e publicar release no repo público.
- Abrir https://github.com/settings/personal-access-tokens/new
- Token name:
lyacode-release-publish - Expiration: 1 ano
- Repository access: Only select repositories →
lyacode-installers - Permissions:
- Contents: Read and write
- Actions: Read
- Generate → copiar o token (
github_pat_xxxxxxxxxx)
- Abrir https://github.com/StudioCodeAI/LyaCode/settings/secrets/actions
- New repository secret
- Name:
INSTALLERS_REPO_TOKEN - Value: cole o PAT
Substituir o passo "Create GitHub Release" no .github/workflows/release.yml por:
- name: Create GitHub Release in public installers repo
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
name: Lya Code v${{ steps.version.outputs.version }}
tag_name: ${{ github.ref_name }}
repository: StudioCodeAI/LyaCode-installers
token: ${{ secrets.INSTALLERS_REPO_TOKEN }}
generate_release_notes: false
fail_on_unmatched_files: false
files: |
dist/installer/lyacode-setup-x64-*.exe
dist/installer/lyacode-portable-*.zip
studiocodeai-lyacode-*.tgz
body: |
## Lya Code v${{ steps.version.outputs.version }}
Terminal agêntico do Studio CodeAI para workflows de código local e em nuvem.
### Instalação multi-plataforma (recomendado)
```bash
npm install -g https://github.com/StudioCodeAI/LyaCode-installers/releases/download/v${{ steps.version.outputs.version }}/studiocodeai-lyacode-${{ steps.version.outputs.version }}.tgz
```
### Windows (portable .zip)
```powershell
irm https://github.com/StudioCodeAI/LyaCode-installers/releases/download/v${{ steps.version.outputs.version }}/lyacode-portable-${{ steps.version.outputs.version }}.zip -OutFile lyacode-portable.zip
Expand-Archive lyacode-portable.zip -DestinationPath .\lyacode-portable -Force
cd lyacode-portable
.\install.cmd
```
### Uso
```bash
lya # CLI principal
/provider # configurar provedor
/lya # invocar agente Lya
```
---
Studio CodeAI · Luis Cardozo · studiocoder.ai@gmail.comDiferença vs versão atual: repository: aponta pra lyacode-installers, e token: usa o PAT.
Após corrigir 1, 2 e 5:
cd E:\GitHub\lyacode-main
# Bump versão pra 1.0.1 (patch release)
# Editar package.json: "version": "1.0.1"
# Editar .release-please-manifest.json: ".": "1.0.1"
# Editar scripts/installer/build-windows.ts: const VERSION = '1.0.1'
# Editar scripts/installer/windows/install.ps1: $ProductVersion = '1.0.1'
# Editar scripts/installer/windows/install.cmd: v1.0.1, studiocodeai-lyacode-1.0.1.tgz
# Editar scripts/installer/windows/lyacode-setup-x64.sed: studiocodeai-lyacode-1.0.1.tgz
# Editar README.md: substituir todos 1.0.0 → 1.0.1
# Rebuild
bun run build
bun run build:installer:windows
# Commit + tag
git add -A
git commit -m "release: v1.0.1 - fix provider list + bitmaps + public installers repo
- Provider list: Ollama Local 1o, Gitlawb Opengateway ultimo
- Fix bitmap 'a' minusculo (3 linhas com 11 chars -> 10 chars)
- Fix bitmap 'D' maiusculo (mistura 9/10 chars -> 10 chars)
- Workflow publica artefatos no repo publico lyacode-installers
- README atualizado para v1.0.1
Refs: Studio CodeAI · Luis Cardozo"
git tag -a v1.0.1 -m "Lya Code v1.0.1 - provider order + bitmap fixes"
git push origin main
git push origin v1.0.1Aguardar ~5-10 min após o push da tag. Acompanhar build em:
Quando ✅, validar:
# Verificar que o release apareceu no repo público
Invoke-RestMethod https://api.github.com/repos/StudioCodeAI/LyaCode-installers/releases/latest
# Desinstalar versão atual
npm uninstall -g @studiocodeai/lyacode
# Instalar do release público
npm install -g https://github.com/StudioCodeAI/LyaCode-installers/releases/download/v1.0.1/studiocodeai-lyacode-1.0.1.tgz
# Validar
lya --version # 1.0.1 (Lya Code)
lya # ver letras + /provider| Risco | Mitigação |
|---|---|
Gerador integrations:generate desfaz o ORDERED_PROVIDER_PRESETS |
Investigar Opção B no item 1 antes de v1.0.2 |
| PAT expira em 1 ano | Anotar no calendário; regenerar pra v1.1.0 |
| Repo público mostra "0 releases" inicial | Normal — só aparece após o primeiro git push --tags |
| iexpress falha de novo no workflow | OK — .zip + .tgz já são suficientes |
-
/providermostra "Ollama" na posição 1 e "Gitlawb Opengateway" na última - Letras "Lya Code" renderizam sem desalinhamento no
a - Repo
StudioCodeAI/LyaCode-installersexiste e é público - Release v1.0.1 no repo público com
.tgz+.zip+.exe -
npm install -g https://github.com/StudioCodeAI/LyaCode-installers/releases/download/v1.0.1/studiocodeai-lyacode-1.0.1.tgzfunciona em terminal limpo - README do repo privado tem link pro repo público de releases
✅ Lya Code v1.0.1 publicada.
Instalação pública (qualquer terminal):
npm install -g https://github.com/StudioCodeAI/LyaCode-installers/releases/download/v1.0.1/studiocodeai-lyacode-1.0.1.tgzValidar:
lya --version # 1.0.1 lya # ver wordmarkCódigo-fonte continua privado em StudioCodeAI/LyaCode. Releases públicas em StudioCodeAI/LyaCode-installers.