fix: 清掉 Codex cache 文案的工程術語 (#45)#59
Merged
Merged
Conversation
Codex (server-managed cache) sessions showed engineering jargon that non-technical users couldn't parse: the gap tooltip read "Server cache (retention varies)" and the session-card cache row title read "Server-managed cache · last turn". Neither conveyed what users actually need to know — that the cache is automatic and there's nothing to act on. Replace both with plain "Cached automatically". The ctx bar already visualizes cache hit ratio (cyan cache-read segment + "cache:N%" label) on every turn's visible surface, so the tooltip doesn't need to repeat the numbers — it only needs to drop the jargon. - entry-rendering.js: gap tooltip (non-ephemeral branch) → "Cached automatically" - miller-columns.js: session-card cache row title → "Cached automatically · last turn" Claude (ephemeral-ttl) path is untouched — only the else branch changed. Topbar cache wording (settings.js) is intentionally deferred: it's a global display with no per-session meaning, which has no value in multi-account / multi-provider setups. Refs #45 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
摘要(正體中文)
Codex(server-managed cache)session 的兩處 cache 文案是使用者看不懂的工程術語:
Server cache (retention varies)Server-managed cache · last turn兩者都改成白話的
Cached automatically。ctx bar 本身已經用 cyan 色塊 +cache:N%標籤在每個 turn 的可見表面顯示 cache hit ratio,所以 tooltip 不需要重複數字,只需要把術語拿掉。Topbar 的 cache 文案(
settings.js)刻意延後:它是 global 顯示、無 per-session 意義,在多帳號/多 provider 場景下沒有參考價值。Problem
Codex sessions (server-managed cache) surfaced engineering jargon that non-technical users couldn't parse. The gap tooltip read
Server cache (retention varies)— which both leaked the term "server" and added a parenthetical ("retention varies") that conveys nothing actionable. The session-card cache row title readServer-managed cache · last turn, same problem.Unlike Claude's gap tooltip (where cache has a known TTL, so "Cache likely warm (< 5m)" tells the user to hurry), Codex cache is automatic and server-controlled — there is nothing for the user to act on. The copy should say so in plain language.
Why this minimal fix (not visual encoding)
An earlier exploration considered adding color/inline hit% to the Codex gap element. Rejected: the ctx bar already visualizes cache on every turn's visible surface — a cyan
cache-readsegment plus acache:N%label. Repeating those numbers in the gap tooltip would be redundant (and raise new questions like "99% — good or bad? what do I do?"). The gap tooltip's only real defect was the jargon, so the fix is purely to remove it.Notably, Codex's ctx bar only ever shows two segments (cache-read + input, never cache-write —
cache_creation_input_tokensis hardcoded0for OpenAI), so the absence of the orange segment is itself the visual signal that the provider manages cache automatically.Changes
public/entry-rendering.js: gap tooltip non-ephemeral branch →Cached automaticallypublic/miller-columns.js: session-card cache rowtitle→Cached automatically · last turnThe Claude (
ephemeral-ttl) path is untouched — only theelsebranch of the existing ternary changed. The visible session-card text (cache N% hit · NK tok) is unchanged; only itstitleattribute changed.Tests
node --checkon both filesSmoke (isolated env, real traffic)
CCXRAY_HOME=/tmp/ccxray-smoke-45 node server/index.js --port 5603 --no-browser+ realcodex exec(3-turn session). Verified the actually-rendered DOM via browser-harness (CDP):.si-cachetitle =Cached automatically · last turn(visible textcache 98% hit · 17K tokunchanged).turn-elapsed-secondarytitle =Cached automaticallyConfirmed the topbar still shows the old
server-managedstring (the intentionally-deferred item), consistent with scope.Closes #45
🤖 Generated with Claude Code