8000 feat(timeline): mute for a day or by kind from the item's menu by adeelahmad · Pull Request #643 · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content

feat(timeline): mute for a day or by kind from the item's menu - #643

Merged
adeelahmad merged 1 commit into
mainfrom
claude/project-thread-pf8kii
Oct 18, 2026
Merged

adeelahmad merged 1 commit into
mainfrom
claude/project-thread-pf8kii

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Description

Before: the Timeline page muted a source or person for good with one click, and anything else (a kind, or a mute that runs out) needed the API, MCP or the assistant.

After: Mute Work Gmail keeps its one click. A small menu beside it adds Mute Work Gmail for a day (a snooze that runs out by itself), Mute Email received items (the item's kind, named as the page names it) and the kind for a day. The notice says "Muted Work Gmail for a day" with Undo, the Muted row shows when a snooze ends, and muting a kind takes its items out of the loaded page at once, as muting a source does. The docs' refine-later line for a daily digest starter goes too: the Morning digest starter already does that.

How: the page's useMutes().mute takes an optional until, sent to the existing POST /api/v1/activities/mute; the menu items call it with the kind or a day from now (aDay()). No server change.

Motivation and Context

A refine-later item from the mutes step (#635) of the activity stream design (thread above): "Muting a kind, or for a day, from the page (a menu on Mute)". Fewest clicks: a snooze or a kind mute is now two clicks on the item instead of a tool call.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change; ! in the title)

Checklist:

  • The title is a Conventional Commit.
  • My code follows the code style of this project (make hooks checks it on commit).
  • I added or updated tests.
  • My change requires documentation updates, and I have updated docs/ accordingly.
  • Users need more than the title to understand it, so I wrote it as a fragment in changelog.d/ (timeline-mute-menu.md).

Done questions (AGENTS.md)

  • Goal: snoozing and muting a kind from the page, with nothing else changed; merged on green CI.
  • Agents: the same POST /api/v1/activities/mute (kind, until), MCP mute_activities and the assistant's already did this; the page catches up.
  • Zero setup: nothing to configure.
  • Fewest clicks: one click still mutes the source; two clicks snooze it or mute the kind, with Undo instead of a confirm.
  • Configurable: n/a, no new setting; a snooze is a day, any other time through the API (refine later: a length of your own).
  • Light: no new request; the same mute call with until.
  • Private and secure: the person's own mutes, as before; nothing deleted. No new surface for the threat model.
  • Cost: no model call.
  • User decides: each is the person's own click; defaults unchanged.
  • Upgrades: nothing stored changes shape.
  • Honest: docs/timeline.md's Muting section says what the menu does and moves the page's snooze and kind mute out of Refine later.
  • Tested and documented: jest timeline-ui.test.tsx (the menu beside Mute snoozes a source for a day, or mutes the item's kind: the kind mute by its label and the items leaving the page, the snooze with until a day ahead and its notice); docs timeline.md, requirements.md, changelog.d.
  • Open standards: n/a; no new dependency.
  • Reported: result goes back in the thread; refine later: a muted actor's own line in the Filters, a snooze of your own length.
  • Reuse: the page's Menu, IconButton, the mutes hook and toast with Undo; no new machinery.

Local CI (ci/local-ci.sh) on this head: running; CI on the PR decides the merge.


Generated by Claude Code

The Mute button keeps its one click on the actor; a small menu beside it
snoozes the actor for a day, or mutes the item's kind for good or for a day,
through the same mute endpoint with until set.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ln25ykE6uBDqx21WBU94SX
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.

2 participants

0