Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
11 changes: 11 additions & 0 deletions changelog/unreleased/overview-inflight-soft-expand.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
### English

- 1. Overview InflightLiveCard first expand (and re-expand) uses a short body fade instead of staggering every wait pill / slot / fill / outcome — waits for the first live projection (or idle/mock board) so hydrate never fires a handoff storm; later live deltas keep queue→slot / Done·Failed / FLIP motion.
- 2. Mock「示意」demo is off by default when `/api/live` is unavailable (calm idle zeros, no raf). A header switch turns it back on; preference persists in `localStorage`.
- 3. InflightLiveCard drops internal horizontal section rules and most hairline frames; hierarchy uses color wash + spacing instead.

### 中文

- 1. Overview「实时进行中」首次展开(及收起再开)改为短促整体淡入,不再对每个排队 pill / 槽位 / 填充 / 完成失败做 stagger;等首帧 live 投影(或空闲/示意板)就绪后再淡入,避免把 hydrate 当成一串交接飞入;之后的 live 增量仍保留排队→槽位 / 完成·失败 / FLIP。
- 2. 无 `/api/live` 时默认关闭 mock「示意」(空闲零值、无 raf)。卡片标题旁开关可再打开;偏好写入 `localStorage`。
- 3. 「实时进行中」去掉分区横线与多余描边,改靠色块与间距区分层次。
14 changes: 14 additions & 0 deletions frontend/scripts/mockInflight.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ import assert from 'node:assert/strict'
import {
applyLiveProjection,
cloneMockInflight,
getIdleInflightSnapshot,
getMockInflightSnapshot,
isIdleInflightSnapshot,
liveHasSignal,
MOCK_INFLIGHT,
tickMockInflight,
Expand Down Expand Up @@ -560,3 +562,15 @@ run('tickMockInflight finishes one cell without clearing siblings', () => {
})

console.log('all mockInflight tests passed')

run('idle snapshot is empty calm board', () => {
const idle = getIdleInflightSnapshot()
assert.equal(idle.jobs.length, 0)
assert.equal(idle.workers.length, 0)
assert.equal(idle.throughputPerMin, 0)
assert.equal(idle.waitP95Ms, 0)
assert.equal(idle.totals.done, 0)
assert.equal(idle.totals.failed, 0)
assert.ok(isIdleInflightSnapshot(idle))
assert.equal(isIdleInflightSnapshot(getMockInflightSnapshot()), false)
})
Loading
Loading