VS Code Extensions
L

Lapso

by lucasftas

Post-it dockado por sessão do Claude Code: segue a aba em destaque e mostra a nota daquela sessão — status escrito pelo Claude + suas anotações, em .lapso/.md

Downloads

0

Rating

(0)

Version

0.3.1

Last updated

Aug 05, 2026

Post-it por sessão do Claude Code: um painel dockado que mostra a nota da aba de sessão em destaque. Troca de aba → troca a nota. Temporária e descartável (some quando a aba fecha).

Nome do repositório no GitHub: notes-session-vscode (histórico) → renomeado pra lapso. Nome do produto/extensão: Lapso.

Como funciona

  • Extensão contribui um ícone na Activity Bar (Lapso) com um WebviewView, tema Dracula Soft estilo mini-terminal.
  • Uma nota por sessão do Claude Code, em .lapso/<sessionId>.md (pasta .lapso/ no .gitignore — temporária, não versiona).
  • Segue a aba em destaque: quando você foca uma aba de sessão do Claude Code, o painel resolve qual sessão é (casa o título da aba com o sessionId lendo os transcripts .jsonl do Claude Code) e mostra a nota daquela sessão. Troca de aba → troca a nota.
  • Casamento preciso por ID: o Claude escreve o status em .lapso/<seu-sessionId>.md (ele conhece o próprio sessionId); a extensão resolve aba→sessionId pelo título. Convergem no mesmo arquivo, sem chute.
  • Descartável: ao fechar a aba de uma sessão, a extensão apaga a nota .lapso/<sessionId>.md dela.
  • O painel tem duas zonas no mesmo arquivo, por marcador HTML:
    • Status (topo, read-only) — território do Claude Code, efeito de máquina de escrever. Entre <!-- lapso:status --> e <!-- /lapso:status -->.
    • Suas notas (baixo, editável) — só você mexe. Entre <!-- lapso:notes --> e <!-- /lapso:notes -->.
  • Não-sobrescrever, por design: cada zona salva relendo a outra do disco e recombinando → o Claude nunca apaga suas notas e você nunca apaga o status dele.
  • Scroll contido no campo, barra estilizada.
  • Requer CLAUDE_CONFIG_DIR (ou ~/.claude) acessível — é de lá que a extensão lê os transcripts pra casar aba→sessão.

Instalar

Do Marketplace (recomendado)

Publicada como lucasftas.lapso — instala num comando e o Settings Sync replica em toda máquina logada na mesma conta do VSCode:

code --install-extension lucasftas.lapso

Do VSIX do release (sem buildar)

  1. Baixe o arquivo lapso-<versão>.vsix anexado no último release.
  2. Instale com um comando (precisa do VSCode com o code no PATH):
code --install-extension lapso-0.3.0.vsix
  1. Developer: Reload Window (ou reabra o VSCode). O ícone do Lapso aparece na Activity Bar.

Buildar do código (dev)

git clone https://github.com/lucasftas/lapso.git
cd lapso
npm install
npm run compile
npx @vscode/vsce package --allow-missing-repository --no-yarn
code --install-extension lapso-0.3.0.vsix

Reinstalando por cima de uma versão já rodando? O VSCode não recarrega a extensão sozinho — o host em memória continua com o código antigo até você dar Developer: Reload Window. Se reempacotar mantendo o mesmo número de versão, o VSCode nem sinaliza a atualização. Por isso cada build novo sobe a versão (semver) — garante que o reload pega o código novo.

Requisito: Node.js + code CLI no PATH (VSCode → Command Palette → "Shell Command: Install 'code' command in PATH").

Pra deixar na lateral direita (secondary side bar): arraste o ícone do Lapso da Activity Bar pra área da secondary side bar (Ctrl+Alt+B abre/fecha) uma vez — o VSCode lembra o posicionamento depois disso.

Convenção pro Claude Code

O Claude escreve em .lapso/<sessionId>.md (o próprio sessionId dele) na pasta .lapso/ do workspace — gitignored, temporário. A extensão resolve a aba de sessão em destaque → sessionId (casando o título da aba com os transcripts .jsonl) e mostra a nota daquele arquivo. Não há mais LAPSO.md versionado na raiz.

Dev

npm install
npm run watch

Depois F5 no VSCode (ou code --extensionDevelopmentPath=. numa pasta de teste) abre um Extension Development Host com a extensão carregada.

Testes

npm test

80 asserts, sem framework e sem VSCode aberto: o harness dirige o out/extension.js real com vscode e node:fs mockados sobre um filesystem em memória, e um sandbox executa o script do webview num DOM mínimo. Cobre troca de aba, fechamento, escrita concorrente, painel descartado e recriado, sessão ainda sem título e diretório de transcripts ausente.

Estrutura

src/extension.ts          — toda a lógica (provider, índice de sessões, parse de zonas, webview)
tests/harness.js          — mocks de vscode + node:fs e helpers de driver
tests/webview-sandbox.js  — executa o script do webview num DOM mínimo
tests/concurrency.test.js — regressão dos fixes críticos da v0.2.2
tests/resilience.test.js  — suíte de resiliência e persistência (v0.3.0)
resources/icon.svg        — ícone da Activity Bar
docs/specs/               — PRD.md (decisões) + Spec.md (milestones)

Releases

https://github.com/lucasftas/lapso/releases

Related extensions