• edy's avatar
    feat(ui): port Feishu integration from Windows client, fix blank replies on model errors · 0d0a22ea
    edy authored
    Port Feishu channel integration from Windows client:
    - Add Feishu Mobile config injection (injectFeishuChannelConfig)
    - Add expert agent injection from manifest (injectExpertAgents)
    - Add Feishu channel session merging (mergeChannelSessions)
    - Add isChannelSession flag to ProjectSessionSummary
    - Add listChannelSessions to gateway-client
    - Add Feishu guards in sendPrompt/streamPrompt
    - Add Feishu session tag in sidebar (SessionList.tsx)
    - Disable composer for channel sessions (ChatComposer.tsx)
    - Add Feishu Mobile env vars to project model runtime
    
    Fix blank assistant replies when model API fails:
    - gateway-client: keep pending run alive when chat final has empty content
    - renderer: don't finalize stream on empty completed event
    - renderer: add 45s timeout fallback if error never arrives
    - renderer: surface error message in failActiveStream fallback chain
    
    Code review fixes:
    - Add safeClone() helper to prevent original config mutation
    - Deduplicate concurrent ensureLocalTranscript calls (transcriptInFlight)
    - Call closeSession for Feishu sessions (server-side cleanup)
    - Extract isChannelSessionId() helper to replace magic string
    - Cache expert manifest read once per process lifetime
    - Parallelize Feishu secret fetches with Promise.all
    - Reuse resolveExpertPromptsRoot and ExpertManifestRecord from expert-catalog
    - Use appropriate log levels (console.log/warn vs console.error)
    - Add diagnostic logging at gateway-client, IPC, and renderer levels
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    0d0a22ea
Name
Last commit
Last update
..
desktop Loading commit data...
ui Loading commit data...