8000 feat(timeline): a Timeline page to review what came in, and Latest on Home by adeelahmad · Pull Request #437 · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content

feat(timeline): a Timeline page to review what came in, and Latest on Home - #437

Merged
adeelahmad merged 3 commits into
mainfrom
claude/project-thread-mx8h9c
Oct 15, 2026
Merged

adeelahmad merged 3 commits into
mainfrom
claude/project-thread-mx8h9c

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Description

Before: activities from every source could be read and marked through the API, MCP and the assistant (#432), but the web app had nowhere to see them.

After: Timeline under Explore shows everything that came in, newest first. A run of the same source and kind within 30 minutes reads as one line ("Work Gmail received 37 emails") that opens to its items. Filters cover words, Unreviewed only, Important, kinds by family, source or person, namespace, entity, dates and automation. They live in the address and are remembered per browser. You review with the star and circle toggles, the j/k/r/i keys, Hide, and Mark all shown as reviewed, each with Undo instead of a confirm. New items wait behind an "N new" pill, from a 15-second poll while the tab is visible, so the list never jumps. On a phone the filters open in a sheet. Home's overview gets a Latest card with the five newest unreviewed items.

How:

  • components/timeline/model.ts holds the pure parts: filters to and from the address and to the API query, kind families, grouping, merging new items, and object links and fields.
  • use-timeline.ts covers the infinite query, the new-items poll, and marks set optimistically, chunked by 500, with an Undo toast.
  • timeline-page.tsx, item.tsx, filters.tsx and latest-card.tsx are the UI, built from the existing components (Drawer, Popover, Select, Checkbox, Toast).

Defaults taken:

  • Kinds have a "Notes" family alongside the plan's seven.
  • Source/person and namespace are single-select.
  • Entity is a text box suggesting the tags seen on the page.
  • "What this caused" and inline Approve/Decline stay planned until the run and approval modules (M6/M8) land. docs/timeline.md labels them so.

Motivation and Context

Workflow studio plan, M10 (Timeline), step 2: the page, Home's card and the nav entry, on the marks API merged in #432.

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 under ## Unreleased in CHANGELOG.md. (n/a: the title says it)

Done questions (AGENTS.md)

  • Goal: the Timeline page and Home's Latest card complete M10's scope except "what this caused" and inline approvals, which wait on M6/M8 and are labelled planned. Merged on green.
  • Agents: everything on the page is in the API, MCP timeline/mark_activities and the assistant (feat(timeline): mark activities reviewed, important or hidden #432).
  • Zero setup: a new page and card; nothing to install or configure.
  • Fewest clicks and keystrokes: one-key review (j/k/r/i), Enter applies the words filter, Undo instead of confirm, and the last filters come back on their own.
  • Configurable: no new settings; filters are per browser.
  • Light: no new dependencies. The page polls one small query every 15 s only while the tab is visible.
  • Private and secure: reads only through the existing per-person API; no new surface.
  • Cost: no model calls.
  • User decides: marks change nothing but the person's own view; defaults unchanged.
  • Upgrades: no stored data changes.
  • Honest: docs/timeline.md and docs/automations.md label the page and card built, and "what this caused" and approvals planned.
  • Tested and documented: timeline-model.test.ts (8) and timeline-ui.test.tsx (7); nav-groups test updated; all 944 frontend tests and next build pass locally; docs/timeline.md, docs/frontend.md and docs/automations.md updated.
  • Open: Activity Streams 2.0 data, no new dependencies.
  • Reported in the project thread; "refine later" in docs/timeline.md (server-sent updates, saved views, a daily digest).

🤖 Generated with Claude Code

https://claude.ai/code/session_01TuKmkGM2u3919KZMZLfDCK


Generated by Claude Code

… Home

The Timeline page under Explore: newest first with Older, a "3 new" pill
from a light 15-second look while the tab is visible, runs of the same
actor and kind within 30 minutes as one line, filters in the address
(remembered per browser) for words, unreviewed, important, kinds by
family, source or person, namespace, entity, dates and automation, and
review with toggles, j/k/r/i keys, Hide and "Mark all shown as reviewed"
with undo. Filters open in a sheet on a phone. Home's overview gets a
Latest card with the five newest unreviewed items.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TuKmkGM2u3919KZMZLfDCK
@adeelahmad adeelahmad self-assigned this Oct 15, 2026
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TuKmkGM2u3919KZMZLfDCK
@adeelahmad
adeelahmad merged commit 59faab9 into main Oct 15, 2026
10 checks passed
@adeelahmad
adeelahmad deleted the claude/project-thread-mx8h9c branch October 15, 2026 23:09
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