Skip to content

fix(desktop): clear consistent advisory smoke baseline failures - #170

Merged
oscarlehuu merged 1 commit into
mainfrom
fix/smoke-baseline-cleanup
Aug 12, 2026
Merged

fix(desktop): clear consistent advisory smoke baseline failures#170
oscarlehuu merged 1 commit into
mainfrom
fix/smoke-baseline-cleanup

Conversation

@oscarlehuu

Copy link
Copy Markdown

Problem

Advisory Desktop Smoke on main had a consistent fail set across the two most recent completed CI runs used as baseline:

Target families (intersection, not one-run flakes):

Spec Symptom
evidence-reactions.spec.ts:46 strict-mode: evidence-reaction-rejected resolves 2 nodes after Reject
channels.spec.ts:1951 message-timeline-day-group count 0 after bulk live emit
channels.spec.ts:2108 agent session panel stays on skeleton; never "No ACP activity yet"
channel-activity-popover.spec.ts (multiple) popover under-counts activity / mark-read starves

No GitHub issue — intentional baseline cleanup PR.

Approach (per-spec)

Spec Root cause Kind Fix
evidence-reactions Reject Reject calls onReply → thread panel mounts same message as head; dual card is product-correct harness Scope card locator to message-timeline
channels sticky day divider Live emit of 2023 timestamps is outside live backlog grace and never lands in the window; even recent post-open backdates hit grace harness Seed two recent local days into the mock store before open (emitLive: false) so head window loads them with hasMore:false → both virtualized day dividers prove
channels agent activity empty getAgentObserverSnapshot maps open + no live contact → connecting even with zero events → infinite skeleton product Force connecting only when events.length > 0 without live contact (restored/replay path). Empty + open → idle open
channel-activity-popover Unread live sub used bare since: now; self roots at now-20 dropped before onSelfChannelMessageauthoredRootIds never grows → bob replies fail notify gate product Same CHANNEL_LIVE_BACKLOG_GRACE_SECONDS as timeline buildChannelLiveFilter

Seams: useLiveChannelUpdates unread live filter; getAgentObserverSnapshot / observerRelayStore; smoke harness timestamps/selectors only.

Tests

Local (macOS, --project=smoke --retries=0 after pnpm --filter buzz build:e2e):

  • evidence-reactions.spec.ts3 passed
  • channels.spec.ts sticky day + agent activity — 2 passed
  • channel-activity-popover.spec.ts10 passed
  • observerPerAgentTelemetry.test.mjs10 passed (added empty+open idle case)
  • pnpm typecheck, biome check on touched files

Acceptance on this PR: targeted smoke shards green. Integration lane drift is out of scope.

Docs

docs/crew/STATE.md — advisory smoke baseline cleanup note.

Risk

  • Unread live grace replays up to 120s of member-channel events (same envelope as timeline live; merge is idempotent by id).
  • Empty observer agents flip from permanent skeleton to empty idle copy — intended product behavior.

Exclusions

Product: unread live channel subs use CHANNEL_LIVE_BACKLOG_GRACE_SECONDS
so lagged self roots reach authoredRootIds (channel-activity popover);
getAgentObserverSnapshot only forces connecting when restored events lack
live contact so empty agents show "No ACP activity yet".

Harness: evidence Reject scopes to the timeline card (thread-head dual
render is intentional); sticky day divider seeds two recent local days
before open so fixtures match production window + grace filters.
@oscarlehuu
oscarlehuu force-pushed the fix/smoke-baseline-cleanup branch from 6509c67 to 251e6f1 Compare August 12, 2026 08:33
@oscarlehuu
oscarlehuu merged commit e1789ad into main Aug 12, 2026
11 of 14 checks passed
@oscarlehuu
oscarlehuu deleted the fix/smoke-baseline-cleanup branch August 12, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant