chore: surface swallowed errors + remove dead session_renamed paths
Swallowed-error logging (audit Feature 3):
- file_index.ts:36-37 (git mtime probes): comment — best-effort, project
may not be a git repo.
- useUserEvents.ts:44 / 53 (ws.close on error / unmount): comments —
best-effort, socket may already be closing.
- RightRail.tsx:38 (localStorage write): comment — best-effort, quota or
private mode.
- App.tsx:21 (api.sessions.get for RightRail projectId): replaced silent
catch with console.warn.
- Session.tsx:38, 41 (session fetch + project list for breadcrumb):
replaced silent catches with console.warn.
H1: ProjectSidebar.tsx:189 — dropped the local sessionEvents.emit
({type:'session_renamed'}) after PATCH. Server publishes via
broker.publishUser since v1.4; useUserEvents forwards.
H2: useSessionStream.ts session_renamed case removed (dead — no
server code path publishes session_renamed on the per-session WS
channel; only user channel via broker.publishUser). Also dropped the
session_renamed variant from WsFrame (in apps/web/src/api/types.ts)
to keep the discriminated-union switch exhaustive.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,6 @@ import {
|
||||
} from '@/components/ui/dialog';
|
||||
import { AddProjectModal } from './AddProjectModal';
|
||||
import { api } from '@/api/client';
|
||||
import { sessionEvents } from '@/hooks/sessionEvents';
|
||||
import { useSidebar } from '@/hooks/useSidebar';
|
||||
import type { SidebarProject } from '@/api/types';
|
||||
import { giteaUrlFor } from '@/lib/projectUrls';
|
||||
@@ -186,7 +185,8 @@ export function ProjectSidebar() {
|
||||
if (!trimmed) return;
|
||||
try {
|
||||
await api.sessions.update(sessionId, { name: trimmed });
|
||||
sessionEvents.emit({ type: 'session_renamed', session_id: sessionId, name: trimmed });
|
||||
// Server publishes session_renamed via broker.publishUser; useUserEvents
|
||||
// forwards onto the bus. No local emit needed.
|
||||
} catch (err) {
|
||||
toast.error(err instanceof Error ? err.message : 'failed to rename session');
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ export function RightRail({ projectId }: Props) {
|
||||
const [viewerFile, setViewerFile] = useState<{ path: string; content: string } | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
// best-effort; ignore failure because localStorage may be unavailable (quota, private mode)
|
||||
try { localStorage.setItem(`${STORAGE_KEY}.open`, String(open)); } catch {}
|
||||
}, [open]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user