I reopened an old project and found a working authentication implementation.
What I could not find was the reason it looked that way.
The commits showed the final code, but not:
- Why one approach had been chosen
- Which fixes had already failed
- What the coding agent warned me about
- Which tasks had been postponed
The answers were scattered across a ChatGPT thread, a Codex session, and a terminal that no longer existed.
There was another layer to it. I don't stick to one agent. I move between Codex, Claude Code, Cursor, and plain ChatGPT threads — sometimes because one tool genuinely fits the task better, more often because I simply run out of credits on one and switch to another mid-task. Every time that happened, the new agent started from zero. It had no idea what the previous one had already tried, decided, or ruled out. I either re-explained everything from memory, or let the new agent guess and re-discover things the old one already knew.
This is not only a documentation problem. It is a structural problem in AI-assisted development.
We use several tools to produce one project, but every tool keeps a separate, temporary memory.
That experience became ContextVault.
How CLI sessions appear live in Desktop
Compatibility also needs to work in the opposite direction.
The main process watches the active project's session directory:
vaultWatcher = watch(sessionsPath, () => {
if (vaultRefreshTimer) clearTimeout(vaultRefreshTimer)
vaultRefreshTimer = setTimeout(async () => {
const engine = await getEngine()
engine.buildContextIndex(projectPath)
mainWindow?.webContents.send('contextvault:vault-changed')
}, 250)
})
The delay debounces bursts of file events. After rebuilding the index, open renderer views refresh.
The UI exposes the watcher state:
- Watching project
- Last updated
- Events found
- Sources detected
For the integration test, I kept Desktop open and recorded a session from the external CLI. Without reopening the app, the session count increased from 3 to 4, the event count increased from 14 to 16, and terminal appeared as a detected source.
That was the moment the CLI and GUI stopped feeling like separate products.
Turning commands into actual workflows
The redesign replaced the default arguments field with screens based on user intent.
| What the user wants | Desktop workflow |
|---|---|
| Capture project context | Recorder |
| Browse or export a session | Sessions / Session Detail |
| Understand recent activity | History |
| Find previous choices | Decisions |
| Review bugs and failed attempts | Problems |
| Review follow-up work | Tasks |
| Rank evidence for a question | Retrieve |
| Find matching text | Search |
| Build context for another agent | Prepare |
| Connect related sessions | Link Sessions |
| Maintain the local vault | Index, Memory, Timeline, Export |
History, for example, supports:
- Since: 24 hours, 7, 14, or 30 days, all time, or a custom date
- Source: Codex, Claude Code, Cursor, ChatGPT, manual, terminal, or browser
- Event type: decision, problem, task, note, user, or agent
- Maximum results
Results are grouped, readable, copyable, and exportable.
SOCIAL SHARE CARD GENERATOR