Archived sessions fold back into every figure the page derives off the session list: rowsOfSnapshot now tags archived rows instead of dropping them, and one coveredRowsOf pass scopes the KPI band, charts, heatmap, skills, and the session grid together. A "Filter sessions" select next to the list's search box offers dsh's own archived-filter set — All (show archived) by default, Hide archived, Archived only. The Active Sessions card follows the picked coverage (Sessions incl. the window's archived count under All; Active/Archived Sessions over the full-list total under the narrow scopes), archived cards wear an Archived tag and refuse to open like dsh does, and kpisOf drops its now-unused listed param.
26 lines
828 B
TypeScript
26 lines
828 B
TypeScript
import { rangeWindowOf, type OverviewRange, type OverviewRow } from '../../src/client/overview'
|
|
import type { SessionCostUsage } from '../../src/shared/types'
|
|
|
|
/** A preset's resolved scope window at `now` — the page's own resolution, spelled the way the panel spells it. */
|
|
export const win = (range: OverviewRange, now: number) => rangeWindowOf(range, now)
|
|
|
|
export const COST: SessionCostUsage = {
|
|
deepseek: { 'deepseek-v4': { peak: { uncached: 100, cacheRead: 50, cacheWrite: 10, output: 40 } } },
|
|
}
|
|
|
|
export function rowOf(over: Partial<OverviewRow> = {}): OverviewRow {
|
|
return {
|
|
id: 's1',
|
|
title: 'session one',
|
|
updatedAt: 100,
|
|
running: false,
|
|
current: false,
|
|
archived: false,
|
|
timeline: null,
|
|
activity: null,
|
|
family: [over.timeline ?? null],
|
|
familyCost: null,
|
|
...over,
|
|
}
|
|
}
|