Skip to content

live-session-filter

Provenance

  • Source: .spec/spexcode/spec-dashboard/dashboard-ui/review-surfaces/issues-view/live-session-filter/spec.md
  • Source SHA-256: 8cc1406a498dd06c98b4bf21ddc4109d890f6e53225088f1451e4a6e8bdbe908

live-session-filter

raw source

A reviewer triaging the drain often wants to split entries by whether an agent's session is still AROUND to steer or ask — an orphaned issue or reading is archaeology. The first cut filtered on liveness (online/offline zones), which wobbled with transport state; the human converged it on the stable question: does the source session still EXIST on the board?

expanded spec

  • One facet, two surfaces, one token. Both [[issues-view]] and [[evals-feed]] expose it through [[review-chrome]]'s secondary low-cardinality Filters menu as the session:present|missing token — UI wording "Source session / Present / Missing" (中文「来源会话 / 仍在 / 已不在」). The words live/online/offline never appear on this facet: it asks presence, not connectivity. Picking a value is token surgery + a history PUSH; All removes the token. Options are data-derived through the [[review-filters]] adapter: a one-sided dataset hides the INACTIVE menu (no fake control), but an ACTIVE value is always a real CHECKED row with All releasable even at zero results — an active facet never hides its own off-switch, and the visible text remains a second, canonical release.
  • Present means: the source session still resolves on the current board — any zone. For an issue, the source is its originator (issue.by) or any reply author; for a reading, its filer (by). The judgment is the ONE membership join this node owns — @spexcode/spec-core's sessionPresent — so no surface grows a second one. A non-session author ('human', a github login) is honestly missing. missing is the complement, so the pair partitions every entry.
  • Never conflated with scope. scope:<id> picks the worktree DATA SOURCE ([[evals-view]]); session: only classifies entries by their source session's presence. A session id is never a legal session: value — an id typed there simply matches nothing, honestly.
  • Composition is honest. Presence combines conjunctively with the query's other tokens over the same row model; it is not a global stat or a second list. At 390px it remains available through the semantic secondary Filters trigger, whose active-group count makes the selected token visible as state.