chore: gitignore installers and include pending web changes

Add installers/ to .gitignore and remove from tracking — binaries
should not be in git.

Also includes:
- Re-push Electron activities after WebSocket reconnect (sleep/wake)
- Merge activity map instead of replacing to preserve local state
- Nori mascot design plan
This commit is contained in:
Jannis Braun
2026-03-23 00:25:31 +01:00
parent 100ac15939
commit a888828941
3 changed files with 23 additions and 7 deletions
+12 -1
View File
@@ -5,7 +5,7 @@ import { useChatStore } from '../stores/chatStore';
import { useVoiceStore } from '../stores/voiceStore';
import { useSocialStore } from '../stores/socialStore';
import { useSettingsStore } from '../stores/settingsStore';
import type { ServerEvent, ClientEvent, ActiveCallInfo } from '@backspace/shared';
import type { ServerEvent, ClientEvent, ActiveCallInfo, Activity } from '@backspace/shared';
import { resolveAssetUrl, normalizeUserAssets, normalizeMessageAssets } from '../utils/assetUrls';
import { broadcastVoiceStatus, broadcastDeafenViaLiveKit } from '../utils/voice';
import { registerSelfId } from '../utils/identity';
@@ -214,6 +214,17 @@ function handleEvent(origin: string, event: ServerEvent): void {
useActivityStore.setState({ showActivity: event.user.showActivity });
}
// Re-push local Electron activities after reconnect (sleep/wake, network blip, etc.)
// The process scanner keeps running but onActivityDetected only fires on change,
// so if the same app was active before and after sleep, nothing would re-push.
if (isHome && window.backspace?.getCurrentActivity) {
window.backspace.getCurrentActivity().then((activity: unknown) => {
if (activity) {
useActivityStore.getState().pushActivities([activity as Activity]);
}
}).catch(() => {});
}
// Populate voice user statuses (mute/deafen/camera/screenshare) from server
if (event.voiceUserStates) {
for (const [uid, status] of Object.entries(event.voiceUserStates)) {