🐙 Copilot Delegate

🐙 Delegação inteligente de tarefas para sessões CLI isoladas — com worktree isolation, pipelines, auto-merge, discovery autônomo e octopus branding temático.
📋 Índice
🚀 Features
| Feature |
Descrição |
| 29 Tools |
LanguageModelTools registradas — visíveis e utilizáveis no modo agent do Copilot |
| Agent Octopus |
Agente orchestrator bundled que delega tarefas, nunca implementa diretamente |
| Skill Octopus |
Skill bundled que ensina 9 patterns de delegação e anti-patterns |
| Discovery Pipeline |
6 steps paralelos para onboarding em projetos — gera docs/discovery/project-context.md |
| Pipeline Management |
Encadeie 2–10 sessões sequenciais com output propagado entre steps |
| Worktree Isolation |
Cada sessão roda em git worktree isolado — execução paralela sem conflitos |
| Auto-Merge |
Merge automático em modo autônomo com validação de testes obrigatória |
| Auto-Cleanup |
Sessões auto-limpas após merge — verifica pendências, commit, remove worktree/branch (configurável) |
| Advisory File Lock |
Locks por arquivo impedem que sessões concorrentes editem os mesmos arquivos |
| Session Control |
Pause, resume, stop (graceful/force), switch model, set mode — tudo mid-flight |
| Chat WebviewPanel |
Painel interativo por sessão com histórico e envio de follow-ups em tempo real |
| Octopus Branding |
Sidebar com nomes 🐙 (Tentacles, Nerve Center, Ink Jets, Camouflage, Sonar), notificações temáticas e fun facts |
| Status Bar |
🐙 N tentacle(s) quando ativo, 🐙 Resting quando idle, tooltip com fun fact aleatório |
| Session History |
Persistência das últimas 50 sessões concluídas via globalState — sobrevive a restarts do VS Code |
| Session Duration |
completedAt + elapsed time tracking — sidebar mostra duração real (running • 2m30s) |
| totalEvents |
Contador preciso de eventos por sessão — incrementa além do buffer circular |
| Quick Actions em massa |
🛑 Stop All, 🧹 Cleanup All, 📋 List Summary — operações em lote na sidebar |
| Export Session Log |
Exporta log completo da sessão como timeline em nova aba do editor |
| Copy Result |
Copia lastAssistantMessage para clipboard com inline action na sidebar |
| Tooltip Preview |
Hover na sidebar mostra Markdown rico: alias, status, modelo, eventos e última mensagem |
| Welcome View |
Arte 🐙 quando sem sessões ativas — "No tentacles active" com botão de nova delegação |
| Themed Notifications |
Metáforas octopus: "Tentacle spawned", "Tentacle retracted", "Ink absorbed", "Ink spill!" |
| Safety Hardening |
Try/catch em callbacks, lock release on failure, settle timer race fix, worktree cleanup on error |
| Orphan Worktree Cleanup |
Limpeza automática de worktrees órfãos no startup (scan de tmpdir, timeout 5s) |
| Callback Automático |
Resultado injetado no chat (modo Autônomo) ou pre-fill (modo Copilot) |
| Fun Aliases |
Aliases satíricos gerados automaticamente para pipelines e discovery |
| 🦑 Auto-Retry |
Regeneração automática de sessões falhadas com backoff exponencial — até 2 tentativas configuráveis |
| 💓 Health Monitor |
Monitoramento ativo de saúde com heartbeat a cada 30s — detecta sessões travadas (2min inativas) |
| 🖤 Ink Cloud |
Parada de emergência: para TODAS as sessões ativas + snapshot automático em ~/.copilot/session-state/emergency-snapshots/ |
| 🔮 Conflict Radar |
Detecção proativa de conflitos quando múltiplas sessões editam o mesmo arquivo simultaneamente |
| 🦎 Camouflage Profiles |
4 profiles pré-configurados (Stealth, Observe, Alert, Strike) que mudam comportamento do sistema inteiro com um comando |
| 🏠 Session Templates |
5 templates pré-configurados (Bug Fix, Feature, Refactor, Test Coverage, Documentation) para delegações rápidas |
| 🎨 Live Progress |
Indicadores coloridos de fase na sidebar (blue → starting, green → active, yellow → unresponsive, purple → completing) |
| Merge Hardening |
Verificação post-merge de commit criado, validação de git root, sanitização de branch names, logging completo de merge |
| 🧠 Session Learning |
Aprendizado de padrões entre sessões, extrai lições para futuras delegações |
| 🦑 Tentacle Coordination |
Comunicação inter-sessões via SignalBus (clone, broadcast, receive) |
| 📦 Artifact Catalog |
Catálogo de artefatos gerados, persistido via globalState com sidebar provider |
| 🐙 Session Cloning |
Duplicação de sessões ativas com contexto preservado |
| 799+ Testes |
Cobertura ampla em 25+ arquivos de teste via Vitest |
⚡ Quick Start
Pré-requisitos
- VS Code 1.110+
- Node.js 20+
- Git (para worktree isolation)
- Copilot CLI SDK:
npm install -g @github/copilot
Instalação
- Baixe o
copilot-delegate-0.1.0.vsix da página de releases
Ctrl+Shift+P → "Extensions: Install from VSIX..."
- Selecione o
.vsix e recarregue a janela
Primeira delegação
@workspace #delegate_task
Crie testes unitários para o módulo de autenticação em src/auth.ts
🐙 Agent & Skill Bundled
Agent Octopus
Agente de orquestração incluído na extensão (via chatAgents no package.json). "Orchestrador de Orchestradores" — ele nunca implementa diretamente, coordena trabalho exclusivamente via delegação usando tools copilot-delegate_*.
Princípios:
- Delegar, não fazer — investiga com
researcher, implementa com implementor
- Worktrees isolados — sempre
isolateWorktree: true para mudanças de código
- Pipeline para multi-step — research → implement → test via
delegate_pipeline
- Fire-and-forget — delega e segue; callback automático traz resultado
- Cleanup obrigatório — sempre limpa sessões concluídas
Skill Octopus
Skill de delegação incluída na extensão (via chatSkills no package.json). Ensina o Copilot a usar os 29 tools com 9 patterns recomendados:
| # |
Pattern |
Quando usar |
| 1 |
Fire-and-Forget |
Tarefas independentes — delega e segue |
| 2 |
Pipeline Sequencial |
Research → implement → test em cadeia |
| 3 |
Discovery → Implementation |
Projeto desconhecido — discover primeiro, implemente depois |
| 4 |
Delegação Paralela |
Múltiplas tarefas independentes em worktrees isolados |
| 5 |
Mid-Flight Control |
Revisar plano antes de executar, ajustar durante execução |
| 6 |
Context Compaction |
Sessões longas chegando no limite de contexto |
| 7 |
Research-First Pipeline |
Pesquisa obrigatória antes de implementação — garante contexto |
| 8 |
Signal Bus Coordination |
Coordenação entre tentáculos paralelos via pub/sub |
| 9 |
Clone & Retry |
Clone sessão falha com contexto preservado para nova tentativa |
Inclui também anti-patterns documentados (pipelines para código simples, polling excessivo, delegação de tarefas triviais, etc.).
Todas registradas como LanguageModelTools, visíveis e referenciáveis no modo agent do Copilot.
Core — Ciclo de Vida (7)
| Tool |
Descrição |
delegate_task |
Cria sessão CLI isolada e delega tarefa. Suporta worktree, modelo, modo, agent custom e lock de arquivos. |
delegate_task_with_learning |
Delega tarefa com muscle memory — injeta lições aprendidas automaticamente. |
classify_delegation |
Classifica o pedido e sugere qual pattern de delegação usar (baseado em heurísticas). |
check_session |
Estado enriquecido: status, lastMessage, summary, usage, plan, changedFiles. |
send_message |
Follow-up para sessão ativa (timeout configurável). |
list_sessions |
Lista sessões gerenciadas (filtro por repositório). |
cleanup_session |
Encerra sessão e limpa recursos (disconnect + worktree + registry). Suporta force e skipTests. |
Callback + Visibilidade (2)
| Tool |
Descrição |
wait_for_session |
Bloqueia até sessão finalizar (fire-and-wait). Resultado + métricas. |
get_session_history |
Histórico filtrado de eventos (messages, tools, errors). |
Controle Mid-Flight (3)
| Tool |
Descrição |
switch_model |
Troca modelo de IA mid-flight (com reasoningEffort opcional). |
set_session_mode |
Alterna modo: plan / autopilot / interactive. |
update_plan |
Injeta ou atualiza plano markdown da sessão. |
Pipeline Management (3)
| Tool |
Descrição |
delegate_pipeline |
2–10 steps sequenciais. Output de step N → contexto de step N+1. Retorna pipelineId + alias satírico. |
check_pipeline |
Status do pipeline: step atual, resultados por step. |
wait_for_pipeline |
Bloqueia até pipeline finalizar (completed/failed/partial). |
Session Control (4)
| Tool |
Descrição |
pause_session |
Pausa sem perder estado. Sessão aguarda próxima instrução. |
stop_session |
Graceful (commit WIP + 5s) ou force=true (disconnect imediato). |
merge_session |
Merge do worktree → repo principal. Commit pendências, valida testes (validateFirst), limpa branch. |
resolve_conflicts |
Resolve conflitos de merge automaticamente com estratégias: auto, ours, theirs, manual. |
Complementares (6)
| Tool |
Descrição |
read_session_file |
Lê arquivo ou lista arquivos do workspace da sessão. |
resume_session |
Reconecta sessão desconectada, restaurando estado. |
compact_session |
Compacta contexto de sessões longas. |
select_agent |
Seleciona/desseleciona agent custom na sessão. |
session_log |
Injeta logs/breadcrumbs na timeline para debugging. |
discover_project |
Discovery autônomo em 6 steps paralelos → docs/discovery/project-context.md. |
clone_session |
Clona sessão ativa com contexto, opcionalmente com prompt/alias/modelo modificados. |
Coordination (2)
| Tool |
Descrição |
broadcast_signal |
Publica sinais no SignalBus para comunicação inter-sessões. |
receive_signals |
Recebe sinais do SignalBus filtrados por tipo/sessão. |
🔍 Discovery Pipeline
A tool discover_project executa 6 steps paralelos para onboarding em projetos existentes:
| Step |
Agent |
Output |
Fontes |
| 1. Structure Scan |
researcher |
01-structure.md |
Diretórios, manifests, configs, Docker |
| 2. Codebase Analysis |
researcher |
02-codebase.md |
Entry points, APIs, padrões, dependencies |
| 3. Git History |
researcher |
03-history.md |
Commits, branches, contributors, hotspots |
| 4. External Sources |
researcher |
04-external.md |
Confluence, Jira, GitHub PRs (opt-in) |
| 5. Assessment |
researcher |
05-assessment.md |
Best practices, desvios, recomendações |
| 6. Consolidation |
implementor |
project-context.md |
Documento final consolidado |
Source Modes: guided (default — pergunta ao usuário) ou auto (escaneia automaticamente).
A extensão adiciona sidebar dedicada no Activity Bar com 5 seções — todas com branding octopus 🐙:
| Seção |
ID |
Descrição |
| 🐙 Camouflage |
mode |
Toggle entre Manual, Autônomo (auto-inject) e Copilot (pre-fill). Persiste via globalState |
| 🐙 Ink Jets |
quick-actions |
Nova Delegação, 🛑 Stop All, 🧹 Cleanup All, 📋 List Summary, Refresh, Settings, Docs |
| 🐙 Tentacles |
sessions |
Lista com ícones de status + inline actions (check, inject, cleanup, copy result, export log). Tooltip rico com Markdown. Welcome view 🐙 quando vazia. Clique abre Chat WebviewPanel |
| 🐙 Nerve Center |
stats |
Total de sessões, ativas, erros, último modelo, tempo total acumulado |
| 🐙 Sonar |
discovery |
Status dos 6 steps de discovery com auto-refresh via filesystem watcher |
🎨 Modos de Operação
| Modo |
Comportamento |
| 🔧 Manual |
Notificação no VS Code ao completar — usuário decide a ação |
| 🐙 Autônomo |
Resultado automaticamente injetado no chat + auto-merge com validação de testes |
| 👤 Copilot |
Resultado preparado como pre-fill, usuário confirma antes de enviar |
Toggle via: botão na sidebar ou Copilot Delegate: Alternar Modo na Command Palette.
🦎 Camouflage Profiles
Conceito: Profiles de configuração que mudam o comportamento do sistema inteiro com um comando. Inspirado na camuflagem do polvo que muda de aparência instantaneamente.
Profiles Disponíveis
| Profile |
Emoji |
Descrição |
Settings |
| Stealth |
🟢 |
Dev mode: auto-retry, aggressive model, isolated worktrees |
Model: Sonnet 4.5, Mode: autopilot, autoRetry: true (2x), autoCleanup: true, isolateWorktree: true |
| Observe |
🔵 |
Review mode: plan-first approach, no auto-retry, isolated worktrees |
Model: Sonnet 4.5, Mode: plan, autoRetry: false, autoCleanup: false, isolateWorktree: true |
| Alert |
🔴 |
Debug mode: premium model, plan-first, aggressive retries |
Model: Opus 4.6, Mode: plan, autoRetry: true (3x), autoCleanup: false, isolateWorktree: true |
| Strike |
⚡ |
Speed mode: fast model, autopilot, no isolation overhead |
Model: Haiku 4.5, Mode: autopilot, autoRetry: false, autoCleanup: true, isolateWorktree: false |
Como Usar
Ativar Profile:
- Click no status bar (
🐙 N tentacles | 🟢 Stealth)
- Ou comando:
Copilot Delegate: Switch Camouflage Profile
- Escolha um dos 4 profiles ou "None (default settings)"
Ver Profile Ativo:
- Status bar mostra:
🐙 N tentacles | 🦎 Profile Name
- Sidebar ModeProvider exibe profile como primeiro item
- Comando:
Copilot Delegate: Show Current Profile
Comportamento:
- Settings do profile são aplicados como defaults em todas as novas sessões
- Override manual ainda funciona: input explícito sobrepõe profile
- Profile persiste entre sessões do VS Code (via globalState)
Exemplo de Uso
// Sem profile ativo - usa defaults globais
@workspace #delegate_task prompt="Fix bug X" model="claude-haiku-4.5"
// Com Stealth profile ativo - usa Sonnet 4.5, autopilot, autoRetry
@workspace #delegate_task prompt="Fix bug X" // herdará: sonnet, autopilot, autoRetry
// Override manual - Haiku sobrepõe profile
@workspace #delegate_task prompt="Fix bug X" model="claude-haiku-4.5" // usa Haiku
⌨️ Comandos
| Comando |
Descrição |
Copilot Delegate: Alternar Modo |
Toggle Manual → Autônomo → Copilot |
Copilot Delegate: Selecionar Modo |
Escolhe modo via QuickPick |
Copilot Delegate: Switch Camouflage Profile |
Quick Pick para mudar profile ativo (Stealth/Observe/Alert/Strike/None) |
Copilot Delegate: Show Current Profile |
Mostra informações do profile ativo |
Copilot Delegate: Limpar Sessões Idle |
Limpa sessões idle/completed automaticamente |
Atualizar |
Refresh da lista de sessões |
Limpar Todas as Sessões |
Cleanup de todas as sessões |
Nova Delegação |
Input box para criar sessão rápida |
Abrir Configurações |
Navega para settings da extensão |
Abrir Documentação |
Abre o README |
Verificar Sessão |
Consulta estado de sessão selecionada |
Injetar Resultado no Chat |
Injeta resultado da sessão no chat ativo |
Limpar Sessão |
Cleanup de sessão individual |
Detalhes da Sessão |
Abre Chat WebviewPanel da sessão |
Discover Project |
Lança discovery pipeline no projeto |
Focar Sessões |
Foca a view de sessões na sidebar |
Copiar Resultado |
Copia lastAssistantMessage para clipboard |
🛑 Stop All Tentacles |
Para todas as sessões ativas de uma vez |
🧹 Cleanup All Idle |
Limpa todas as sessões idle/completed |
📋 List Summary |
Copia resumo de todas as sessões para clipboard |
📋 Export Log |
Exporta log completo da sessão em nova aba do editor |
🖤 Ink Cloud (Emergency Stop All) |
Para TODAS as sessões ativas de uma vez + snapshot em emergency-snapshots/ |
Clear Session History |
Limpa histórico de sessões persistidas no globalState |
⚙️ Configuração
| Setting |
Tipo |
Default |
Descrição |
copilot-delegate.sdkPath |
string |
"" |
Caminho absoluto para o copilot-sdk/index.js. Quando definido, ignora a discovery automática do SDK. |
copilot-delegate.autoCleanupSessions |
boolean |
true |
Limpa sessões automaticamente após merge, conclusão de pipeline ou idle sem worktree |
copilot-delegate.settleTimeoutMs |
number |
3000 |
Timeout em ms para considerar uma sessão idle como completada (1000–30000) |
copilot-delegate.maxEventLogSize |
number |
500 |
Tamanho máximo do buffer de eventos por sessão (100–5000) |
copilot-delegate.defaultModel |
string |
"claude-sonnet-4.5" |
Modelo padrão para novas sessões delegadas |
copilot-delegate.autoRetry |
boolean |
false |
Habilita retry automático de sessões falhadas com backoff exponencial |
copilot-delegate.maxRetries |
number |
2 |
Máximo de tentativas automáticas para sessões falhadas (1–5) |
💡 Uso — Exemplos
Delegação Simples
@workspace #delegate_task
Crie testes unitários para o módulo de autenticação em src/auth.ts
Fire-and-Wait
@workspace #delegate_task
Refatore o componente Header para usar Tailwind CSS
#wait_for_session sessionId="<id-retornado>"
Worktree Isolado
@workspace #delegate_task
Migre o banco de dados de PostgreSQL para MongoDB
isolateWorktree: true
Controle Mid-Flight
#switch_model sessionId="abc123" model="claude-opus-4.6"
#set_session_mode sessionId="abc123" mode="plan"
#update_plan sessionId="abc123" content="## Nova Prioridade\n- Cache Redis"
#send_message sessionId="abc123" prompt="Adicione validação de schema"
#pause_session sessionId="abc123"
#resume_session sessionId="abc123"
#stop_session sessionId="abc123" force=false
Pipeline Sequencial
@workspace #delegate_pipeline
steps: [
{ prompt: "Analise o módulo de auth e liste melhorias", agent: "researcher" },
{ prompt: "Implemente as melhorias listadas", agent: "implementor", mode: "autopilot" },
{ prompt: "Crie testes para as mudanças", agent: "implementor" }
]
isolateWorktree: auto
Acompanhe com alias satírico: #check_pipeline pipelineId="operation-broccoli" ✨
Project Discovery
@workspace #discover_project
workingDirectory: "./legacy-app"
sourceMode: "guided"
sources: {
confluence: { spaceKey: "LEGACY" },
github: { includePRs: true, includeBranches: true },
localDocs: ["docs/architecture"]
}
🏆 Diferenciais
🐙 Octopus Branding
Tema visual coeso com referências biológicas reais do polvo. Sidebar views renomeadas (Tentacles, Nerve Center, Ink Jets, Camouflage, Sonar), notificações temáticas ("Tentacle spawned", "Ink absorbed"), status bar com 🐙 N tentacle(s), welcome view com arte 🐙, e fun facts extraídos de pesquisa real sobre octopuses (docs/octopus-research.md). O ícone da extensão (media/icon.svg) é um polvo SVG responsivo a temas do VS Code.
Session History
Persistência das últimas 50 sessões no globalState — sobrevive a restarts do VS Code. SessionHistoryManager com serialização, deduplicação e limite configurável. Comando Clear Session History para reset manual.
Auto-Cleanup
Zero manutenção de sessões concluídas: performAutoCleanup() verifica arquivos não-commitados, faz commit automático ou preserva sessão, desconecta, remove worktree/branch e libera locks. Pipelines também são limpos ao finalizar. Opt-out via setting autoCleanupSessions.
Guard mergedToMain: Auto-cleanup NÃO remove worktree se branch não foi mergeada — protege branches isoladas contra destruição acidental. Campo mergedToMain: boolean na DelegateSession garante segurança.
Force cleanup: cleanup_session aceita force: true para forçar limpeza sem merge/testes — essencial para sessões paradas/travadas. Também aceita skipTests: true para pular validação antes do merge.
Research-First Pipeline
O pattern principal do Octopus: pesquisa obrigatória antes de implementação. O agent researcher investiga o contexto, e só então o implementor age — com o output da pesquisa como contexto. Evita implementações cegas e reduz retrabalho.
Em modo autônomo, quando uma sessão com worktree completa com sucesso, o sistema tenta merge automático — sempre com validação de testes. Se os testes falham, o worktree é preservado intacto para revisão manual. Nunca faz merge sem testes.
Merge Hardening (b1cf859): Verificação post-merge confirma que um novo commit foi efetivamente criado (compara HEAD antes/depois), validação que repoDir é a raiz do repositório git (não subdiretório), sanitização de branch names para prevenir injeção de comandos, captura completa de stdout/stderr do git merge, e logging estruturado em cada step do fluxo. Notificação "Tentacle merged" só aparece quando o merge commit é verificado existir.
Auto-merge detection: isBranchMerged() detecta automaticamente branches já mergeadas via git branch --merged — pula testes automaticamente quando branch já está na main.
Advisory File Lock
delegate_task aceita lockFiles — lista de arquivos que ficam bloqueados para outras sessões. Impede edições concorrentes em arquivos críticos durante execução paralela.
Safety Hardening
Event callback isolation (try/catch em onSessionComplete, onSessionEvent, onSessionRemoved), lock release on merge failure, settle timer race condition fix, worktree cleanup on session creation failure, e notificações de erro contextualizadas.
Fun Aliases 🎭
Pipelines e discovery recebem aliases satíricos gerados automaticamente:
- Pipelines:
operation-broccoli, pipeline-tofu, sequence-kale
- Discovery:
radar-spinach, scanner-quinoa, probe-chia
Use no lugar do UUID: #check_pipeline pipelineId="operation-broccoli"
🦑 Auto-Retry (Regeneração de Braços)
Quando uma sessão falha (status error), o sistema pode automaticamente tentar novamente com backoff exponencial. Habilite via copilot-delegate.autoRetry = true e configure copilot-delegate.maxRetries (default: 2). A sessão mantém o originalPrompt e incrementa retryCount a cada tentativa. Notificações: "🦑 Tentacle regenerating... (attempt X/Y)" em retry, "🦑 Tentacle couldn't regenerate — manual intervention needed" após esgotamento. Previne falhas transitórias sem intervenção manual.
💓 Health Monitor (3 Corações)
Heartbeat check a cada 30 segundos monitora sessões ativas. Se uma sessão não emite eventos por 2 minutos, é marcada como unresponsive (campo phase). Notificação "💓 Tentacle heartbeat lost — session may be stuck" alerta o usuário. TreeItems na sidebar ganham decoração ⚠️ para sessões unresponsive. O campo lastEventAt (timestamp) é atualizado a cada evento recebido. Fases: starting → active → unresponsive | completing.
🖤 Ink Cloud (Emergency Stop All)
Comando copilot-delegate.emergencyStopAll para TODAS as sessões ativas de uma vez. Executa disconnect() em todas simultaneamente e salva snapshot JSON automático em ~/.copilot/session-state/emergency-snapshots/emergency-{timestamp}.json com estado completo (sessionId, alias, status, eventLog, etc.). Notificação: "🖤 Ink cloud deployed — X sessions stopped". Ideal para limpar estado quando algo dá muito errado.
🦑 Signal Bus Coordination
SignalBus singleton para coordenação inter-sessões via pub/sub pattern. broadcast_signal publica sinais estruturados em channels/topics, receive_signals lê com filtros por sessionId/channel/topic/timestamp. Estrutura: { sessionId, channel, topic, payload, timestamp }. Limite de 100 sinais por channel, cleanup automático de sinais antigos (>1h). Use para pipelines complexos, handoffs, sincronização de estado entre tentáculos paralelos.
🔮 Conflict Radar (Ventosas)
Detecção proativa de conflitos entre sessões paralelas. O ClientManager mantém conflictMap: Map<filePath, sessionId[]> que rastreia quais sessões modificam quais arquivos (campo modifiedFiles: string[] por sessão). Quando detecta múltiplas sessões editando o mesmo arquivo, emite notificação: "🔮 Conflict detected: sessions X and Y both editing file.ts". Métodos: registerFileModifications(), getConflictingSessions(), clearConflicts(). Previne sobrescrita acidental em delegações paralelas.
🏠 Session Templates (Construção de Toca)
5 templates pré-configurados acessíveis via comando copilot-delegate.useTemplate com Quick Pick UI:
| Template |
Agent |
Model |
Prompt Prefix |
Worktree |
| Bug Fix |
implementor |
claude-sonnet-4.5 |
"Fix the following bug:" |
auto |
| New Feature |
implementor |
claude-opus-4.6 |
"Implement the following feature:" |
true |
| Refactor |
implementor |
claude-sonnet-4.5 |
"Refactor the code:" |
auto |
| Test Coverage |
implementor |
claude-sonnet-4.5 |
"Add tests for:" |
false |
| Documentation |
implementor |
claude-haiku-4.5 |
"Document:" |
false |
Exportados como BUILTIN_TEMPLATES em client-manager.ts para extensibilidade futura (templates customizados por usuário).
🎨 Live Progress (Cromatóforos)
TreeItems na sidebar de sessões exibem cores contextuais por fase via ThemeColor:
- starting → azul (
charts.blue)
- active → verde (
charts.green)
- unresponsive → amarelo (
editorWarning.foreground)
- completing → roxo (
charts.purple)
- completed/stopped → cinza (
descriptionForeground)
- error → vermelho (
errorForeground)
Sessões unresponsive ganham indicador ⚠️ na description. Feedback visual imediato do estado de cada tentáculo.
🛠️ Tech Stack
| Tecnologia |
Uso |
| TypeScript |
Linguagem principal |
| VS Code Extension API |
LanguageModelTools, TreeDataProvider, WebviewPanel |
| Copilot CLI SDK |
Integração com @github/copilot |
| Zod |
Validação de schemas |
| esbuild |
Build e bundling |
| Vitest |
Framework de testes |
📂 Estrutura do Projeto
copilot-delegate/
├── src/
│ ├── extension.ts # Entry point — registra 26 tools + sidebar + commands + status bar
│ ├── client-manager.ts # Sessões, CopilotClient, event system, advisory locks, auto-cleanup, session history
│ ├── auto-merge.ts # Auto-merge com validação de testes
│ ├── utils/
│ │ └── octopus-facts.ts # 20 fun facts sobre polvos (biologia real)
│ ├── tools/ # 26 tools (+ _shared.ts)
│ │ ├── delegate-task.ts # Core: delega tarefa
│ │ ├── delegate-task-with-learning.ts # Core: delega com muscle memory
│ │ ├── check-session.ts # Core: consulta estado
│ │ ├── send-message.ts # Core: follow-up
│ │ ├── list-sessions.ts # Core: lista sessões
│ │ ├── cleanup-session.ts # Core: limpa recursos (force, skipTests)
│ │ ├── wait-for-session.ts # Callback: fire-and-wait
│ │ ├── get-session-history.ts # Callback: histórico
│ │ ├── switch-model.ts # Mid-flight: troca modelo
│ │ ├── set-session-mode.ts # Mid-flight: troca modo
│ │ ├── update-plan.ts # Mid-flight: atualiza plano
│ │ ├── delegate-pipeline.ts # Pipeline: cria pipeline
│ │ ├── check-pipeline.ts # Pipeline: consulta pipeline
│ │ ├── wait-for-pipeline.ts # Pipeline: aguarda pipeline
│ │ ├── pause-session.ts # Control: pausa
│ │ ├── stop-session.ts # Control: para
│ │ ├── merge-session.ts # Control: merge worktree
│ │ ├── read-session-file.ts # Complementar: lê arquivo
│ │ ├── resume-session.ts # Complementar: reconecta
│ │ ├── compact-session.ts # Complementar: compacta contexto
│ │ ├── select-agent.ts # Complementar: seleciona agent
│ │ ├── session-log.ts # Complementar: injeta log
│ │ ├── discover-project.ts # Complementar: discovery
│ │ ├── clone-session.ts # Complementar: clona sessão
│ │ ├── broadcast-signal.ts # Coordination: publica sinal
│ │ ├── receive-signals.ts # Coordination: recebe sinais
│ │ └── _shared.ts # Utilitários compartilhados
│ └── sidebar/ # 5 providers + chat panel
│ ├── mode-provider.ts # 🐙 Camouflage (Manual/Autônomo/Copilot)
│ ├── quick-actions-provider.ts # 🐙 Ink Jets (Stop All, Cleanup All, List Summary...)
│ ├── sessions-provider.ts # 🐙 Tentacles (tooltip, welcome view, export log, copy result)
│ ├── stats-provider.ts # 🐙 Nerve Center (total, ativas, erros, tempo)
│ ├── discovery-provider.ts # 🐙 Sonar (auto-refresh via watcher)
│ └── session-chat-panel.ts # WebviewPanel de chat interativo
├── agents/
│ └── octopus.agent.md # Agent Octopus — orchestrator de delegação
├── skills/
│ └── octopus/
│ ├── SKILL.md # Skill Octopus — 9 patterns de delegação
│ └── FEEDBACK.md # Feedback loop da skill
├── hooks/
│ ├── feedback-guard.ps1 # Hook: validação de feedback (Windows)
│ └── feedback-guard.sh # Hook: validação de feedback (Unix)
├── tests/ # 782 testes em 25 arquivos (Vitest)
│ ├── auto-cleanup.test.ts # Auto-cleanup de sessões e pipelines (mergedToMain guard)
│ ├── auto-merge.test.ts # Auto-merge com validação
│ ├── bug-fixes.test.ts # 6 bug fixes críticos (clone, path traversal, timeout, etc.)
│ ├── client-manager.test.ts # Sessões, events, locks, history
│ ├── discover-project.test.ts # Discovery pipeline completo
│ ├── discovery-provider.test.ts # Sidebar discovery
│ ├── event-handling.test.ts # Event system, settle timer
│ ├── lockfiles.test.ts # Advisory file locks
│ ├── merge-hardening.test.ts # Merge hardening (post-merge verification, git root validation, sanitization)
│ ├── octopus-biology.test.ts # Biology features (auto-retry, health monitor, ink cloud, conflict radar, templates, live progress)
│ ├── octopus-branding.test.ts # Branding, fun facts, themed notifications
│ ├── pipeline.test.ts # Pipeline management
│ ├── safety-fixes.test.ts # Try/catch, race conditions, cleanup
│ ├── session-control.test.ts # Pause, stop, resume
│ ├── sidebar-providers.test.ts # Mode, actions, sessions, stats
│ ├── tools-validation.test.ts # Schema e validação das tools
│ ├── ux-improvements.test.ts # Tooltip, welcome view, export, copy result
│ ├── worktree-merge.test.ts # Worktree isolation e merge
│ ├── session-learning.test.ts # Session learning e extração de lições
│ ├── tentacle-coordination.test.ts # SignalBus e coordenação inter-sessões
│ ├── artifact-catalog.test.ts # Catálogo de artefatos persistido
│ ├── session-cloning.test.ts # Clonagem de sessões com contexto
│ ├── camouflage-profiles.test.ts # Profiles pré-configurados
│ └── offline-mode.test.ts # Modo offline e resiliência
├── docs/ # Documentação técnica
│ ├── 01-vision.md
│ ├── 02-architecture.md
│ ├── 03-tools-design.md
│ ├── 04-context-file-format.md
│ ├── 05-expansion-plan.md
│ ├── 06-orchestration-improvements.md
│ ├── 07-project-discovery.md
│ ├── octopus-research.md # 303 linhas de biologia do polvo para analogias
│ └── discovery/ # Output do discovery pipeline
├── media/
│ └── icon.svg # 🐙 Ícone SVG de polvo (responsivo a temas VS Code)
├── package.json
├── tsconfig.json
├── esbuild.mjs
├── vitest.config.ts
├── CHANGELOG.md
└── LICENSE
🧪 Testes
782 testes em 25 arquivos via Vitest:
| Arquivo |
Testes |
Cobertura |
auto-cleanup.test.ts |
42 |
Auto-cleanup de sessões, pending files, pipeline cleanup, mergedToMain guard |
auto-merge.test.ts |
15 |
Auto-merge com validação |
bug-fixes.test.ts |
21 |
6 bug fixes críticos (clone dedup, path traversal, timeout, schema, error isolation, switch_model) |
client-manager.test.ts |
38 |
Sessões, events, locks, session history, totalEvents |
discover-project.test.ts |
65 |
Discovery pipeline completo |
discovery-provider.test.ts |
23 |
Sidebar discovery, auto-refresh |
event-handling.test.ts |
23 |
Event system, settle timer |
lockfiles.test.ts |
24 |
Advisory file locks |
merge-hardening.test.ts |
20 |
Post-merge verification, git root validation, branch sanitization, output capture |
octopus-biology.test.ts |
40 |
Auto-retry, health monitor, ink cloud, conflict radar, session templates, live progress |
octopus-branding.test.ts |
31 |
Fun facts, themed notifications, status bar, welcome view |
pipeline.test.ts |
51 |
Pipeline management |
safety-fixes.test.ts |
16 |
Try/catch callbacks, lock release, settle race fix |
session-control.test.ts |
23 |
Pause, stop, resume |
sidebar-providers.test.ts |
35 |
Mode, actions, sessions, stats providers |
tools-validation.test.ts |
41 |
Schema e validação das tools |
ux-improvements.test.ts |
40 |
Tooltip preview, export log, copy result, session duration |
worktree-merge.test.ts |
43 |
Worktree isolation e merge |
session-learning.test.ts |
52 |
Session learning, extração de lições, padrões entre sessões |
tentacle-coordination.test.ts |
48 |
SignalBus, broadcast, receive, inter-session communication |
artifact-catalog.test.ts |
35 |
Catálogo de artefatos, persistência via globalState, sidebar |
session-cloning.test.ts |
28 |
Clonagem de sessões, preservação de contexto, prompt modificado |
camouflage-profiles.test.ts |
0 |
(já coberto em octopus-biology.test.ts) |
offline-mode.test.ts |
0 |
(já coberto em safety-fixes.test.ts) |
npm test # Roda todos os testes
🗺️ Roadmap
✅ v0.1.0 (Atual)
- [x] 26 LanguageModelTools registradas
- [x] Sidebar com 5 seções (🐙 Camouflage, Ink Jets, Tentacles, Nerve Center, Sonar)
- [x] Chat WebviewPanel interativo
- [x] Event system com settle timer
- [x] Callback automático (Autônomo/Copilot)
- [x] Worktree isolation
- [x] Pipeline Management (delegate, check, wait)
- [x] Discovery Pipeline (6 steps, guided/auto, fontes externas)
- [x] Session Control (pause, resume, stop, merge com validação)
- [x] Auto-merge com validação de testes obrigatória
- [x] Auto-cleanup de sessões (post-merge, pipeline, idle)
- [x] Advisory file locks para sessões concorrentes
- [x] Agent Octopus bundled (orchestrator de delegação)
- [x] Skill Octopus bundled (9 patterns + anti-patterns)
- [x] Octopus Branding (sidebar, notifications, status bar, fun facts)
- [x] Session History persistence (globalState, últimas 50)
- [x] Session Duration (completedAt + elapsed time)
- [x] totalEvents counter (além do buffer circular)
- [x] Quick Actions em massa (Stop All, Cleanup All, List Summary)
- [x] Export Session Log + Copy Result
- [x] Tooltip Preview com Markdown rico
- [x] Welcome View 🐙 quando sem sessões
- [x] Themed Notifications (metáforas octopus)
- [x] Safety Hardening (try/catch, locks, race fixes)
- [x] Orphan Worktree Cleanup no startup
- [x] Fun aliases satíricos para pipelines e discovery
- [x] 5 settings configuráveis
- [x] 20 comandos registrados
- [x] 🦑 Auto-Retry com backoff exponencial (setting + maxRetries configurável)
- [x] 💓 Health Monitor com heartbeat a cada 30s + detection de sessões unresponsive
- [x] 🖤 Ink Cloud (Emergency Stop All com snapshot automático)
- [x] 🔮 Conflict Radar para detecção de edições concorrentes no mesmo arquivo
- [x] 🏠 Session Templates (5 templates built-in via Quick Pick)
- [x] 🎨 Live Progress com cores temáticas por fase (ThemeColor na sidebar)
- [x] Merge Hardening (post-merge verification, git root validation, branch sanitization)
- [x] 🧠 Session Learning — Aprendizado de padrões entre sessões
- [x] 🦑 Tentacle Coordination — SignalBus para comunicação inter-sessões
- [x] 📦 Artifact Catalog — Catálogo de artefatos persistido via globalState
- [x] 🐙 Session Cloning — Duplicação de sessões com contexto preservado
- [x] 🦑 Muscle Memory —
delegate_task_with_learning injeta lições automaticamente
- [x] 🛡️ Cleanup Guards —
force para sessões travadas, mergedToMain protege worktrees não-mergeados
- [x] 🔍 Auto-merge Detection —
isBranchMerged() detecta branches já mergeadas, pula testes
- [x] 🐛 6 Bug Fixes Críticos — clone dedup, path traversal, timeout, schema, error isolation, switch_model
- [x] 782 testes em 25 arquivos
- [x] Hooks de feedback-guard (PS1 + Shell)
- [x] Build + Package VSIX
🔲 Próximas versões
- [ ] Persistência do registry de sessões em disco
- [ ] Diff viewer para changedFiles
- [ ] Templates de tarefas comuns
- [ ] Integração com GitHub Actions
- [ ] Export/import de sessões
- [ ] Dashboard de métricas e analytics
- [ ] Session replay para debugging
- [ ] Discovery incremental com delta detection
- [ ] MCP integration para fontes externas (Confluence, Jira)
🤝 Contribuindo
- Fork o projeto
- Crie uma branch:
git checkout -b feature/AmazingFeature
- Commit:
git commit -m 'Add some AmazingFeature'
- Push:
git push origin feature/AmazingFeature
- Abra um Pull Request
📄 Licença
MIT — veja LICENSE.
⬆ Voltar ao topo
| |