Repository navigation
Releases
v0.2.1
-
Upgrade the pinned Markdown renderer to
markdown-it14.3.2, including the security fix for excessive CPU use when linkifying repeated emails or unregistered URL schemes (GHSA-253c-mchw-3w2r). -
Interpret native DeepSeek bash/pwsh foreground outcomes for direct and Code Mode calls, including nonzero exits, signals, timeouts and stops. Classify unambiguous durable Codex
exec_commandrequests as commands and read their native exit, duration and output receipts. Running results remain incomplete, missing exits remain unknown, and Raw stays exact. -
Preserve Codex skipped-artifact diagnostics in committed indexes and startup reports, including reused indexes. Search complete admitted configuration facts independently of preview truncation.
-
Read Codex
.jsonl.zstrollouts with sibling deduplication, stable Raw line references, private decoded snapshots and isolated compression diagnostics. -
Show valid named Codex external inputs independently of tool executions, preserve asynchronous question/option semantics, and display ordered file-image references with explicit offline preview placeholders. Keep unknown canonical items and execution metadata in their documented Protocol/Raw boundaries.
-
Add recorded file activity and cross-session reading navigation, including related sessions, reading return, patch-file directories, Code Mode ownership and Raw-to-Logical links. Exact file activity preserves POSIX literal backslashes while accepting Windows separator variants.
-
Show background terminal poll/input requests with links to their confirmed origin and previous/next requests. Long continuation directories remain bounded and expose further records through navigation.
-
Keep reading controls visible, preserve the return position when leaving a project, retain Trajectory overview keyboard focus after detail loading, and contain long command segments within their event cards.
-
Improve patch reading with complete parent paths, emphasized filenames and compact headers; show exact mapped collaboration session names and distinguish selection, hover and keyboard focus.
-
Read supported Codex realtime history, configuration evidence and 0.155–0.160 typed/Paginated items. Commands, file changes, messages and tool results retain their recorded outcomes and Raw references without double-counting proven mirrors or restored history; missing exit codes remain unknown.
-
Support DeepSeek Harness native format 4, including plain/Zstd source references, tool results, approval ordering and explicit terminal errors, while keeping uncommitted attempts and inherited fork evidence distinct.
-
Update Claude Code compatibility for recorded Bash diffs and changed-file filters, SendMessage agent resumes, and MCP/Monitor background results. Display truncation no longer discards validated file or completion evidence.
-
Search complete admitted text beyond display summaries and across storage blocks. Large project query stores can spill to private temporary files; failed or cancelled index replacements preserve the current project. Remove former query-store size/row limits and preserve pagination beyond 1,000,000 events without promising unlimited session materialization capacity.
-
Keep large Codex histories readable when optional legacy Raw file/line lookup exceeds its capacity; exact recorded Raw ranges remain available. Batch transcript fingerprint hashing while preserving byte-level identity checks.
中文
-
将 Markdown 渲染器精确升级至
markdown-it14.3.2,包含自动链接重复邮件地址或未注册 URL scheme 时 CPU 消耗过高的安全修复(GHSA-253c-mchw-3w2r)。 -
解释 DeepSeek 原生 bash/pwsh 直接调用和 Code Mode 调用的前台结果,包括非零退出、信号、超时与停止。将归属明确的 Codex 持久化 exec_command 请求分类为命令,读取原生回执中的退出码、耗时与输出。运行中结果保持未完成,缺失退出码保持未知,Raw 保持精确原文。
-
在已提交索引与启动报告中保留 Codex 跳过工件的诊断,包括复用索引的情况。配置搜索使用完整已接纳事实,不再受预览截断影响。
-
支持读取 Codex .jsonl.zst rollout,包括 sibling 去重、稳定 Raw 行引用、私有解压快照及隔离的压缩读取诊断。
-
独立展示合法具名 Codex 外部输入,保留异步问题/选项语义,并为有序的文件图片引用显示明确离线预览占位。未知 canonical item 与执行 metadata 继续遵循已说明的 Protocol/Raw 边界。
-
新增已记录文件活动与跨会话阅读导航,包括相关会话、阅读返回、补丁文件目录、Code Mode 归属及 Raw 到逻辑事件的链接。精确文件活动保留 POSIX 字面反斜杠,同时兼容 Windows 分隔符写法。
-
展示后台终端轮询/输入请求,并链接到已确认起点及前后请求。较长的续接目录保持有界,可通过导航访问后续记录。
-
保持阅读控件可见,保留离开项目时的返回位置,在详情加载后保留 Trajectory 概览键盘焦点,并将较长命令片段限制在事件卡片内。
-
改进补丁阅读,保留完整父路径、突出文件名并精简标题;展示精确映射的协作会话名,并区分选中、悬停与键盘焦点。
-
读取受支持的 Codex realtime 历史、配置依据及 0.155–0.160 typed/Paginated 项。命令、文件修改、消息与工具结果保留已记录结果及原始引用,不重复统计已证明的镜像或恢复历史;缺失退出码保持未知。
-
支持 DeepSeek Harness 原生 format 4,包括普通/Zstd 来源引用、工具结果、审批顺序及明确终止错误,同时区分未提交 attempt 与继承的 fork 依据。
-
更新 Claude Code 兼容性,支持已记录 Bash diff 与修改文件筛选、SendMessage agent 续接及 MCP/Monitor 后台结果。展示截断不再丢弃已验证的文件或完成依据。
-
搜索超出展示摘要、跨存储块的完整已接纳文本。大型项目查询存储可溢写至私有临时文件;索引替换失败或取消时保留当前项目。移除原查询存储大小/行数上限,并保留超过 1,000,000 个事件的位置分页,不承诺单会话物化具有无限容量。
-
可选的旧式 Raw 文件/行号查找超过容量时,大型 Codex 历史仍可阅读,精确已记录 Raw 区间仍可访问。批量计算转录指纹 hash,同时保留字节级身份校验。
Session Analyzer v0.2.0
Session Analyzer 0.2.0 expands local session review across sources, adds a new way to navigate tool-heavy conversations, and substantially reworks how large session histories are indexed and loaded.
Highlights
Trajectory presentation
A new optional Trajectory view is available alongside the default Timeline. It provides a compact Input / Model / Tools sequence overview with zoom, pan, and fit controls, while keeping the conversation itself readable in a narrative-first layout. Tool activity can be grouped and expanded without losing access to the underlying events and details.
DeepSeek Harness support
DeepSeek Harness is now available as a third transcript source alongside Codex and Claude Code.
Session Analyzer can read supported DeepSeek JSONL and Zstandard session histories locally, with structured coverage for session and tool lifecycles, lineage and derived sessions, compaction, Code Mode and workflow provenance, retries, Goal/Todo state, permissions, and related recorded metadata. Unsupported event families remain inspectable through Protocol and Raw records.
npx session-analyzer@0.2.0 --source deepseek-harnessScalable session loading
Codex and Claude Code histories now use a stricter Indexed / Materialized Session model. The project index keeps compact information for browsing and search, while complete sessions are reconstructed from their source only when needed.
This reduces the need to keep every complete session graph resident in memory and improves behavior with large transcript histories. Materialized sessions are retained through a bounded cache with request coalescing, controlled reconstruction, cancellation handling, and bounded prewarming.
Codex improvements
- Improved parent linkage for explicitly derived and subagent sessions.
- Improved declared Code Mode projection and command labeling.
- Added per-request Token usage presentation.
- Added conservative cache-reuse discontinuity observations with supporting Protocol evidence. These observations do not claim explicit cache expiry or expose hidden server-side cache state.
Getting started
Codex remains the default source:
npx session-analyzer@0.2.0Claude Code:
npx session-analyzer@0.2.0 --source claude-codeDeepSeek Harness:
npx session-analyzer@0.2.0 --source deepseek-harnessThen open http://127.0.0.1:17890/ in your browser.
Session Analyzer reads existing transcripts locally and does not modify or upload their contents.
Requirements
- Node.js 22 or later
- Node.js 24 recommended
- Reading DeepSeek Zstandard session files requires Node's built-in Zstandard support
See the README and CHANGELOG for source-specific behavior, boundaries, and the complete list of changes in 0.2.0.
v0.1.4
- Added empirical capacity guidance for large matching transcript histories, including a stable non-blocking
[SESSION_ANALYZER_LARGE_TRANSCRIPT_HISTORY]warning at 800 MiB candidate bytes, temporary Node heap recovery instructions specifically for V8 heap exhaustion, and aggregate-only--log-dircapacity diagnostics with current and peak process memory. - Significantly reduced resident memory for large Codex indexes with compact resident projections and source-backed detail hydration, while hardening exact transcript fingerprinting and source-snapshot/reindex freshness.
- Recognized copied-prefix Codex Materialized Fork Sessions, excluded inherited history from continuation-owned titles, Logical metrics, and search while preserving physical Raw records, and folded uniquely inactive sources as Earlier Branches with mixed related-session hierarchy and Raw segment headings.
- Unified inherited-context parent navigation across Codex materialized and Claude pointer forks with Main-first, Raw-fallback fork-point targets; a targetless source keeps the current search, filters, and layer during ordinary parent navigation.
- Promoted direct Claude Code
Readcalls fromother_tool_callto an independentreadkind with dedicated filtering, counts, localized labels, structured detail routing, and folding-rule compatibility. - Added runtime Transcript Source switching:
POST /api/sourcechanges the active Codex/Claude Code source and optional source home directories without restarting the server; the Select project chooser exposes a source switcher with custom home directories, and stale project discovery is rejected through source revisions. - Added per-source last-selected repository storage with a one-time migration of the legacy Codex key, and made project-selection copy source-neutral (
sourceHomeinstead ofcodexHome). - Added source-switch and race-regression coverage across backend, browser, and documentation.
- Hardened Claude Code 2.1.220 compatibility for order-independent slash-command envelopes, direct asynchronous Workflow lifecycle evidence and structured detail, fail-closed terminal correlation, forked-skill and workflow-agent Derived Sessions, source-backed Goal lifecycle and
attributionSkillprovenance, and the distinction between Loop wakeups and Cron deletion. - Moved unwrapped Codex developer messages from the Main timeline to the protocol layer, keeping their
Possible hook outputtag and raw traceability. - Normalized Codex review lifecycle from both the legacy dedicated
entered_review_mode/exited_review_moderows and the canonical completeditem_completedTurnItem envelope (EnteredReviewMode/ExitedReviewMode), restoring Main timeline review start/end events and structured review detail for current transcripts. - Review-derived sessions now accept the top-level
parent_thread_idas explicit parent evidence before temporal inference, so review children group under the correct parent even when parent lifecycle markers use the canonical envelope.
- 新增针对大型匹配 transcript 历史的经验性容量指引:在 candidate bytes 达到 800 MiB 时输出稳定、非阻塞的
[SESSION_ANALYZER_LARGE_TRANSCRIPT_HISTORY]警告;仅针对 V8 heap exhaustion 提供临时增大 Node heap 的恢复说明;并通过--log-dir提供只含聚合数据、包含当前与峰值进程内存的容量诊断。 - 通过紧凑的常驻索引投影与来源支撑的详情 hydration,显著降低大型 Codex 索引的常驻内存,并加固精确 transcript 指纹以及来源快照/重建索引 freshness。
- 识别复制前缀式 Codex 物化式分叉会话,在保留完整物理 Raw Record 的同时,从续写自有标题、逻辑指标与搜索中排除继承历史,并将唯一且不再活跃的来源会话折叠为较早分支,同时支持混合相关会话层级与 Raw 区段标题。
- 统一 Codex 物化式分叉与 Claude 指针式分叉的继承上下文父会话导航,优先定位 Main 分叉点、否则回退 Raw;若某个来源没有精确 target,普通父会话导航会保留当前搜索、筛选与层级。
- 将 Claude Code 的直接
Read调用从other_tool_call提升为独立的readkind,并补齐专属筛选、计数、本地化标签、结构化详情路由与折叠规则兼容。 - 新增运行期转录来源切换:
POST /api/source可在不重启服务器的情况下切换当前 Codex/Claude Code 来源及可选来源 home 目录;Select project 选择界面提供来源切换与自定义目录入口,并通过 source revision 拒绝过期的项目发现结果。 - 新增按来源区分的“最后选择的仓库”存储,并一次性迁移旧 Codex key;项目选择文案改为来源中立(使用
sourceHome而非codexHome)。 - 新增覆盖后端、浏览器与文档的来源切换及竞态回归测试。
- 加固 Claude Code 2.1.220 兼容性:支持顺序无关的 slash-command envelope、direct 异步 Workflow 生命周期证据与结构化详情、fail-closed 终态关联、forked-skill 与 workflow-agent Derived Session、来源驱动的 Goal 生命周期与
attributionSkillprovenance,以及 Loop wakeup 与 Cron 删除的区分。 - 将未包装的 Codex developer message 从 Main timeline 移到 protocol 层,保留
Possible hook outputtag 与原始可追溯性。 - 统一归一化 Codex review 生命周期:旧专用
entered_review_mode/exited_review_mode记录与 canonical 的item_completedTurnItem envelope(EnteredReviewMode/ExitedReviewMode)现在映射为相同的 review 事件,恢复父会话 Main timeline 的 Review 开始/结束与结构化详情。 - 被判定为 review 的子会话现在会在时间推断之前接受顶层
parent_thread_id作为显式父会话证据,即使父会话生命周期标记使用 canonical envelope,也能正确归组到父会话下。
v0.1.3
English
- Added an explicit
--source claude-codeadapter with layout-aware Claude Code project, session, subagent, and fork discovery; Codex remains the default and~/.claudeis never scanned without opt-in. - Added source-native Claude Code mapping for messages, reasoning, exact tool-use/result pairs, compact summaries, file-history attachments, API errors, and protocol/raw fallback.
- Added namespaced analyzer session identities and a source-neutral indexed Raw Record endpoint with adapter-owned path-containment validation.
- Added exact Claude Code pointer-fork correlation from parent
/forkcommand evidence, with corrected fork timestamps, waiting state, bounded parent-owned inherited-context previews, and no duplicated child search, metrics, or Raw ownership. - Added synthetic Claude coverage, real-corpus pressure-test verification, bilingual source-adapter documentation, and package/runtime inclusion for the new adapter modules.
- Hardened Claude nested discovery with basename-owned paths, lexical and real-path containment, exact subagent identity/parent-Agent correlation, and fail-closed handling of conflicting evidence.
- Kept Claude local-command envelopes in Protocol, preserved malformed JSONL source text in Raw refs, and made shared project-selection copy source-neutral.
- Closed review follow-ups for duplicate parent-Agent identities, Raw-only thinking signatures, searchable prose after embedded base64 data URLs, source-owned unknown-tool names, and localized Claude Raw titles.
中文
- 新增显式
--source claude-code适配器,按 Claude Code 布局发现项目、会话、subagent 与 fork;Codex 仍为默认来源,未显式启用时绝不扫描~/.claude。 - 新增来源原生的 Claude Code 映射,覆盖消息、推理、精确工具调用/结果配对、compact 摘要、文件历史附件、API 错误,以及 protocol/raw 兜底。
- 新增带命名空间的分析器会话标识,以及由适配器负责 path containment 校验的来源中立索引 Raw Record 接口。
- 新增基于父会话
/forkcommand 证据的精确 Claude Code 指针式分叉关联,并提供修正后的分叉时间、等待状态、有界且归父会话所有的继承上下文预览,同时不重复 child 搜索、指标或 Raw ownership。 - 新增合成 Claude 覆盖、真实语料压力验证、双语来源适配器文档,以及新适配器模块的 package/runtime 收录。
- 加固 Claude 嵌套发现:目录由主要文件 basename 决定,同时执行词法与 real-path containment,精确关联 subagent identity/父 Agent,并对矛盾证据 fail closed。
- 将 Claude local-command envelope 保留在 Protocol,在 Raw refs 中保留 malformed JSONL 来源原文,并把共享项目选择文案改为来源中立。
- 完成评审后续修复:覆盖重复父 Agent identity、仅限 Raw 的 thinking signature、内嵌 base64 data URL 后可搜索正文、来源拥有的未知工具名,以及本地化 Claude Raw 标题。
v0.1.2
0.1.2 - 2026-07-31
English
- First version published to the public npm registry. The earlier
0.1.0entry records an internal pack-ready milestone; neither0.1.0nor0.1.1was published to npm. - Code Mode now groups outer
execplus pending/wait lifecycle rows into one neutral operation, adds safe structured nested request projections, and exposes request-aware Main-layer filtering and folding without fabricating nested execution evidence. - Search now uses explicit current-session and entire-project scopes, a single-line literal-text HUD, stable event-anchor jump targets, structured Kind/Status/Touched-file controls, deterministic detail/navigation convergence, and safe deep-timeline transitions.
- Same-project reindexing now reuses unchanged transcript payloads, reparses files that change after selection, refreshes session-index metadata from transcript-derived baselines, reports bounded progress, and retries transient browser transport failures.
- Main-timeline coverage now includes normalized goal lifecycles, user shell wrappers, image generation, hooks, Agent Coordination, typed Subagent Activity correlation, stronger MCP summaries, and readable fallbacks while retaining exact Raw Reference traceability.
- A shared Plan Event semantic facet now gives Plan Artifacts and Plan Updates one canonical definition for metrics, folding, and inspector navigation while excluding declared-only Code Mode projections.
- Timeline loading, generated-asset ownership, tool lifecycle admission, detail presentation, and large-index behavior now have deterministic contracts, profiling fixtures, and expanded regression coverage.
- Windows and POSIX absolute transcript paths are now interpreted by their own path syntax regardless of the host OS, keeping repository containment and project-file display stable in cross-platform replay.
- The Markdown runtime and esbuild development dependency floors now include upstream complexity-denial-of-service and Windows development-server file-read fixes.
- Direct runtime dependencies are pinned to the versions exercised by the release gates, while the prebuilt Highlight.js vendor asset keeps its build-only package out of consumer installations.
- Dependency installation now uses npm 12.0.2's strict, default-deny
allowScriptspolicy: only exactesbuild@0.28.1may run an install script, optionalfseventsis explicitly denied, and every CI job pins the reviewed npm toolchain before a clean install. - Source setup now documents the required npm 12.0.2 bootstrap before strict installation, redistributed Highlight.js assets retain their complete BSD notice in the package, and final dist-tag evidence is collected through a separately proven anonymous npm configuration.
- The public package requires Node.js 22 or newer, pins publication and package-smoke installation to the public registry, adds a repeatable prepublish release gate, supports both npm 11 and npm 12 pack manifests, and introduces Linux/Windows CI for Node, browser, and installed-package validation.
中文
- 首个发布到公共 npm registry 的版本。较早的
0.1.0条目记录内部可打包里程碑;0.1.0与0.1.1均未发布到 npm。 - Code Mode 现在会把 outer
exec、pending 与 wait lifecycle 行归并为一个中性 operation,增加安全的结构化嵌套 request 投影,并提供感知 request 的 Main 层筛选与折叠,同时不虚构嵌套执行证据。 - 搜索现在采用明确的当前 session 与整个项目范围、单行字面文本 HUD、稳定的事件锚点跳转目标、结构化的类型/状态/涉及文件控件、确定性的详情与导航收敛,以及安全的深层时间线转换。
- 同一项目重新索引现在会复用未变化的 transcript payload,重新解析选择后发生变化的文件,基于 transcript 派生基线刷新 session-index metadata,报告有界进度,并重试浏览器中的瞬时传输失败。
- 主时间线覆盖现在包括规范化 goal 生命周期、用户 shell wrapper、图片生成、hook、Agent 协调、带类型的 Subagent 活动关联、更清晰的 MCP 摘要与可读兜底,同时保留精确的原始引用可追溯性。
- 共享计划事件语义 facet 现在为计划产物与计划更新提供一套供指标、折叠和检查器导航共同使用的 canonical 定义,同时排除只有声明证据的 Code Mode 投影。
- 时间线加载、生成资产 ownership、工具生命周期准入、详情呈现与大型索引行为现在具有确定性契约、profiling fixture 和更完整的回归覆盖。
- Windows 与 POSIX transcript 绝对路径现在会独立于宿主操作系统,按路径自身的语法解释,使跨平台 replay 中的仓库包含判断与项目文件显示保持稳定。
- Markdown 运行时与 esbuild 开发依赖下限现在包含上游复杂度拒绝服务和 Windows 开发服务器文件读取修复。
- 直接运行时依赖已固定为发布 gate 实际验证的版本;预构建的 Highlight.js vendor asset 则使其仅构建期 package 不再进入用户安装树。
- 依赖安装现在采用 npm 12.0.2 的 strict、默认拒绝
allowScripts策略:只有精确的esbuild@0.28.1可以运行 install script,可选的fsevents被明确拒绝,且每个 CI job 都会在干净安装前固定经过审查的 npm 工具链。 - 源码安装现在说明在 strict 安装前 bootstrap 所需 npm 12.0.2;再分发的 Highlight.js 资产会在 package 中保留完整 BSD notice;最终 dist-tag 证据则通过单独证明为匿名的 npm configuration 获取。
- 公共 package 要求 Node.js 22 或更高版本,把发布与 package-smoke 安装固定到公共 registry,增加可重复的 prepublish release gate,兼容 npm 11 与 npm 12 的 pack manifest,并引入覆盖 Linux/Windows 的 Node、browser 与安装后 package CI。