Skip to content

🧩 fix: Paint Panel Surfaces From Theme Roles - #16484

Merged
berry-13 merged 3 commits into
canaryfrom
berry-13/theme-leakage-panels
Sep 29, 2026
Merged

berry-13 merged 3 commits into
canaryfrom
berry-13/theme-leakage-panels

Conversation

@berry-13

@berry-13 berry-13 commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Part of the theme-leakage stack; based on the chat link. The tool dialog header's logo tile takes bg-surface-fixed, the fixed white tile the other logo tiles use, and the skill tree's image file icon takes text-series-5, a categorical slot like the file-source badges. The skills category filter showed its active state with a raw border-emerald-500/50 no theme could set; it now draws the filter icon in text-accent-primary while a category is active (text-text-tertiary at rest), without restyling the Button primitive. The avatar cropper's move hint over the user's photo and the SharePoint picker's iframe background go into the allowlist.

The prompt form's mobile scrim and the conversation and agent avatar placeholders stay as they are: no existing role reproduces them per mode, and adding one needs client/src/style.css and themes/dark.ts, which an open PR edits. They are tracked in berry-13#181 and berry-13#194.

Counts, before to after this link: raw palette utilities 56 to 53. Suppressions: client/src no-raw-colors 30 to 28, no-restyle 2054 to 2052; the rest unchanged. The eslint-suppressions.json diff only touches entries for files this link edits.

Type of change

  • Bug fix

Testing

Tested environments/configuration:

  • Chromium via Playwright against this worktree's dev pair, default and ClickHouse themes, light and dark, reading back computed styles: logo tile 255,255,255 in all four; image icon 216,90,142 / 213,82,130 (default) and the ClickHouse series slot.

Automated tests:

  • reviewctl precheck against the chat link: static checks and jest-client pass.
  • @scenario:skills-category-filter-shows-active-state (new, e2e/specs/mock/scenarios/category-filter-state.spec.ts): with a categorized skill, the filter icon is the tertiary text colour at rest and the accent colour once the category is picked.
  • npx tsc --noEmit (incremental) for client: clean.
  • npm run static-checks -- --against berry-13/theme-leakage-chat: all affected checks pass.

Screenshots / recordings

Not captured: each change is a single class whose resolved colour is listed above. Visible differences from before: the skill image icon moves from pink-400 to the series magenta, and the active category filter shows an accent-coloured filter icon instead of a green border.

Risk / compatibility

None.

Checklist

  • I reviewed my own changes
  • Relevant tests have been added or updated
  • Existing relevant tests pass
  • The change does not introduce new warnings or errors

@berry-13 berry-13 changed the title berry-13/theme-leakage-panels 🧩 fix: Paint Panel Surfaces From Theme Roles Sep 29, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-09-29T17:18:15.835618Z 890a477 New commits
🔒 Security Review ✅ Completed 2026-09-29T06:12:46.632241Z caa1c1a PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

Copy link
Copy Markdown
Contributor

Lighthouse CI failed. The last 80 log lines contain the measured budgets and assertion failures.

│ 25      │ 'http://localhost:3080/api/keys?name=openAI'                                                                    │ 3295.857000000018  │ 3926.82699999999   │ 200    │
│ 26      │ 'http://localhost:3080/api/presets'                                                                             │ 3296.713999999978  │ 3930.341999999946  │ 200    │
│ 27      │ 'http://localhost:3080/api/tags'                                                                                │ 3296.9469999999856 │ 3983.503999999957  │ 200    │
│ 28      │ 'http://localhost:3080/api/share/link/16390000-0000-4000-8000-000000000001'                                     │ 3299.237999999954  │ 4293.694000000018  │ 200    │
│ 29      │ 'http://localhost:3080/api/messages/16390000-0000-4000-8000-000000000001'                                       │ 3299.456999999995  │ 4433.7119999999995 │ 200    │
│ 30      │ 'http://localhost:3080/api/files/config'                                                                        │ 3299.6639999999898 │ 4184.087999999989  │ 200    │
│ 31      │ 'http://localhost:3080/api/user/settings/favorites/tools'                                                       │ 3300.3979999999865 │ 4488.7179999999935 │ 200    │
│ 32      │ 'http://localhost:3080/api/endpoints/token-config'                                                              │ 3300.582999999984  │ 4440.677999999956  │ 200    │
│ 33      │ 'http://localhost:3080/api/user/settings/skills/active'                                                         │ 3300.7390000000014 │ 4802.044999999984  │ 200    │
│ 34      │ 'http://localhost:3080/api/agents/tools/web_search/auth'                                                        │ 3301.7119999999995 │ 7316.924999999988  │ 200    │
│ 35      │ 'http://localhost:3080/api/agents/tools/calls?conversationId=16390000-0000-4000-8000-000000000001'              │ 3301.8820000000414 │ 4805.855999999971  │ 200    │
│ 36      │ 'http://localhost:3080/api/agents/chat/status/16390000-0000-4000-8000-000000000001?generationProtocolVersion=2' │ 4541.752000000037  │ 4796.7729999999865 │ 200    │
└─────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────┘

Inspect .lighthouse HTML/JSON and e2e/lighthouse/README.md. Reuse loaded user/config data; overlap independent reads without bypassing authorization.

┌─────────┬────────────────────────────┬─────────────────────┬───────┐
│ (index) │ audit                      │ median              │ limit │
├─────────┼────────────────────────────┼─────────────────────┼───────┤
│ 0       │ 'largest-contentful-paint' │ 4554.966            │ 4500  │
│ 1       │ 'cumulative-layout-shift'  │ 0.01790353201704462 │ 0.1   │
│ 2       │ 'total-blocking-time'      │ 325.2839999999992   │ 500   │
└─────────┴────────────────────────────┴─────────────────────┴───────┘

  1) [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

    Error: Median largest-contentful-paint must stay within 4500

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 4500
    Received:    4554.966

       at audit.ts:159

      157 |   console.table(measured);
      158 |   for (const { audit, median, limit } of measured) {
    > 159 |     expect(median, `Median ${audit} must stay within ${limit}`).toBeLessThanOrEqual(limit);
          |                                                                 ^
      160 |   }
      161 |   return results;
      162 | }
        at auditPage (/home/runner/work/LibreChat/LibreChat/e2e/lighthouse/audit.ts:159:65)
        at /home/runner/work/LibreChat/LibreChat/e2e/lighthouse/load.spec.ts:33:19

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip
    Usage:

        npx playwright show-trace e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────


🤖: global teardown has been started
2026-09-29 06:14:18 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-09-29 06:14:18 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ✅  Found user in Database
🤖:  ✅  Deleted 1 convos & 2 messages
🤖:  ✅  Deleted user from Database
2026-09-29 06:14:18 �[31merror�[39m: �[31mIndex build failed for "AgentQueuedTurn": Operation interrupted because client was closed�[39m
🤖: global teardown has been started
2026-09-29 06:14:18 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-09-29 06:14:18 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
2026-09-29 06:14:18 �[31merror�[39m: �[31mIndex build failed for "Conversation": Operation interrupted because client was closed�[39m
🤖:  ✅  Connected to Database
🤖:  ⚠️  User not found in Database
  1 failed
    [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

Open the full run

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: caa1c1a228

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -62,13 +62,13 @@ export default function CategoryFilter({ options, value, onChange }: Props) {
size="default"
className={cn(
'h-10 gap-1.5 px-3 text-sm font-normal',
isFiltered && 'border-emerald-500/50 text-text-primary',
isFiltered && 'text-text-primary',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve a visible filtered state

When value !== 'all', this conditional adds text-text-primary, but the outline button variant already applies that exact class, so isFiltered now has no visual effect. The removed border was the only styling that distinguished an active category filter; replace it with an appropriate semantic variant or state treatment rather than leaving a no-op conditional.

AGENTS.md reference: AGENTS.md:L92-L97

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 5f4a198: the no-op class is gone and the active state now shows on the filter icon in text-accent-primary (text-tertiary at rest), without restyling the Button. Covered by @Scenario:skills-category-filter-shows-active-state in faac690.

@@ -582,7 +582,7 @@ const PromptForm = ({ promptId: promptIdProp }: { promptId?: string }) => {
<div
aria-hidden={!showSidePanel}
className={cn(
'fixed inset-0 z-[100] bg-black/20 lg:hidden',
'bg-surface-overlay/20 fixed inset-0 z-[100] lg:hidden',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Retune the semantic scrim to preserve its opacity

On the default light theme, the old bg-black/20 produced a roughly #ccc backdrop over white, while surface-overlay is #595959, so applying the same 20% alpha produces roughly #dedede. Consequently, opening the mobile versions panel now dims the underlying page substantially less even though this is a token migration rather than an explicit redesign; adjust the opacity so the default appearance remains equivalent.

AGENTS.md reference: AGENTS.md:L42-L45

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 5f4a198acb by keeping bg-black/20: no role reproduces the per-mode dim, so the scrim moves to the theme only once scrim opacity is a theme role (berry-13#181).

@@ -11,8 +11,7 @@ import { isImageURL } from '~/utils/icons';
/** Callers frame the mark at two thirds of the round container around it. */
const artScale = 2 / 3;

const entityAvatarClassName =
'bg-surface-secondary h-full w-full rounded-full object-cover dark:bg-surface-tertiary';
const entityAvatarClassName = 'bg-surface-tertiary h-full w-full rounded-full object-cover';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the light-theme avatar surface

For transparent agent or assistant avatars, and while those images are loading, this background remains visible. In the default light theme surface-secondary is #f7f7f8 while surface-tertiary is #ececec, so collapsing the former light/dark pair to surface-tertiary changes the existing light appearance; the same regression is introduced in AgentAvatarRender. Introduce an avatar surface role that retains the former per-mode values instead of applying the dark-mode surface in every mode.

AGENTS.md reference: AGENTS.md:L42-L45

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 5f4a198acb by keeping the original per-mode pair in ConvoIcon and AgentAvatarRender. An avatar placeholder role needs style.css and themes/dark.ts, both edited by an open PR, so it is tracked in berry-13#194.

@github-actions

Copy link
Copy Markdown
Contributor

Lighthouse CI failed. The last 80 log lines contain the measured budgets and assertion failures.

│ 23      │ 'http://localhost:3080/api/permissions/mcpServer/effective/all'                                                 │ 3100.3240000000224 │ 3865.4060000000172 │ 200    │
│ 24      │ 'http://localhost:3080/api/prompts/groups?limit=10'                                                             │ 3100.607000000018  │ 4369.459000000032  │ 200    │
│ 25      │ 'http://localhost:3080/api/keys?name=openAI'                                                                    │ 3418.0740000000224 │ 3995.4400000000023 │ 200    │
│ 26      │ 'http://localhost:3080/api/presets'                                                                             │ 3419.363000000012  │ 4010.8770000000077 │ 200    │
│ 27      │ 'http://localhost:3080/api/tags'                                                                                │ 3420.0900000000256 │ 4013.6880000000237 │ 200    │
│ 28      │ 'http://localhost:3080/api/share/link/16390000-0000-4000-8000-000000000001'                                     │ 3420.676000000036  │ 4374.621000000043  │ 200    │
│ 29      │ 'http://localhost:3080/api/messages/16390000-0000-4000-8000-000000000001'                                       │ 3420.914000000019  │ 4504.779000000039  │ 200    │
│ 30      │ 'http://localhost:3080/api/files/config'                                                                        │ 3421.533000000025  │ 4267.555000000022  │ 200    │
│ 31      │ 'http://localhost:3080/api/user/settings/favorites/tools'                                                       │ 3422.607000000018  │ 4519.771000000008  │ 200    │
│ 32      │ 'http://localhost:3080/api/endpoints/token-config'                                                              │ 3423.180000000022  │ 4523.601000000024  │ 200    │
│ 33      │ 'http://localhost:3080/api/user/settings/skills/active'                                                         │ 3423.4070000000065 │ 4882.570000000036  │ 200    │
│ 34      │ 'http://localhost:3080/api/agents/tools/web_search/auth'                                                        │ 3424.57600000003   │ 7396.732000000018  │ 200    │
│ 35      │ 'http://localhost:3080/api/agents/tools/calls?conversationId=16390000-0000-4000-8000-000000000001'              │ 3424.790000000008  │ 4882.9920000000275 │ 200    │
│ 36      │ 'http://localhost:3080/api/agents/chat/status/16390000-0000-4000-8000-000000000001?generationProtocolVersion=2' │ 4612.931000000011  │ 4868.792000000016  │ 200    │
└─────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────┘

Inspect .lighthouse HTML/JSON and e2e/lighthouse/README.md. Reuse loaded user/config data; overlap independent reads without bypassing authorization.

┌─────────┬────────────────────────────┬──────────────────────┬───────┐
│ (index) │ audit                      │ median               │ limit │
├─────────┼────────────────────────────┼──────────────────────┼───────┤
│ 0       │ 'largest-contentful-paint' │ 4509.372             │ 4500  │
│ 1       │ 'cumulative-layout-shift'  │ 0.017903521145258727 │ 0.1   │
│ 2       │ 'total-blocking-time'      │ 357.79900000000043   │ 500   │
└─────────┴────────────────────────────┴──────────────────────┴───────┘

  1) [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

    Error: Median largest-contentful-paint must stay within 4500

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 4500
    Received:    4509.372

       at audit.ts:159

      157 |   console.table(measured);
      158 |   for (const { audit, median, limit } of measured) {
    > 159 |     expect(median, `Median ${audit} must stay within ${limit}`).toBeLessThanOrEqual(limit);
          |                                                                 ^
      160 |   }
      161 |   return results;
      162 | }
        at auditPage (/home/runner/work/LibreChat/LibreChat/e2e/lighthouse/audit.ts:159:65)
        at /home/runner/work/LibreChat/LibreChat/e2e/lighthouse/load.spec.ts:33:19

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip
    Usage:

        npx playwright show-trace e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────


🤖: global teardown has been started
2026-09-29 06:51:31 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-09-29 06:51:31 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ✅  Found user in Database
🤖:  ✅  Deleted 1 convos & 2 messages
🤖:  ✅  Deleted user from Database
🤖: global teardown has been started
2026-09-29 06:51:32 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-09-29 06:51:32 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ⚠️  User not found in Database
  1 failed
    [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

Open the full run

@berry-13
berry-13 force-pushed the berry-13/theme-leakage-panels branch from faac690 to 539d27d Compare September 29, 2026 07:20
@github-actions

Copy link
Copy Markdown
Contributor

Lighthouse CI failed. The last 80 log lines contain the measured budgets and assertion failures.

│ 23      │ 'http://localhost:3080/api/permissions/mcpServer/effective/all'                                                 │ 3018.506000000023  │ 3780.9960000000137 │ 200    │
│ 24      │ 'http://localhost:3080/api/prompts/groups?limit=10'                                                             │ 3018.7810000000172 │ 4292.225000000006  │ 200    │
│ 25      │ 'http://localhost:3080/api/keys?name=openAI'                                                                    │ 3307.1570000000356 │ 3939.0070000000123 │ 200    │
│ 26      │ 'http://localhost:3080/api/presets'                                                                             │ 3308.953999999998  │ 3945.5630000000237 │ 200    │
│ 27      │ 'http://localhost:3080/api/tags'                                                                                │ 3309.19200000001   │ 3949.472000000009  │ 200    │
│ 28      │ 'http://localhost:3080/api/share/link/16390000-0000-4000-8000-000000000001'                                     │ 3309.8090000000084 │ 4288.821000000025  │ 200    │
│ 29      │ 'http://localhost:3080/api/messages/16390000-0000-4000-8000-000000000001'                                       │ 3310.2270000000135 │ 4446.532000000036  │ 200    │
│ 30      │ 'http://localhost:3080/api/files/config'                                                                        │ 3311.024999999994  │ 4201.084000000003  │ 200    │
│ 31      │ 'http://localhost:3080/api/user/settings/favorites/tools'                                                       │ 3311.237000000023  │ 4457.385000000009  │ 200    │
│ 32      │ 'http://localhost:3080/api/endpoints/token-config'                                                              │ 3311.987000000023  │ 4462.611000000004  │ 200    │
│ 33      │ 'http://localhost:3080/api/user/settings/skills/active'                                                         │ 3313.6620000000403 │ 4798.191000000021  │ 200    │
│ 34      │ 'http://localhost:3080/api/agents/tools/web_search/auth'                                                        │ 3314.408000000025  │ 7317.883000000002  │ 200    │
│ 35      │ 'http://localhost:3080/api/agents/tools/calls?conversationId=16390000-0000-4000-8000-000000000001'              │ 3314.6560000000172 │ 4799.456000000035  │ 200    │
│ 36      │ 'http://localhost:3080/api/agents/chat/status/16390000-0000-4000-8000-000000000001?generationProtocolVersion=2' │ 4572.7970000000205 │ 4829.081999999995  │ 200    │
└─────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────┘

Inspect .lighthouse HTML/JSON and e2e/lighthouse/README.md. Reuse loaded user/config data; overlap independent reads without bypassing authorization.

┌─────────┬────────────────────────────┬──────────────────────┬───────┐
│ (index) │ audit                      │ median               │ limit │
├─────────┼────────────────────────────┼──────────────────────┼───────┤
│ 0       │ 'largest-contentful-paint' │ 4503.432             │ 4500  │
│ 1       │ 'cumulative-layout-shift'  │ 0.017903553760616402 │ 0.1   │
│ 2       │ 'total-blocking-time'      │ 314.5859999999998    │ 500   │
└─────────┴────────────────────────────┴──────────────────────┴───────┘

  1) [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

    Error: Median largest-contentful-paint must stay within 4500

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 4500
    Received:    4503.432

       at audit.ts:159

      157 |   console.table(measured);
      158 |   for (const { audit, median, limit } of measured) {
    > 159 |     expect(median, `Median ${audit} must stay within ${limit}`).toBeLessThanOrEqual(limit);
          |                                                                 ^
      160 |   }
      161 |   return results;
      162 | }
        at auditPage (/home/runner/work/LibreChat/LibreChat/e2e/lighthouse/audit.ts:159:65)
        at /home/runner/work/LibreChat/LibreChat/e2e/lighthouse/load.spec.ts:33:19

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip
    Usage:

        npx playwright show-trace e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────


🤖: global teardown has been started
2026-09-29 07:24:56 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-09-29 07:24:56 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ✅  Found user in Database
🤖:  ✅  Deleted 1 convos & 2 messages
🤖:  ✅  Deleted user from Database
🤖: global teardown has been started
2026-09-29 07:24:57 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-09-29 07:24:57 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ⚠️  User not found in Database
  1 failed
    [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

Open the full run

@berry-13
berry-13 added this pull request to stack #16505 September 29, 2026 11:36
@berry-13
berry-13 force-pushed the berry-13/theme-leakage-panels branch from 539d27d to 52cda24 Compare September 29, 2026 14:14
@berry-13
berry-13 force-pushed the berry-13/theme-leakage-panels branch from 52cda24 to 2f00a00 Compare September 29, 2026 15:28
@github-actions

Copy link
Copy Markdown
Contributor

Lighthouse CI failed. The last 80 log lines contain the measured budgets and assertion failures.

│ 23      │ 'http://localhost:3080/api/permissions/mcpServer/effective/all'                                                 │ 3015.377999999968  │ 3780.646000000008  │ 200    │
│ 24      │ 'http://localhost:3080/api/prompts/groups?limit=10'                                                             │ 3015.982000000018  │ 4289.551000000036  │ 200    │
│ 25      │ 'http://localhost:3080/api/keys?name=openAI'                                                                    │ 3357.271999999939  │ 3937.871999999974  │ 200    │
│ 26      │ 'http://localhost:3080/api/presets'                                                                             │ 3359.0479999999516 │ 3969.112000000023  │ 200    │
│ 27      │ 'http://localhost:3080/api/tags'                                                                                │ 3359.3499999999767 │ 3969.9559999999474 │ 200    │
│ 28      │ 'http://localhost:3080/api/share/link/16390000-0000-4000-8000-000000000001'                                     │ 3360.578999999969  │ 4290.831999999937  │ 200    │
│ 29      │ 'http://localhost:3080/api/messages/16390000-0000-4000-8000-000000000001'                                       │ 3360.8310000000056 │ 4446.031000000017  │ 200    │
│ 30      │ 'http://localhost:3080/api/files/config'                                                                        │ 3361.896000000008  │ 4225.572999999975  │ 200    │
│ 31      │ 'http://localhost:3080/api/user/settings/favorites/tools'                                                       │ 3362.4869999999646 │ 4478.168000000005  │ 200    │
│ 32      │ 'http://localhost:3080/api/endpoints/token-config'                                                              │ 3363.3360000000102 │ 4481.612999999954  │ 200    │
│ 33      │ 'http://localhost:3080/api/user/settings/skills/active'                                                         │ 3363.5479999999516 │ 4799.097000000009  │ 200    │
│ 34      │ 'http://localhost:3080/api/agents/tools/web_search/auth'                                                        │ 3363.9430000000284 │ 7314.326000000001  │ 200    │
│ 35      │ 'http://localhost:3080/api/agents/tools/calls?conversationId=16390000-0000-4000-8000-000000000001'              │ 3364.133999999962  │ 4801.470999999961  │ 200    │
│ 36      │ 'http://localhost:3080/api/agents/chat/status/16390000-0000-4000-8000-000000000001?generationProtocolVersion=2' │ 4570.651000000013  │ 4827.5079999999725 │ 200    │
└─────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────┘

Inspect .lighthouse HTML/JSON and e2e/lighthouse/README.md. Reuse loaded user/config data; overlap independent reads without bypassing authorization.

┌─────────┬────────────────────────────┬─────────────────────┬───────┐
│ (index) │ audit                      │ median              │ limit │
├─────────┼────────────────────────────┼─────────────────────┼───────┤
│ 0       │ 'largest-contentful-paint' │ 4592.405            │ 4500  │
│ 1       │ 'cumulative-layout-shift'  │ 0.01791779308218778 │ 0.1   │
│ 2       │ 'total-blocking-time'      │ 382.2550000000001   │ 500   │
└─────────┴────────────────────────────┴─────────────────────┴───────┘

  1) [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

    Error: Median largest-contentful-paint must stay within 4500

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 4500
    Received:    4592.405

       at audit.ts:159

      157 |   console.table(measured);
      158 |   for (const { audit, median, limit } of measured) {
    > 159 |     expect(median, `Median ${audit} must stay within ${limit}`).toBeLessThanOrEqual(limit);
          |                                                                 ^
      160 |   }
      161 |   return results;
      162 | }
        at auditPage (/home/runner/work/LibreChat/LibreChat/e2e/lighthouse/audit.ts:159:65)
        at /home/runner/work/LibreChat/LibreChat/e2e/lighthouse/load.spec.ts:33:19

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip
    Usage:

        npx playwright show-trace e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────


🤖: global teardown has been started
2026-09-29 15:32:49 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-09-29 15:32:49 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ✅  Found user in Database
🤖:  ✅  Deleted 1 convos & 2 messages
🤖:  ✅  Deleted user from Database
🤖: global teardown has been started
2026-09-29 15:32:49 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-09-29 15:32:49 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ⚠️  User not found in Database
  1 failed
    [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

Open the full run

@berry-13
berry-13 force-pushed the berry-13/theme-leakage-panels branch 2 times, most recently from 5aa1f28 to 83ff571 Compare September 29, 2026 17:00
Base automatically changed from berry-13/theme-leakage-chat to canary September 29, 2026 17:17
The tool dialog's logo tile takes the fixed surface that logo tiles use elsewhere,
and the skill image preview icon takes a series slot like the other categorical
marks. The tools category filter drops a raw emerald border and shows its active
state on the filter icon in the accent role instead; the label still names the
active category.

The avatar cropper's media hint and the SharePoint picker background are recorded
in the theme allowlist.
@berry-13
berry-13 force-pushed the berry-13/theme-leakage-panels branch from 83ff571 to 890a477 Compare September 29, 2026 17:17
@berry-13
berry-13 merged commit 8ce9f58 into canary Sep 29, 2026
24 checks passed
@berry-13
berry-13 deleted the berry-13/theme-leakage-panels branch September 29, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant