diff --git a/.gitignore b/.gitignore index 21907de2..3d1bf84a 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,6 @@ crates/client-web/dist/ # dev temp files .dev/ + +# git worktrees +.worktrees/ diff --git a/crates/client-web/.env.mock b/crates/client-web/.env.mock new file mode 100644 index 00000000..5274a2eb --- /dev/null +++ b/crates/client-web/.env.mock @@ -0,0 +1,4 @@ +# Activated automatically by `npm run dev:mock`, which runs `vite --mode mock`. +# Vite loads `.env.[mode]` files, so this file turns on the in-browser mock API +# without needing any OS-specific env-var syntax in package.json scripts. +VITE_USE_MOCK_API=true diff --git a/crates/client-web/package.json b/crates/client-web/package.json index f57aeb14..b07a5603 100644 --- a/crates/client-web/package.json +++ b/crates/client-web/package.json @@ -5,7 +5,8 @@ "type": "module", "scripts": { "dev": "vite", - "dev:mock": "set VITE_USE_MOCK_API=true&& vite", + "dev:mock": "vite --mode mock", + "dev:mock:win": "set VITE_USE_MOCK_API=true&& vite", "build": "vite build", "preview": "vite preview", "check": "tsc --noEmit" diff --git a/crates/client-web/src/app/dashboardView.ts b/crates/client-web/src/app/dashboardView.ts index d401bd71..a9801d89 100644 --- a/crates/client-web/src/app/dashboardView.ts +++ b/crates/client-web/src/app/dashboardView.ts @@ -269,7 +269,7 @@ export function renderLogViewer(): string { Level Module Source - Message + Message ${logEntries.map((entry) => { @@ -285,7 +285,7 @@ export function renderLogViewer(): string { ${escapeHtml(entry.level)} ${escapeHtml(entry.module)} ${escapeHtml(entry.source_file_path)}${typeof entry.line_number === 'number' ? `:${entry.line_number}` : ''} -
${escapeHtml(entry.message)}
+
${escapeHtml(entry.message)}
`; }).join('')} diff --git a/crates/client-web/src/style.css b/crates/client-web/src/style.css index 5104f099..cb7fd9ce 100644 --- a/crates/client-web/src/style.css +++ b/crates/client-web/src/style.css @@ -2123,6 +2123,15 @@ legend { font-size: 0.84rem; } +/* The Message column keeps a fixed minimum width in characters regardless of + available viewport space. Since the table sits inside a horizontally + scrollable .table-shell, this never clips it; it just guarantees the column + is always wide enough to read instead of getting crushed by auto-layout. */ +.log-entries-table .log-message-col { + min-width: 70ch; + width: 70ch; +} + .log-filter-row { align-items: end; }