activity: global feed, per-case log, sidebar section, today UX

- migration 009: target_type, target_id, target_path columns
- new Event fields: TargetType, TargetID, TargetPath
- ListActivityFeed (paginated global), ListActivityByNode (per-case)
- all Record() callsites pass target info
- frontend: Активность sidebar section with chronological feed
- per-case Активность tab with real data (was placeholder)
- today events: clickable, target-type badges, event counts
This commit is contained in:
2026-06-01 02:53:56 +08:00
parent 5a1c4c6d7f
commit 3672e3133b
6 changed files with 305 additions and 84 deletions
+3 -2
View File
@@ -47,8 +47,9 @@ var validSections = map[string]struct{}{
// serviceSections are sidebar entries that are not stored as node sections.
var serviceSections = map[string]struct{}{
"today": {},
"inbox": {},
"today": {},
"inbox": {},
"activity": {},
}
// IsValidType checks whether a type string is recognized.