How It Works
Three stages: capture โ group โ synthesize. Everything runs inside the extension โ no external processes.
Stage 1 โ Capture
The extension listens to VS Code events and writes them to ~/.devlog/events-YYYY-MM-DD.jsonl as they happen:
Never captured: source code contents, file contents, stdout/stderr, clipboard, browser activity.
Stage 2 โ Session grouping
Events are grouped into work sessions using a 30-minute inactivity gap. Each session extracts: branch name, commits (enriched from git if messages are missing), files worked on, error count, and languages used.
Stage 3 โ AI synthesis
A structured digest is built and sent to your AI provider. File changes are described meaningfully:
Four AI calls run in parallel: summary, standup, work areas, and decisions. Results are saved to ~/.devlog/log-YYYY-MM-DD.json.
Commit enrichment
If the extension wasn't running when you committed (editor was closed), the event has a hash but no message. At synthesis time, DevLog runs git show <hash> to backfill missing messages โ so your standup is specific even for commits made before DevLog was installed.
User filtering
All commit filtering uses git config user.email. Both the real-time watcher and the 90-day bootstrap filter by this email โ teammates' commits never appear in your log.
Storage
All files are human-readable JSON. You can inspect or delete them at any time.