• 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
..
assets Loading commit data...
components Loading commit data...
features Loading commit data...
lib Loading commit data...
styles Loading commit data...
App.tsx Loading commit data...
main.tsx Loading commit data...
skill-trigger.ts Loading commit data...
styles.css Loading commit data...
tailwind.css Loading commit data...
vite-env.d.ts Loading commit data...