The chat stats line took its token totals from the loaded conversation nodes, so paging changed them and compaction erased the billing behind replaced content. It also had no way to show context occupancy: the numerator and capacity never reached the browser. Both now come from token-meter session projections read through the standard useProjection seat. Window nodes keep supplying turn and step counts plus LLM and tool wall times, which are correctly window-scoped facts about what is on screen; accounting no longer comes from there. `tokenUsage` supplies billing and cache hit. `contextPressure` supplies occupancy, pairing the newest provider-reported prompt size with the newest capacity recorded by `request/context`. Deployments without token-meter drop the token groups; a route whose adapter advertises no capacity drops the occupancy group rather than rendering a placeholder. Occupancy is deliberately approximate: the numerator and capacity are independent last-wins fields, not one atomic request observation, so switching models pairs a fresh capacity with the prior route's pressure until the next request reports usage. It is a user-facing reference figure that nothing in the harness makes decisions from, and it matches how the TUI status line has always computed occupancy. The Agent Note and token-meter README state this as a decision, including why the atomic alternative was implemented and rejected, so it is not re-litigated as a defect. Snapshot delta is one added `Context N% of 128K` segment across eight web goldens; the preceding commit absorbed master's pre-existing golden drift.
34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
- banner:
|
|
- navigation "Session hierarchy":
|
|
- button "Reply with a one-sentence description" [disabled]
|
|
- tablist:
|
|
- tab "Chat" [selected]
|
|
- tab "Trajectory"
|
|
- text: Reply with a one-sentence description of event sourcing, then stop. {{clock}}
|
|
- button "复制":
|
|
- img
|
|
- button "在新对话中分支":
|
|
- img
|
|
- button "编辑":
|
|
- img
|
|
- button "▸ 上下文注入"
|
|
- button "Think The user is asking for a one-sentence description of event sourcing. This is a straightforward knowledge question that doesn't require any skill loading or tool calls.":
|
|
- img
|
|
- img
|
|
- text: Think The user is asking for a one-sentence description of event sourcing. This is a straightforward knowledge question that doesn't require any skill loading or tool calls.
|
|
- paragraph: Event sourcing is a pattern where all changes to an application's state are stored as an immutable, append-only sequence of events, rather than persisting only the current state, enabling full auditability, temporal queries, and event-driven architectures.
|
|
- button "复制":
|
|
- img
|
|
- button "在新对话中分支":
|
|
- img
|
|
- text: {{clock}}
|
|
- textbox "给智能体发消息"
|
|
- button "Add attachment":
|
|
- img
|
|
- 'button "Access mode, current: Danger Full Access"': Danger Full Access
|
|
- button "选择模型,当前 DeepSeek-V4-Flash":
|
|
- text: DeepSeek-V4-Flash
|
|
- img
|
|
- button "Send message" [disabled]
|
|
- text: 1 turns · 1 steps Context 6% of 128K Cache hit 99% Input 7.8K tok · Output 79 tok
|