feat: shared supervisor timeline, story assignment and time-spiral view

Each source version is extracted once for every review scope; events carry spans and projects from their sources, and attention density is counted from messages. After publication, events are assigned to project features and sub-threads (cross-project stories only when enabled), with user rename, merge, remove, move and undo. The story graph gains a lazily loaded Three.js time-spiral view. Includes the 3D concept demo, real-data DeepSeek check scripts and docs.
This commit is contained in:
mesalogo
2026-10-02 15:21:48 +08:00
parent 3d4e9577b5
commit 5dc65457d9
53 changed files with 4051 additions and 83 deletions
+4 -1
View File
@@ -1425,7 +1425,10 @@ const desktopApi: DesktopApi = {
relationAction: (input) => ipcRenderer.invoke(ipcChannels.supervisionRelationAction, input) as Promise<void>,
suggestions: (input) => ipcRenderer.invoke(ipcChannels.supervisionSuggestions, input ?? {}),
suggestionAction: (input) => ipcRenderer.invoke(ipcChannels.supervisionSuggestionAction, input),
retrySuggestions: (input) => ipcRenderer.invoke(ipcChannels.supervisionRetrySuggestions, input)
retrySuggestions: (input) => ipcRenderer.invoke(ipcChannels.supervisionRetrySuggestions, input),
stories: (input) => ipcRenderer.invoke(ipcChannels.supervisionStories, input),
storyAction: (input) => ipcRenderer.invoke(ipcChannels.supervisionStoryAction, input) as Promise<void>,
retryStories: (input) => ipcRenderer.invoke(ipcChannels.supervisionRetryStories, input)
},
experts: {
list: () =>