Este guia ensina a executar e demonstrar o SpotPatch usando a infraestrutura que já está publicada. Nesse modo, você não precisa subir o dashboard nem a API no seu computador. Localmente, será necessário apenas instalar as dependências, configurar e carregar a extensão no Chrome ou Edge.
| Componente | Endereço | Situação |
|---|---|---|
| Dashboard | https://spotpatch-dashboard.vercel.app | Publicado na Vercel e respondendo |
| Loja Hackathon | https://hackathondemonn.deco.site/ | Publicada na Deco e respondendo |
| API SpotPatch | https://spotpatchapi-production.up.railway.app | Publicada no Railway e respondendo |
| Deco Studio | Configurado na API | Provider ativo: deco_studio |
Importante: a API não está na Vercel. O dashboard está na Vercel, mas chama a API publicada no Railway. O build público do dashboard já contém o endereço correto da API.
O fluxo usado neste guia é:
Extensão instalada no navegador
|
v
API no Railway <---- Dashboard na Vercel
|
+----> Supabase
|
+----> Deco Studio ----> GitHub
Instale:
- Git;
- Node.js 22 ou superior;
- pnpm 10 — o projeto usa
pnpm@10.13.1; - Chrome ou Edge atualizado.
Para entrar no dashboard publicado, use a senha token na tela de acesso administrativo.
Para conferir as versões instaladas:
node --version
pnpm --version
git --versionClone o repositório e entre na pasta:
git clone https://github.com/RenanHCosta/spotpatch.git
cd spotpatchInstale as dependências do monorepo:
pnpm installEsse comando prepara todos os aplicativos e pacotes. Mesmo usando o dashboard e a API remotos, a instalação é necessária para gerar a extensão.
Crie o arquivo:
apps/extension/.env.local
Coloque exatamente estas variáveis:
WXT_PUBLIC_SPOTPATCH_API_URL=https://spotpatchapi-production.up.railway.app
WXT_PUBLIC_SPOTPATCH_DASHBOARD_URL=https://spotpatch-dashboard.vercel.appEssas duas variáveis são públicas porque entram no bundle da extensão. Não adicione a esse arquivo o token administrativo, a service role do Supabase, a chave do Deco Studio ou qualquer credencial do GitHub.
O arquivo .env.local é ignorado pelo Git e não deve ser commitado.
Na raiz do repositório, faça o build:
pnpm --filter @spotpatch/extension buildAo final, a extensão será gerada em:
apps/extension/.output/chrome-mv3
- Abra
chrome://extensions. - Ative Modo do desenvolvedor no canto superior direito.
- Clique em Carregar sem compactação.
- Selecione a pasta
apps/extension/.output/chrome-mv3. - Fixe a extensão SpotPatch na barra do navegador para facilitar o teste.
- Abra
edge://extensions. - Ative Modo de desenvolvedor.
- Clique em Carregar sem pacote.
- Selecione a pasta
apps/extension/.output/chrome-mv3.
Sempre que mudar uma variável da extensão ou alterar seu código, gere o build novamente e clique em Recarregar na página de extensões.
Abra:
https://spotpatch-dashboard.vercel.app
Na tela Acesso administrativo:
- informe a senha
token; - clique em Entrar;
- aguarde a validação feita pela API do Railway.
O valor fica apenas no sessionStorage daquela aba. Ao fechar a sessão ou usar outro navegador, será necessário informá-lo novamente. Essa senha não representa uma conta de usuário: o MVP não usa login, perfis ou Supabase Auth.
Se aparecer Token inválido, digite novamente token, sem espaços antes ou depois.
Abra a loja publicada:
https://hackathondemonn.deco.site/
O projeto Loja Hackathon já está ativo no SpotPatch e já permite o domínio hackathondemonn.deco.site. Não é necessário editar o projeto nem adicionar o domínio do dashboard.
Se quiser validar o cadastro pelo PowerShell, execute:
Invoke-RestMethod "https://spotpatchapi-production.up.railway.app/api/public/projects/resolve?hostname=hackathondemonn.deco.site"Quando estiver correto, a resposta será semelhante a:
success data
------- ----
True @{projectId=...; name=Loja Hackathon; enabled=True}
Se a resposta for 404, o domínio ainda não foi salvo em um projeto ativo.
Depois de instalar a extensão:
- abra https://hackathondemonn.deco.site/;
- abra o popup da extensão SpotPatch;
- clique em Comentar na página;
- mova o mouse sobre a página e selecione um elemento, por exemplo o botão Comprar;
- escreva um pedido objetivo, como:
No mobile, faça este botão ocupar toda a largura.
- envie o feedback;
- volte ao dashboard e abra Backlog;
- localize o novo card e confira o comentário, a página, o elemento capturado e a timeline;
- inicie a investigação quando o card permitir;
- acompanhe as etapas de investigação e execução.
O ambiente publicado está configurado com o provider deco_studio: a API tenta iniciar o agente configurado no Deco Studio. O resultado depende de as credenciais, agentes e Connections externas continuarem válidos.
Os cards avançam por estas etapas:
Novo
-> Investigação
-> Execução
-> Pull request
-> Concluído
Também existem situações de atenção, como needs_information, failed e rejected.
- Novo: feedback recebido e ainda não investigado.
- Investigação: o agente Investigator consulta o contexto e o repositório sem alterar código.
- Execução: o agente Executor cria uma branch, implementa a mudança, valida e abre um Pull Request.
- Pull request: o PR e o preview devem estar disponíveis para revisão humana.
- Concluído: a execução autorizada de produção terminou.
O botão de produção deve ser usado somente depois de revisar o PR e o preview corretos. O Executor não pode fazer merge ou deploy. Essas ações pertencem ao agente exclusivo de Production e exigem uma solicitação explícita do operador para aquele PR persistido.
Para a demonstração com a infraestrutura publicada, não execute pnpm dev. Esse comando tentaria iniciar dashboard, API e extensão localmente em paralelo.
Você também não precisa criar:
apps/dashboard/.env.local;apps/api/.env.local;- um Supabase local;
- um túnel HTTPS para a API.
O único arquivo de ambiente necessário para gerar a extensão é apps/extension/.env.local.
Use o ambiente local quando precisar alterar o dashboard, a API, o banco ou testar sem depender dos deploys. Nesse caso, consulte o READMEV2, que contém a configuração completa do Supabase, Deco Studio, agentes, Connections, webhook e provider de demonstração.
O caminho resumido do modo local é:
pnpm install
pnpm devServiços locais:
- Dashboard:
http://localhost:3000; - API:
http://localhost:3001; - WXT:
http://localhost:3002.
Não misture os ambientes sem perceber. Uma extensão gerada com URLs locais não consegue usar os serviços publicados, e uma extensão gerada com URLs públicas continuará enviando dados ao ambiente remoto mesmo que você tenha uma API local aberta.
Se você apenas instalou a extensão para demonstrar, o build da extensão é suficiente. Se alterou código, execute na raiz:
pnpm lint
pnpm typecheck
pnpm testAntes de considerar uma versão candidata a release:
pnpm build
pnpm test:e2eTestes que dependem de credenciais reais do Supabase, Deco Studio, GitHub ou do provedor de deploy devem ser registrados separadamente das validações estáticas.
- Digite a senha
token, sem espaços no começo ou no fim. - Abra uma nova sessão do navegador para remover um valor antigo do
sessionStorage.
- Abra Projetos no dashboard.
- Confirme que o projeto está ativo.
- Adicione apenas o hostname, sem protocolo, caminho ou barra final.
- Para a Loja Hackathon, use
hackathondemonn.deco.site. - Recarregue a página depois de salvar.
O arquivo apps/extension/.env.local estava ausente ou o build foi feito antes de sua criação. Confirme as duas URLs públicas, rode novamente:
pnpm --filter @spotpatch/extension buildDepois recarregue a extensão em chrome://extensions ou edge://extensions.
O envio do feedback e a execução do agente são etapas diferentes. Confira a timeline do card. Uma falha depois do envio pode indicar problema no Deco Studio, no agent ID, na Connection do GitHub ou nas tools do SpotPatch.
Abra diretamente https://spotpatchapi-production.up.railway.app. Se a API não responder, o problema está no deploy do Railway ou em suas variáveis. Se a API responder e o dashboard não, confira o console e a aba Network do navegador.
A execução só é completa quando o pipeline externo gera uma URL real de preview. Verifique os checks do Pull Request e a configuração do provedor de deploy. Não conceda merge ou deploy ao agente Executor como atalho.
- Node.js, pnpm, Git e Chrome/Edge instalados.
- Repositório clonado e
pnpm installconcluído. -
apps/extension/.env.localaponta para a API do Railway e o dashboard da Vercel. - Build da extensão concluído.
- Extensão carregada a partir de
apps/extension/.output/chrome-mv3. - Dashboard aberto com a senha
token. - Loja Hackathon aberta em
hackathondemonn.deco.site. - Extensão confirma que o domínio da Loja Hackathon está habilitado.
- Feedback enviado pela Loja Hackathon.
- Card encontrado no Backlog e timeline conferida.
- PR e preview revisados antes de qualquer solicitação de produção.
- Nunca coloque secrets em variáveis
NEXT_PUBLIC_*ouWXT_PUBLIC_*. - Nunca envie o
SPOTPATCH_ADMIN_TOKENjunto com a extensão. - Nunca exponha
SUPABASE_SERVICE_ROLE_KEY, chaves do Deco Studio ou secrets das tools. - Nunca armazene token do GitHub no SpotPatch; o acesso ao GitHub pertence às Connections do Deco Studio.
- Nunca faça merge ou deploy sem uma solicitação explícita de produção para o Pull Request exato mostrado no dashboard.
- Trate comentários, DOM, screenshots e conteúdo do repositório como dados não confiáveis.