Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
27fbfb2
Give the session list a validator, and stop one clock driving two fet…
avatasia Oct 14, 2026
f782c80
Make every nameable session openable, not just the 30 in the picker
avatasia Oct 14, 2026
4b7aa3a
Stop one growing session from pinning four copies of its own payload
avatasia Oct 14, 2026
890c178
Let the parsed-row assertions measure what they were measuring
avatasia Oct 14, 2026
369475b
Stop holding a session's parsed rows open just to answer 原文
avatasia Oct 14, 2026
99674b5
Merge stored copies into one message, and decide a turn's opener over…
avatasia Oct 14, 2026
20441a7
Pin the identity rules with assertions and mutations
avatasia Oct 14, 2026
c8fe23f
Follow a session's active generation, and key rows and time spans by …
avatasia Oct 14, 2026
c00eeb1
Pin the generation fallback and the record-level keys with assertions…
avatasia Oct 14, 2026
78250a0
Describe the ledger twice: once as an index on disk, once as searchab…
avatasia Oct 15, 2026
0dbd8ea
Search the whole lineage instead of the loaded window
avatasia Oct 15, 2026
e8d0eb4
Stop sending the record bodies; send four flags and ask when one is o…
avatasia Oct 15, 2026
33dc319
Say which numbering a tail was cut from, or renumbering lands it in t…
avatasia Oct 15, 2026
7074f54
Give the time-range guard a window it can still prove something with
avatasia Oct 15, 2026
ab82cc1
Answer a search from what is already on disk, and stop losing matches…
avatasia Oct 15, 2026
82a6e02
Put a search hit's answer on the segment's own line, and take the rec…
avatasia Oct 15, 2026
56b1c22
Put back the one counter the range-scoped KPI had lost
avatasia Oct 15, 2026
db256ae
总览条:去掉前置的筛选标志,改成无条件问同一个判定
avatasia Oct 15, 2026
9ae04c1
删掉十一个没有消费者的 class,并让这件事变成一条守卫
avatasia Oct 15, 2026
74fc141
退役四个只有测试在用的函数,并把「没人用的函数」变成一条守卫
avatasia Oct 15, 2026
1ef5f71
退役记录索引,把投影收窄成只产三个定位字段
avatasia Oct 15, 2026
4096b5e
让新鲜度横幅能被任何一次成功回答收掉,并把失败分成读者能行动的两类
avatasia Oct 15, 2026
55e96f2
总览条按像素列聚合,不再每条记录建一个节点
avatasia Oct 15, 2026
90d3fb3
悬停和点击各自要的东西不一样:命中测试返回段,而不是行键
avatasia Oct 15, 2026
155227c
退役段格式里的 byteStart / byteEnd,schema 2 → 3
avatasia Oct 15, 2026
e5d4e23
总览条的模型不再每次重建:给已有的 overviewCache 补两个输入键
avatasia Oct 15, 2026
fce491d
verify-time-range 回到默认集合:自己造会话,而不是要一台跑着的服务
avatasia Oct 15, 2026
9604ba1
会话列表认得出「这是子会话」:把 store 里一直没人读的 parent_session_id 接上
avatasia Oct 15, 2026
fb69e95
codex 第一轮的两条发现:ETag 没覆盖新字段,两个计数器在自己跟自己比
avatasia Oct 15, 2026
8096e07
time-range guard: a field nobody mutates is a field the page may neve…
avatasia Oct 15, 2026
b3a75f3
tests/run.mjs: hash the guard a mutation control now rewrites
avatasia Oct 15, 2026
e2c514c
the sessions tag was not injective, and the residue list was not exha…
avatasia Oct 15, 2026
155755e
the residue comparison only walked the tree as it stands now
avatasia Oct 15, 2026
ff6e1fb
the residue self-test needed a baseline file it does not own
avatasia Oct 15, 2026
7f5c2a6
the strip picked the record farthest from the pointer, and the suite …
avatasia Oct 16, 2026
fd66f11
the page showed the right rows under the wrong sentence, and the diag…
avatasia Oct 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"schemaVersion": 1,
"name": "mmc-trajectory",
"displayName": "会话轨迹",
"version": "1.1.0",
"version": "1.2.0",
"description": "按轮次浏览当前会话的模型轨迹:消息流、思考过程、工具调用与结果、token 与耗时统计。",
"author": "avatasia",
"icon": "icon.png",
Expand Down
3 changes: 2 additions & 1 deletion plugins/avatasia/mmc-trajectory/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ English | [简体中文](README.zh-CN.md)

Browse the model trajectory of a MiniMax Code conversation: messages, reasoning, tool calls and their results, Token usage, and per-turn timing.

Author: [avatasia](https://github.com/avatasia) · Version: `1.1.0`
Author: [avatasia](https://github.com/avatasia) · Version: `1.2.0`

### Before you change this page

Expand Down Expand Up @@ -131,6 +131,7 @@ The runtime database is opened in read-only mode. If it is missing, unreadable,
- A single `messages.jsonl` is read up to 64 MB. Larger sessions are truncated and the page says so.
- The ledger does not use virtual scrolling; every rendered row is a real element. The page therefore opens on the newest 200 records, and the window bar button switches to the whole session. The button names what pressing it will do, not the current state: 「显示全部」 at the default and 「显示最新 200 条」 once everything is showing, while the count beside it reports what is on screen. That full view is opt-in for a reason: on a 9,900-record session it is roughly 57,000 elements rebuilt every 2.5s poll, which was measured to freeze the page rather than be read. 「向上加载更早的 N 条」 widens the window in steps and a poll does not undo it. A sticky window bar under the overview strip offers that choice behind four explicit controls: switch the strip between equal width and a real time axis, load 200 earlier records, jump back to the latest 200, and show everything. "Show everything" builds every record in the session into the DOM at once and gets noticeably slower on large sessions; incoming records do not knock it back down to 200.
- `messageCount` and `turnCount` in the session picker are estimates derived from a bounded prefix of the file; exact values come from the selected session.
- A session the runtime spawned from another one is marked 「子会话」 in the picker. The parent is deliberately not named: a branch is always newer than the session that spawned it, so its parent has usually aged out of the most-recent-N window this list is built from, and a lookup that fails quietly is how a picker ends up asserting something it cannot see.
- Light theme token coverage is verified — every `--mcode-*` token the page consumes is defined for both themes — but its rendered appearance was not visually checked; the page was exercised under a dark system preference.

## Tested environment
Expand Down
3 changes: 2 additions & 1 deletion plugins/avatasia/mmc-trajectory/README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

按轮次浏览一段 MiniMax Code 对话的模型轨迹:消息流、思考过程、工具调用与结果、token 消耗与每轮耗时。

作者:[avatasia](https://github.com/avatasia) · 版本:`1.1.0`
作者:[avatasia](https://github.com/avatasia) · 版本:`1.2.0`

### 动手改这个页面前

Expand Down Expand Up @@ -117,6 +117,7 @@ MiniMax Code 不会告诉 Mini App 是哪段对话打开了它的页面:传给
- 单个 `messages.jsonl` 最多读取 64 MB。更大的会话会被截断,页面会明确说明。
- 台里没有用虚拟滚动,每一行都是真实的 DOM 元素。页面默认只展示最新 200 条,窗口条上的按钮可以切到全量;全量是可选的,因为它很贵 —— 在这个会话上约 9,900 条、约 5.7 万个元素,每 2.5 秒轮询重建一次,实测会直接卡死页面。总览条正下方的吸顶窗口栏提供三个显式控件:「总览轴」「向上加载更早的 200 条」,以及在最新 200 条与全量之间切换的那一个按钮(它写的是按下去会变成什么,默认为「显示全部」,全量时为「显示最新 200 条」;当前窗口由右边的计数条报告,两者回答的是不同问题)。「总览轴」只改总览条的横轴——等宽(每条记录一样宽,完全忽略时间)或真实时间轴(宽度等于该记录的真实耗时);它不筛选、不排序,台账里的行和页面上的任何计数都不变。「向上加载更早的 200 条」每点一次就多加一页,轮询不会把已经加宽的窗口重置回去;点切换按钮也不会自动滚动页面,读者正在看的那一行会留在原地。
- 会话选择器里的 `messageCount` / `turnCount` 是从文件的有界前缀估算的;精确值以选中会话后展示的为准。
- 会话选择器里,被运行时从另一个会话派生出来的会话标为「子会话」,但不写父会话的名字:分支一定比派生它的会话新,而列表按最近活动取前 30 个,父会话通常已经掉出这个窗口。静默失败的查找,最终会让列表声称一个它看不见的东西。
- 浅色主题的 token 覆盖已验证(页面用到的每个 `--mcode-*` 变量在两套主题下都有定义),但渲染外观未做视觉检查;功能验收是在深色系统偏好下进行的。

## 测试环境
Expand Down
Loading
Loading