v1.14.8 — 05/27/2026 9:24 PM
Fixed: AI coding sessions now reliably linked to their pull request When a developer worked in an isolated workspace, the AI coding session could end up labeled with a different internal name than the pull request it produced. In those cases the pull request’s story showed no coding sessions and no AI cost — even though the work clearly happened. Cogniscape now connects each session to its pull request by the actual commits involved, instead of relying on the workspace name matching. Affected pull requests now show their full coding activity and cost.- Pull request stories no longer show “0 sessions” when the work was done in an isolated workspace
- AI cost and session attribution for those pull requests are now accurate
- Applies going forward; existing records are unchanged
- PR #505, closes #504
v1.14.7 — 05/26/2026 6:57 PM
Improved: empty “Session Start” markers are no longer recorded Every coding session used to begin with a generic “Session Start” entry that recorded only that a session had started — no work, no outcome. These markers added noise to your reports and counted against your usage without telling you anything the rest of the session didn’t already show. Cogniscape no longer records these start markers, across every supported coding tool. Session timing and everything meaningful about a session are unaffected — genuine activity, summaries, and results continue to be recorded exactly as before.- Empty “Session Start” entries no longer appear in reports
- Less noise and lower usage, with no loss of meaningful activity
- Forward-only: previously recorded entries are not changed; the next auto-update picks up the new version
- PR #500
v1.14.6 — 05/26/2026 5:49 PM
Improved: empty subagent conclusions are no longer recorded Building on the previous release, Cogniscape now reads each subagent’s conclusion from the agent’s own work. Some subagent stops, though, produce no written conclusion at all — a delegated step that simply ends without a summary. Those were still being recorded as empty, content-free activity entries that added noise without telling you anything. When there is no genuine agent output to capture, nothing is recorded. Subagent work that actually produced a result — analysis, review summaries, reports — continues to be recorded exactly as before.- Subagent stops with no real conclusion no longer create empty activity entries
- Cleaner reports — only subagent work that produced an actual result shows up
- Reinforces the privacy commitment: nothing is recorded when the only available text would be the developer’s request rather than the agent’s output
- Forward-only: previously recorded entries are not changed; the next auto-update picks up the new version
- PR #499
v1.14.5 — 05/26/2026 11:36 AM
Improved: subagent conclusions now capture the agent’s actual result When a coding session delegates part of a task to a subagent, Cogniscape records what that subagent concluded so the work shows up in your activity. Previously the recorded conclusion could capture the wrong text — in many cases the developer’s own request rather than the agent’s findings — which made those entries noisy and low-value. The conclusion is now read directly from the subagent’s own work, so the recorded result always reflects what the agent produced: the real analysis, review summary, or report — not the instruction that started it. The same correction applies to the message captured when a session ends with an error.- Subagent activity now shows the agent’s genuine output instead of the request that triggered it
- Richer, more useful content lands in reports — full review summaries and findings rather than one-line prompts
- Reinforces the privacy commitment: only the agent’s output is captured, never the developer’s input
- Forward-only: previously recorded conclusions are not rewritten; the next auto-update picks up the new version
- PR #498
v1.14.4 — 05/22/2026 6:42 PM
Improved: session activity now groups reliably under one canonical repository name The CLI derives a repository identifier from each project’s git remote and attaches it to every session event. Previously that identifier varied with how the remote was configured — an HTTPS clone, an SSH clone, and anscp-style remote of the very same repository could each produce a different string. The same repo then showed up under multiple names, splitting its activity across reports.
Session events now always carry a canonical owner/repo identifier, normalized from any common git remote format. Repositories without a remote (purely local work) fall back to the project folder name, exactly as before. Developers don’t need to do anything; the next auto-update picks up the new version, and activity from the same repository lands together going forward.
- HTTPS, SSH, and
scp-style git remotes all resolve to the sameowner/repoidentifier - Local-only repositories keep using the folder name — no spurious identifiers
- Forward-only: previously recorded session events are not rewritten
- PR #482
v1.14.3 — 05/16/2026 1:00 PM
Fixed: Claude Code session token usage inflated 40-50% The CLI summedmessage.usage from every assistant record in Claude Code transcripts, but Claude Code rewrites the same message.id multiple times as the message streams. Anthropic’s stream emits cumulative usage, so summing every record overcounted tokens by 40-50%. Every token_usage_by_model reported to the backend was inflated, and downstream ROI and cost reports inherited the inflation.
The transcript scanner now keeps only the latest record per message.id for both the main session and any subagent files. Cumulative-usage duplicates correctly resolve to the final value, identical-snapshot duplicates count once, and content blocks (tool_use, text) are read from the last record so files-read, files-modified, tool counts, commands, and summary text are no longer dropped when a duplicate carries new content. Codex sessions are unaffected (they use delta-based counts already).
This is a forward-only fix. Historical inflated metrics stay as recorded. The next auto-update picks up the new version and developers will see their reported token totals drop accordingly — that drop is the correction, not a regression.
- Per-message-id last-wins dedup in both main and subagent transcript scans
- Records without a
message.id(legacy / malformed) still sum normally - Content processing decoupled from token dedup so later duplicates’ tool_use blocks are not silently dropped
- 4 new regressions added:
DedupsByMessageID,SubagentDedupsByMessageID,LastWinsOnCumulativeUsage,LastRecordContentWins - PR #466, closes #462
v1.14.2 — 05/09/2026 7:30 AM
Fixed: Codex sessions now show real token usage, tool counts, and files touched The Codex CLI integration shipped in v1.14.0/v1.14.1 captured each session start and end, but every session-summary event landed with empty token usage, empty tool counts, no files modified, no files read, and no commands. ROI and cost reports treated Codex sessions as if no work happened. The CLI now reads the actual Codex rollout file Codex writes per session and surfaces the real numbers — per-model token usage, the last shell commands that ran, which files were edited viaapply_patch, which files were read via common shell readers (cat, head, tail, sed -n p, …), and the duration of the session. No data is forwarded for sessions that never produced a rollout file. Developers don’t need to do anything; the next auto-update picks up the new version.
- Token usage by model now flows into ROI and cost reports for every Codex session
- Tool call counts and the last 5 shell commands run during the session are captured
- Files modified via
apply_patchare recovered from the session transcript - Files read via common shell readers are surfaced — even paths whose name contains
p(e.g.*.py,helpers/*.go) - File paths are relativized against the project root before leaving the developer’s machine — same privacy contract as the Claude Code integration
- Output redirection (
>,>>,2>, …) is honored:cat src.go > out.gorecordssrc.goas read and skipsout.go - Older Codex rollout files (pre-0.129) still parse correctly — no data is lost during the upgrade
- PR #441, closes #440
v1.14.1 — 05/08/2026 6:40 PM
Improved: Codex hook integration is now zero-click for developers The Codex CLI integration shipped in v1.14.0 required developers to open Codex, run/hooks, and individually approve the SessionStart and Stop entries before any data flowed. That contradicted Cogniscape’s frictionless onboarding contract for developers — the install path is meant to be invisible.
Codex 0.129+ enforces a per-hook trust gate via ~/.codex/config.toml. The CLI now pre-populates the trust entries during cogniscape init / cogniscape setup-hooks so the cogniscape hooks become Active on the next Codex launch automatically. Developers don’t see the /hooks browser at all unless they choose to.
setup-hooksnow writes[hooks.state]entries to~/.codex/config.tomlalongside~/.codex/hooks.json- File permissions are preserved end-to-end — the backup and rewritten config inherit the original mode bits (defaulting to
0600when freshly created), so MCP server env vars and tokens never widen to world-readable cogniscape uninstallnow removes the trust state alongside the hooks file, leaving no Codex integration footprint behind- Trust write failure is non-fatal: if Codex changes the trust algorithm in a future release the hooks fall back to manual
/hooksapproval rather than blocking installation - PR #439
v1.14.0 — 05/08/2026 5:55 PM
Added: OpenAI Codex CLI sessions are now captured alongside Claude Code and Cursor Developers using OpenAI’s Codex CLI now have their coding sessions visible in Cogniscape — same level of detail teams already have for Claude Code: session start, session summary with the assistant’s final response, tool counts, files touched, and per-model token usage. No data is forwarded for sessions on tools that aren’t installed; the CLI silently skips when there’s no~/.codex/ directory on the developer’s machine.
For developers who have Codex installed, the next CLI auto-update will install the integration automatically. Codex itself asks the developer to approve the new hook on the next launch — a one-time click; the CLI prints a single line reminding the developer to approve when this happens. Nothing else changes for developers using only Claude Code or Cursor.
- New CLI subcommand
cogniscape codex-hookinvoked by Codex’s hook system cogniscape setup-hooksnow also installs~/.codex/hooks.json(when Codex is detected) alongside the existing Claude Code and Cursor hooks- Existing customers self-heal on auto-update — no manual
cogniscape initneeded for the integration to activate - PR #438, closes #437
v1.13.2 — 05/06/2026 7:30 PM
Fixed: worktree branch was being overwritten before the session ended The previous fix (v1.13.1) recovered the correct worktree branch at the end of the session, but a late event firing in the middle of the session — typically after a sub-agent finishes — was silently overwriting the cache with the main repo’s branch. When the worktree was then deleted before the session-summary fired, the CLI fell back to the corrupted cache and still recorded the wrong branch. The CLI now locks in the branch on the first capture and only allows the authoritative session-summary to replace it. Worktree sessions are now reliably attributed to their own branch end-to-end. No action required — auto-update will pick up the new version on the next coding session.- Late mid-session events can no longer overwrite the cached worktree branch
- The fix is race-safe under concurrent hook processes
- PR #428, closes #427
v1.13.1 — 05/06/2026 6:18 PM
Fixed: branch attribution lost when worktree deleted before session-summary When a developer worked inside a git worktree under.worktrees/<name>/ and the worktree was deleted (post-merge cleanup) before the session ended, the CLI was unable to recover the worktree’s branch on the final session-summary event. The session was then logged against the repo’s current branch (typically main) instead of the actual feature branch.
The CLI now caches the resolved branch eagerly at every hook event in ~/.cogniscape/sessions/<session_id>.branch and falls back to that cache at session-summary when the live worktree probe fails. Stale cache files are swept after 7 days. No action required — auto-update will pick up the new version on the next coding session.
- New per-session branch cache survives worktree deletion
- TTL sweep (7 days) reaps orphans from sessions that crashed before session-summary
- PR #420, closes #419
v1.13.0 — 05/05/2026 7:20 PM
Removed: claude-mem session enrichment The optional integration that pulled extra context from the local claude-mem database is gone. When the CLI detected the claude-mem plugin on a developer’s machine (introduced in v1.9.0), it would attach observations and session summaries to each session-summary event. In practice, only a handful of developers ever had the plugin installed, and the enriched payloads were occasionally large enough to fail processing on the server side. The CLI now sends a single, lean session payload regardless of which local tools the developer uses. There is nothing to configure or remove — developers who never used claude-mem are unaffected, and developers who did keep working as before with a smaller, more reliable payload.- The
enrichmentblock no longer appears intask_completed/session-summaryevents - Sessions are no longer auto-classified by type (bug fix, feature, refactor, decision); a single “worked on” relationship is recorded instead
- No action required — auto-update will pick up the new version on the next coding session
- PR #413, closes #412 and #361
v1.12.1 — 04/29/2026 7:35 AM
Fix: Cost reports showed $0 for sagas worked on inside developer worktrees When a developer ran a coding session from a Git worktree they created themselves (withgit worktree add), the CLI tagged that session’s token usage with the wrong branch — it recorded main instead of the actual feature branch. As a result, asking the platform for the cost of the related PR or issue returned $0.00 even though real spend existed for that work.
The CLI now recognizes both layouts a developer might use — the AI-managed .claude/worktrees/ directory and the manually-created .worktrees/ directory — and attributes token usage to the correct branch in either case.
- Cost reports for new sessions in developer worktrees will join correctly to the matching PR or issue
- No change for sessions running in the main repository directory or in AI-managed worktrees
- Past token records already tagged with
mainare not retroactively re-attributed
v1.12.0 — 04/16/2026 12:30 PM
New: Update all your MCP configurations with a single command The CLI can now scan your machine for every AI tool that has a Cogniscape MCP connection and update them all at once. If you previously configured Cogniscape in Claude Desktop, Claude Code, Cursor, Codex, or OpenCode, runningcogniscape mcp update will detect outdated configurations and migrate them to the latest format.
- Automatically finds and updates Cogniscape MCP configs across Claude Desktop, Claude Code, Cursor, Codex, and OpenCode
- Preview what would change before committing with
--dry-run - Filter to a specific tool with
--only "Claude Desktop"or see file paths with--verbose - New command namespace:
cogniscape mcp setupandcogniscape mcp update(the oldcogniscape setup mcpstill works)
v1.11.4 — 04/13/2026
Fix: Claude Code hooks failed on Windows with “command not found” On Windows, the CLI wrote the full Windows-style binary path (with backslashes) into the Claude Code hooks configuration. Claude Code on Windows runs hooks through git-bash, which consumes backslashes as escape characters — soC:\Users\name\...\cogniscape.exe became C:Usersname...cogniscape.exe and every hook invocation failed with “command not found”.
The CLI now writes the hook command with forward slashes (C:/Users/name/.../cogniscape.exe), which git-bash handles natively. Developers who already ran setup-hooks on Windows should re-run it after upgrading.
- Fixes
SessionStart,Stop,SubagentStop,StopFailurehooks on Windows - No change for Linux or macOS
v1.11.3 — 04/13/2026
Fix: Windows PowerShell installer failed to copy the binary The Windows installer script was looking for a binary namedcogniscape_windows_arm64.exe (or _amd64.exe) inside the downloaded zip, but the release pipeline now packages it as plain cogniscape.exe so auto-update can find it after extraction. The installer failed with a “PathNotFound” error on every Windows install since v1.11.0.
Linux and macOS were not affected — the shell installer was already updated when the binary was renamed.
- Windows installer now copies
cogniscape.exefrom the extracted archive - Fixes both amd64 and arm64 installs
v1.11.2 (re-release) — 04/07/2026
Rollback: v1.12.0 withdrawn Version 1.12.0 removed the enrichment collection step from the CLI, but the removal was over-scoped — it also deleted compact, high-value fields that were being consumed downstream. A separate change that expanded the reader to use those fields was based on the incorrect assumption that all sessions produce enrichment data (only sessions with the claude-mem plugin do). Both changes have been reverted. The CLI returns to the exact behavior of v1.11.2. Developers on v1.11.2 are unaffected — no action required.- PR #318 — reverts #313 and #314
v1.11.2 — 04/01/2026 7:50 PM
Fix: only one of two parallel agents was recorded when they finished at the same time When two AI agents complete their work at nearly the same time within a session, both should appear as separate entries in the knowledge graph. In practice, only the first one was recorded — the second was silently discarded because the system couldn’t tell the two events apart. The root cause was that each agent’s completion event was identified by information they shared (the session they belonged to), rather than by what made them unique (their individual identity). When two events look identical, the system assumes they’re duplicates and drops one. The fix ensures each agent’s completion carries its own identity in the identifier, so no two agents can ever collide.- Parallel agents that finish close together are now both captured reliably
- No change to existing hook setup or configuration required
v1.11.1
Fix: background agent activity not captured in the knowledge graph When a coding session delegates work to background agents — research assistants that run in parallel while the developer continues working — the outcome of that work was not being recorded. Only agents that ran synchronously (blocking the session until they finished) were tracked. This meant that a significant portion of agent activity was invisible in the knowledge graph. Background agent conclusions are now captured reliably, regardless of how they were dispatched.- Background agent outcomes now appear in the knowledge graph alongside synchronous agent results
- Existing hook installations are updated automatically on next setup
v1.11.0
More accurate AI cost reporting and visibility into session failures Two meaningful gaps in how Cogniscape tracks AI usage have been closed in this release. When Claude Code spawns subagents — specialized assistants that work in parallel on independent parts of a task — those agents do their own AI processing and consume tokens separately. Until now, Cogniscape only counted the tokens used by the main session, missing the work done by subagents entirely. In practice, this meant that cost and usage data shown to managers was significantly understated. Token reporting now captures the full picture: both the main session and all subagents are counted together. Additionally, sessions that end abruptly because of a billing limit, rate limit, or authentication problem now generate an explicit event in the activity feed. Previously these failures were silent — there was no way to know a developer’s session was cut short without them manually reporting it. A new event type records the session error and its cause so team leads can see if a developer was blocked mid-task.- Token usage in session summaries now includes all subagent activity, not just the top-level session
- Sessions that fail due to API errors (billing, rate limit, authentication) now appear as a distinct event rather than disappearing silently
- Existing hook installations are updated automatically on next setup
v1.10.0
CLI version tracking and cleaner event pipeline Cogniscape now tracks which CLI version each developer has installed. This gives team leads a real-time map of update adoption across the organization — no need to ask developers individually or check machines manually. Additionally, three low-value event hooks were removed to reduce unnecessary processing costs. Session summaries already capture the complete picture of what happened during a coding session, making the individual plan-approved, task-created, and task-completed events redundant.- Every event sent by the CLI now includes its version, stored alongside token usage data
- Managers can query version adoption per developer at any time
- Removed hooks that were producing generic or empty data (saving processing and LLM costs)
- Existing machines are cleaned up automatically — obsolete hooks are pruned during the next auto-update
v1.9.0
Richer development insights from AI-powered session analysis When developers use tools that analyze their coding sessions (like claude-mem), the CLI now automatically detects and incorporates those insights into the data sent to Cogniscape. This means your knowledge graph gets richer context about each session — what was investigated, what was learned, what types of changes were made — without any extra configuration.- Sessions are automatically classified by type: bug fix, new feature, refactoring, discovery, or decision
- Structured summaries replace truncated text, giving managers a clearer picture of what happened
- The knowledge graph uses these classifications to build smarter relationships (e.g., “developer fixed X” instead of generic “developer worked on X”)
- Zero setup required — if the analysis tool is present, enrichment happens automatically; if not, everything works as before
v1.8.3
Faster session processing and more reliable event delivery Session data was being extracted by scanning the same transcript file three separate times — once for the summary, once for token usage, and once for metadata (files changed, commands run). This slowed down the session-end hook, especially for long conversations with large transcripts. Additionally, each incoming webhook opened and closed its own connection to the event queue. Under burst traffic, this created connection churn that could exhaust Redis connections.- Session-end hook now processes transcripts in a single pass, reducing I/O and latency
- Event queue uses a shared connection for the lifetime of the server, eliminating per-request connection overhead
- Queue status endpoint no longer opens a throwaway connection
v1.8.2
Fix: subagent conclusions not reaching the knowledge graph After the v1.8.1 fix enabled subagent tracking to fire correctly, the conclusions were still not appearing in the knowledge graph. The server rejected the data because the conclusion text arrived empty — the CLI was not reading the response in the format that AI coding tools actually send it.- Subagent conclusions now appear correctly in the knowledge graph
- The CLI handles multiple response formats for forward compatibility
v1.8.1
Fix: new hooks not applied after auto-update After auto-updating to a new CLI version, newly introduced hooks (such as the subagent tracking added in v1.8.0) were not being registered automatically. Developers had to runcogniscape setup-hooks manually to activate them.
This is now fixed — hook definitions are properly synced immediately after every auto-update, for both Claude Code and Cursor.
v1.8.0
Subagent activity tracking When AI coding tools delegate work to background research agents, Cogniscape now captures the outcome of that work — what was investigated, what was concluded, and which model was used. Previously, only the final result was visible in the knowledge graph; the reasoning behind decisions was lost.- Works in both Claude Code and Cursor
- Captures the agent’s objective, conclusion, type, and model
- Large responses are handled gracefully
v1.7.2
Fix: timestamp inconsistency causing delayed data availability Events from coding sessions and events from GitHub were using different timestamp formats, which occasionally caused data to appear with a delay of several hours in the knowledge graph. All CLI events now use a consistent timestamp format, and data is available within minutes of a session ending.v1.7.1
Fix: empty session summaries from Cursor Cursor session summaries were arriving empty (“no assistant message captured”) because the CLI was using the wrong format to read Cursor transcripts. Cursor and Claude Code use different transcript structures.- Cursor sessions now have a dedicated transcript reader
- Session summaries are correctly extracted from Cursor conversations
v1.7.0
Cursor IDE integration Cogniscape now tracks development sessions from Cursor alongside Claude Code. Sessions from each tool are clearly identified in the knowledge graph, enabling per-tool activity filtering.- Cursor hooks are installed automatically during
cogniscape initwhen Cursor is detected - Three session events are captured: session start, session end, and session summary
- Developer identity is resolved from Cursor’s account email when git config is unavailable
- Hooks are removed cleanly on
cogniscape uninstall - Cursor and Claude Code sessions are labeled separately for easy filtering
Token usage tracking is not yet available for Cursor sessions because Cursor does not provide this data in its hook system. This will be supported once Cursor adds the capability.
v1.6.0
Richer session summaries Sessions that previously produced generic entries like “completed a session” now generate detailed, structured summaries including what was worked on, which files were touched, and what the outcome was.- Session summaries now include: files modified, files read, recent commands, and tool usage counts
- An AI-powered summarizer transforms raw session data into structured narratives with clear objectives and outcomes
- File paths are always shown relative to the project root — no personal directory information is exposed
- Each session gets a unique identifier, fixing an issue where only the first summary from repeated sessions was recorded
v1.5.2
Fix: broken auto-update downloads A naming mismatch between the CLI and the release server was causing auto-update downloads to fail silently. This is now fixed, and both old and new naming conventions are supported for backward compatibility.v1.5.1
Fix: subagent activity attributed to wrong repository When Claude Code delegates work to isolated subagents, the CLI was incorrectly identifying the repository name, causing that activity to disappear from repository-filtered views.- Repository names are now resolved correctly regardless of the working directory
- Task events now include complete metadata (title, description, and status transitions)
v1.5.0
Git branch tracking + silent auto-update Two improvements for enterprise teams: Branch context in every event:- All events now include the current git branch, making it easy to see which feature or initiative a session relates to
- Works gracefully in non-git directories and CI environments
- The CLI now keeps itself up to date automatically — no manual downloads required
- Updates are checked once per day and applied in the background without interrupting your work
- Integrity is verified via checksum before applying any update
- Downgrades are prevented during rollback scenarios
v1.4.0
Windows support The CLI now works on Windows alongside macOS and Linux, removing a platform blocker for enterprise adoption.- Full support for Claude Desktop MCP configuration on all three platforms
- Developer identity is resolved correctly on Windows
- Uninstall works on all platforms (with guidance for Windows-specific limitations)
- New PowerShell install script for Windows environments
- Release pipeline now publishes Windows binaries for both AMD64 and ARM64
v1.3.0
One-command MCP setup for Claude Desktop Reduces onboarding from several minutes of manual configuration to a single command. Particularly important for non-developer users (managers, founders) who want to query the knowledge graph from Claude Desktop.- New command:
cogniscape setup mcp— automatically configures the Cogniscape MCP in Claude Desktop - Supports
cogniscape setup mcp --uninstallfor clean removal without affecting other MCP servers - Safe to run multiple times — updates the configuration in place
- Handles edge cases gracefully: missing config files, existing configurations, and corrupted files (creates a backup before modifying)
v1.2.1
API domain migration Migrated the CLI to the production API domain (api.cogniscape.app). No user action required — the CLI resolves the correct endpoint automatically.
v1.2.0
Project name tracking Session summaries now include the project name, enabling per-project filtering and grouping. The project name is derived from your working directory when the session ends.v1.1.0
Session duration and token usage tracking Two features that together enable ROI estimation: knowing how long a session lasted and how many tokens each AI model consumed.- Sessions now include duration (in seconds) computed from the conversation timeline
- Token usage is tracked per model, enabling accurate cost breakdowns when multiple models are used in a single session
- The Cogniscape MCP includes tools for querying token usage and estimated costs per developer
v1.0.0
Initial release The first stable release of the Cogniscape CLI. Provides the complete pipeline from AI coding tool hooks to knowledge graph ingestion. Onboarding:cogniscape init <customer-key>— saves your customer key and installs hooks automaticallycogniscape update-key <new-key>— updates the customer key without re-running initcogniscape setup-hooks— installs or repairs hooks, preserving any third-party hooks already configuredcogniscape uninstall— removes all Cogniscape hooks and deletes the CLI
- Five events captured automatically: session start, plan approved, task created, task completed, and session summary
- Developer identity resolved from your git configuration
- All errors are logged silently — the CLI never interrupts your coding tool
cogniscape writer add-episode— write custom entries to the knowledge graphcogniscape writer add-facts— create relationship records (e.g., “Alice implemented the payment retry feature”)cogniscape writer add-entity— create named entities with descriptions
cogniscape config show— display your current configurationcogniscape version— print the CLI version- Customer key can be set via command flag, environment variable, or config file