Skip to content

feat: implement activity feed with filterable timeline for project history (#3184)#3208

Open
knoxiboy wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
knoxiboy:3184-issue-activity-feed
Open

feat: implement activity feed with filterable timeline for project history (#3184)#3208
knoxiboy wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
knoxiboy:3184-issue-activity-feed

Conversation

@knoxiboy

Copy link
Copy Markdown
Contributor

Summary

This PR implements a project-wide activity history feed and timeline showing updates across tasks and workflow columns. The feed includes a beautiful filterable timeline (filter by action type and date range) and supports pagination/loading more logs.

Closes #3184


Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that changes existing behavior)
  • 📝 Documentation update
  • ♻️ Refactor / code cleanup (no functional change)
  • ⚡ Performance improvement
  • 🔒 Security fix
  • 🧪 Tests only

What Changed

  • Database / Schema:
    • supabase/migrations/20260715000001_add_activity_log.sql: Created activity_log table referencing projects and users with indexing and RLS security policies.
  • Backend / API:
    • src/app/api/kanban/[projectId]/activity/route.ts: API route returning filterable and paginated activity logs.
    • src/app/api/kanban/[projectId]/stages/route.ts: Updated to record stage_created, stage_deleted, and stages_reordered actions.
    • src/app/api/kanban/[projectId]/tasks/route.ts: Updated to record task_created, task_deleted, task_updated, and task_moved actions.
  • Frontend / UI Components:
    • src/components/kanban/ActivityFeed.tsx: Renders the vertical timeline with action icon badges, local time formatting, action/date filters, and lazy-loading pagination.
    • src/components/kanban/KanbanBoard.tsx: Integrated the feed side-panel with a responsive header toggle button.

How to Test

  1. Navigate to a Kanban board page (e.g. /dashboard/kanban/[projectId]).
  2. Click the "Show History" button in the board header.
  3. Verify that adding a task, reordering columns, deleting a task, or moving cards between columns live-updates and populates the history timeline.
  4. Test filtering by action types (e.g. "Task Moved") and selecting date ranges to ensure logs filter accurately.
  5. Click "Load More Activities" to verify offset pagination works.

Checklist

  • Linked the related issue above
  • Self-reviewed my own diff
  • No unnecessary console.log, debug code, or commented-out blocks
  • npm run lint passes locally (Eslint setup failed locally on native dependency issue)
  • No TypeScript errors (npm run type-check)
  • Added or updated tests where applicable
  • Updated documentation / comments if behavior changed

Accessibility (UI changes only)

  • Keyboard navigation works correctly
  • Color contrast meets WCAG AA standard
  • ARIA labels / roles added where needed
  • Tested on mobile / responsive layout

Additional Context

  • Action badges are colored-coded by impact (green for creations, red for deletions, indigo for movements/reorders) to allow quick scanning of board history.

Copilot AI review requested due to automatic review settings July 15, 2026 14:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature labels Jul 15, 2026
@github-actions

Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

@github-actions github-actions Bot added type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:performance GSSoC type bonus: performance (+15 pts) labels Jul 15, 2026
@knoxiboy
knoxiboy force-pushed the 3184-issue-activity-feed branch from 1e0ab44 to 59d0b00 Compare July 15, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature type:performance GSSoC type bonus: performance (+15 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Implement Activity Feed with Filterable Timeline for Project History

2 participants