FlowFuse / FlowFuse/flowfuse

Surface audit source on timeline entries

Open
#7,992 0 comments 0 reactions 0 assignees View on GitHub
task
Dominant language
JavaScript
Stars
400
Forks
89
Avg merge
1d 21h
Merged PRs (30d)
146

Description

### Description

### Description

Timeline entries are built from audit log rows that already carry the `source` column (added in #7562), but the `timelineEntry()` formatter in `forge/db/views/AuditLog.js` strips it out. The frontend `TimelineEvent.vue` has no source display either.

This means actions performed via the API, MCP, or the Expert agent look identical to manual UI actions in the timeline view, even though the audit log correctly distinguishes them.

### Changes

**Backend (`forge/db/views/AuditLog.js`):**
- Add `source` (nullable string) to the `TimelineEntry` schema
- Include `source` in the `timelineEntry()` formatter output (it's already on the raw audit log row)

**Frontend (`frontend/src/components/version-history/timeline/TimelineEvent.vue`):**
- Show a source icon + tooltip next to the username, reusing the same pattern from `AuditEntry.vue` (SparklesIcon for mcp/mcp:expert, CommandLineIcon for api)

### Epic/Story

https://github.com/FlowFuse/flowfuse/issues/7425

### Have you provided an initial effort estimate for this issue?

I have provided an initial effort estimate

Contributor guide

Open the contributing guide

Research direction

Start with forge/db/views/AuditLog.js and inspect the TimelineEntry schema and timelineEntry() formatter, then compare the source display pattern in frontend/src/components/version-history/AuditEntry.vue. Update frontend/src/components/version-history/timeline/TimelineEvent.vue to show the appropriate source icon and tooltip beside the username. Done means timeline entries preserve nullable source values and distinguish MCP, Expert agent, API, and manual actions where applicable.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
full-stack
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.