Pular para o conteúdo

Outro Context Code daqui

O seu terminal pode falar com o Context Code de outra máquina: o de casa a partir do escritório, o do servidor a partir do notebook. É exatamente o que o celular faz quando escaneia o QR, mas a partir de um console.

O turno não é executado pelo seu computador: ele entra na fila de lá, com os arquivos e os projetos de lá. Você vê o que acontece e decide o que for preciso decidir.

Ventana de terminal
# No OUTRO computador (o que tem o agente e os projetos):
contextcode serve --print-qr --public
# Aqui, com a URL que ele imprimiu (leva o ?t=…):
contextcode remoto agregar casa "https://algo.trycloudflare.com/?t=TOKEN"
contextcode remoto listar
contextcode remoto probar casa
contextcode chat --remoto casa

Também aceita o endereço e o token separados, ou sem esquema:

Ventana de terminal
contextcode remoto agregar vps 192.168.1.5:8787 --token TOKEN
  1. É chamada a /api/version, a única rota pública. Serve para separar dois problemas que se parecem e têm remédios opostos: «não chego a essa máquina» e «chego, mas o token não vale».
  2. A credencial é validada com uma chamada que não muda nada.
  3. O token do link é trocado por um de dispositivo. A partir daí, o token do QR não é guardado: mantê-lo deixaria no seu disco uma credencial viva que sobreviveria à revogação.

O registro vive em ~/.context/remotos.json, com permissões 0600 onde o sistema permite. contextcode conexion diz o caminho exato.

CredencialDe onde vemQuanto duraComo é retirada
Token do linkGerado pelo serve; é o que vai dentro do QRDe 1 minuto a 30 diasRotacionando-o: caem todos de uma vez
Token de dispositivoPedido uma vez, apresentando o do linkNão expiraUm a um, sem mexer nos demais

O QR é a porta, não a chave. Por isso o link pode ser efêmero sem obrigar você a reescanear todo dia, e por isso perder um celular não expulsa os demais.

Ventana de terminal
contextcode chat --remoto casa # cria um chat novo
contextcode chat --remoto casa --proyecto "Meu app" # nesse projeto (id ou nome)
contextcode chat --remoto casa --chat chat-a1b2 # continua um existente
contextcode chat --remoto # o remoto ativo

Você verá o mesmo que em um chat local — texto ao vivo, ferramentas, resultado — porque são os mesmos eventos do motor, acompanhados por sondagem da linha do tempo do outro lado.

As aprovações são respondidas pelo seu terminal

Seção intitulada “As aprovações são respondidas pelo seu terminal”

Quando o agente da outra máquina pede permissão para usar uma ferramenta, a pergunta sai no seu console ([s/N/siempre]) e a sua resposta o desbloqueia. Sem isso, o turno esperaria indefinidamente por alguém sentado na frente daquele computador — que é justamente o que você está evitando.

O agente continua trabalhando lá. O comando diz com qual linha voltar a entrar (--chat <id>) para recuperar a resposta quando você voltar.

Não competem: resolvem casos diferentes.

contextcode remotoWorkspace SSH (janela do desktop)
Quem usaO terminal, em qualquer sistemaO aplicativo de desktop
TransporteHTTP direto contra o servessh -L e HTTP pelo túnel
CredencialToken do QR → token de dispositivoAs suas chaves SSH
Precisa no servidorcontextcode serve já rodandoAcesso SSH e o binário instalado
Atravessa a internetSim, com serve --publicSim, se o SSH for acessível

Em um VPS próprio com SSH, o desktop usa o workspace SSH. Para chegar a partir de um terminal — ou de uma máquina onde as suas chaves não estão — o caminho é remoto contra serve --public.

Se você usava um workspace SSH e ele cortava toda hora, era isto: os NAT domésticos e algumas VPN só contam o tráfego TCP visível e reciclam as sessões ociosas, mesmo com o SSH mandando as suas próprias sondas criptografadas por dentro.

Agora a conexão leva keep-alive nas duas camadas (ServerAliveInterval=15 com ServerAliveCountMax=3 no SSH, e TCPKeepAlive=yes no TCP). E se mesmo assim cortar:

  • O aplicativo detecta que o túnel está morto e volta sozinho a trabalhar em local, em vez de encadear esperas de três segundos por cada comando contra uma conexão que já não existe.
  • Os chats remotos toleram cortes de mais de dois minutos, tentando de novo com esperas crescentes, antes de se darem por perdidos.
O que você vêO que acontece e o que fazer
«O seu computador recusou este link: já expirou»O link venceu ou foi regenerado. Gere um novo e escaneie de novo.
«O seu acesso foi revogado»Esse dispositivo foi revogado do outro lado. Escaneie um QR novo.
«Não foi possível contatar» e o PC está ligadoO QR de rede local aponta para um IP interno. Fiquem na mesma rede, ou peça o QR do túnel com --public.
O QR de um VPS não funcionaSem --public, o link aponta para um IP do data center que o seu celular não alcança.
conexion diz que «o chaveiro não devolveu o token»Servidor sem chaveiro do sistema: use serve --token-file <caminho> para ter um token estável.