Skip to content

feat(chat): catch-up strip — the constant agents-TL;DR above the transcript - #1453

Merged
lilyshen0722 merged 1 commit into
mainfrom
feat/catchup-strip
Sep 1, 2026
Merged

lilyshen0722 merged 1 commit into
mainfrom
feat/catchup-strip

Conversation

@lilyshen0722

Copy link
Copy Markdown
Contributor

Sam's placement ruling (2026-09-01, picked over sidebar ticker and Activity-tab digest): the constant "what are the agents doing" TL;DR lives pinned above the messages of the pod being read — where the question is actually felt when you open a pod with 40 unread agent messages. Activity remains the cross-pod view (#1298 improves it separately).

  • New V2CatchUpStrip: collapsed one-line snippet of the latest pod summary + age, expandable body (bounded, scrolls inside the strip), Summarize when none exists / Refresh otherwise.
  • Zero new backend: rides GET /api/summaries/pod/:podId (canViewPod-gated) and POST .../refresh (rate-limited 10/min, agent-generated with non-agent fallback).
  • Advisory by construction: failed reads render the empty state, never block chat.
  • Button styling uses the .v2-root button.v2-* specificity pattern (the fix(v2): connectors buttons vs the global button reset + Relay label #1305 reset trap, 3rd-hit class).
  • 4 new tests (snippet collapse, expand, summarize-swap, failure tolerance); layout invariants + all 36 V2PodChat tests green.

Real-browser pass follows deploy per the CSS rule.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PTfziSyx2DzuwmibZHHY4s

…script

Sam's ruling (2026-09-01): knowing what the agents are doing required
navigating to Activity. The answer now lives where the question is felt:
a thin strip pinned above the pod's messages with the latest summary as
a one-line snippet, expandable, with Summarize/Refresh riding the
existing gated endpoints (GET /api/summaries/pod/:id, POST .../refresh).
Advisory by construction: a failed read never blocks the chat, the
expanded body scrolls inside the strip, and the snippet ellipsizes on
one line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PTfziSyx2DzuwmibZHHY4s
@lilyshen0722
lilyshen0722 merged commit 879464f into main Sep 1, 2026
11 checks passed
@lilyshen0722
lilyshen0722 deleted the feat/catchup-strip branch September 1, 2026 18:25
lilyshen0722 added a commit that referenced this pull request Sep 1, 2026
…-flash (#1458)

Sam's revised ruling, hours after #1453 shipped: 'I don't like that
catch-up… reveals no good info at all, and always shows up is not a good
design, unless we use DeepSeek flash the quality might be a little
better.' Three changes: (1) the strip renders ONLY when a summary
exists, is under 24h old, and its version has not been dismissed — no
empty shell, no Summarize row; (2) a dismiss control, persisted per
summary version in localStorage (wrapped, degrades to not-dismissed);
(3) LITELLM_CHAT_MODEL flips to deepseek-v4-flash — already provisioned
in LiteLLM with a live key (the guide agent's model). Tests rewritten to
the earn-your-row contract; both locales carry the dismiss string.


Claude-Session: https://claude.ai/code/session_01TdEJoXUmbHmW5TFk7hfkbK

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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