Skip to content

🪟 feat: Add Welcome Footer and Response Author Options and Tidy the Chat Chrome - #17879

Merged
berry-13 merged 11 commits into
devfrom
berry-13/fix-daniel-issues
Nov 8, 2026
Merged

berry-13 merged 11 commits into
devfrom
berry-13/fix-daniel-issues

Conversation

@berry-13

@berry-13 berry-13 commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

A design review of the chat screen flagged several things that distract from the conversation. Memories opened in a chat follows the user to /agents, the sidebar's Projects section is collapsed for an account with no projects, its Projects, Pinned and Chats headings sit 12px right of the date labels, and the dot on a streaming response explains nothing to anyone. Each is fixed here.

Two more are deployment preferences, so they ship as opt-in librechat.yaml settings whose defaults keep today's layout. interface.landingFooter: composer places the welcome screen's footer directly under the composer instead of at the bottom of the page. interface.messageAuthor: whenDifferent drops the avatar and name from a response when the header's model selector already shows that agent. Another agent's response, a subagent thread and a deployment with no selector all keep the author, and screen readers still get it.

Type of change

  • Bug fix
  • Feature
  • Tests / tooling / CI

Testing

Each behavior has a tagged scenario in landing-greeting.spec.ts or the new launch-qa.spec.ts. In the running app I confirmed each one in light and dark, with both settings off and on. The settings were served through a mocked /api/config; the path from YAML is covered by the schema, loadDefaultInterface and shell bootstrap specs. The finished reply and empty projects list in the screenshots are mocked responses.

Tested environments/configuration:

  • Browser: Chromium
  • Provider/model: mock profile fake model
  • Database: mongodb-memory-server for e2e, shared dev Mongo for the running app

Automated tests:

  • npx playwright test --config=e2e/playwright.config.mock.ts on both specs: passed
  • reviewctl precheck on this branch: passed
  • Added routePanels.spec.ts and ProjectsSection.spec.tsx; extended ContentRow, EmptyText, chrome, Screen, ChatPane, ChatView, Footer, config-schemas, interface and footer specs

Screenshots / recordings

Before is the base revision; after is this branch, with the settings on where a row names one.

Before After
landingFooter: composer Footer before Footer after
messageAuthor: whenDifferent Author before Author after
Streaming dot, hovered Dot before Dot after
Sidebar, no projects Sidebar before Sidebar after
/agents with Memories open Memories before Memories after

Risk / compatibility

Both settings default to today's behavior. Three changes apply to every deployment: Projects starts expanded, which reverses the empty-section collapse from #13531 for anyone who never toggled it; the Memories rail icon is hidden on /agents; and registering the button's default size utilities in the app's cn also gives the mobile drawer's switcher the h-10 px-2 it already asks for. With whenDifferent on, the hover timestamp and model name go away with the row, though screen readers keep both.

Checklist

@berry-13 berry-13 added 🐛 bug Something isn't working ✨ enhancement New feature or request 🔧 fix Bug fixes and code patches 🧪 tests Unit/integration test updates 🎨 design UI/UX improvements labels Nov 7, 2026
Copilot AI balanced review requested due to automatic review settings November 7, 2026 00:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@github-actions

github-actions Bot commented Nov 7, 2026

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/mcp/servers'                                                                         │ 2875.0780000000377 │ 4139.728999999992  │ 200    │
│ 24      │ 'http://localhost:3080/api/permissions/mcpServer/effective/all'                                                 │ 2876.4400000000023 │ 3636.214000000007  │ 200    │
│ 25      │ 'http://localhost:3080/api/prompts/groups?limit=10'                                                             │ 2876.6180000000168 │ 4277.07600000003   │ 200    │
│ 26      │ 'http://localhost:3080/api/keys?name=openAI'                                                                    │ 3436.8910000000033 │ 3943.814000000042  │ 200    │
│ 27      │ 'http://localhost:3080/api/presets'                                                                             │ 3459.1350000000093 │ 3971.6389999999956 │ 200    │
│ 28      │ 'http://localhost:3080/api/tags'                                                                                │ 3459.655999999988  │ 3971.8550000000105 │ 200    │
│ 29      │ 'http://localhost:3080/api/share/link/16390000-0000-4000-8000-000000000001'                                     │ 3460.49900000004   │ 4141.456000000006  │ 200    │
│ 30      │ 'http://localhost:3080/api/messages/16390000-0000-4000-8000-000000000001?toolPreviews=1'                        │ 3460.743000000046  │ 4450.107000000018  │ 200    │
│ 31      │ 'http://localhost:3080/api/user/settings/favorites/tools'                                                       │ 3460.911000000022  │ 4477.958000000013  │ 200    │
│ 32      │ 'http://localhost:3080/api/endpoints/token-config'                                                              │ 3464.1110000000044 │ 4228.595000000001  │ 200    │
│ 33      │ 'http://localhost:3080/api/user/settings/skills/active'                                                         │ 3465.4839999999967 │ 4649.381000000023  │ 200    │
│ 34      │ 'http://localhost:3080/api/agents/tools/web_search/auth'                                                        │ 3465.6810000000114 │ 7165.382000000012  │ 200    │
│ 35      │ 'http://localhost:3080/api/agents/tools/calls?conversationId=16390000-0000-4000-8000-000000000001'              │ 3465.8430000000226 │ 4733.652000000031  │ 200    │
│ 36      │ 'http://localhost:3080/api/agents/chat/status/16390000-0000-4000-8000-000000000001?generationProtocolVersion=2' │ 4578.041999999987  │ 4832.701999999961  │ 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' │ 4572.35              │ 4500  │
│ 1       │ 'cumulative-layout-shift'  │ 0.012789759215480258 │ 0.1   │
│ 2       │ 'total-blocking-time'      │ 338.8580000000002    │ 500   │
└─────────┴────────────────────────────┴──────────────────────┴───────┘

  1) [chromium] › 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:    4572.35

       at audit.ts:127

      125 |   console.table(measured);
      126 |   for (const { audit, median, limit } of measured) {
    > 127 |     expect(median, `Median ${audit} must stay within ${limit}`).toBeLessThanOrEqual(limit);
          |                                                                 ^
      128 |   }
      129 |   return results;
      130 | }
        at auditPage (/home/runner/work/LibreChat/LibreChat/e2e/lighthouse/audit.ts:127: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-chromium/test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

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

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

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

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


🤖: global teardown has been started
2026-11-07 00:11:09 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-11-07 00:11:09 �[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-11-07 00:11:10 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-11-07 00:11:10 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ⚠️  User not found in Database
  1 failed
    [chromium] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

Open the full run

@berry-13
berry-13 marked this pull request as ready for review November 7, 2026 17:13
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-08T13:35:16.260583Z f2df943 New commits
🔒 Security Review ✅ Completed 2026-11-07T17:17:38.232663Z 96a1d38 Draft marked ready
ℹ️ 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.

@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: 96a1d38be1

ℹ️ 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".

@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: 2877d456da

ℹ️ 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".

@berry-13
berry-13 force-pushed the berry-13/fix-daniel-issues branch from 50d077e to f2df943 Compare November 8, 2026 13:33
@berry-13
berry-13 merged commit ea4d7c7 into dev Nov 8, 2026
50 checks passed
@berry-13
berry-13 deleted the berry-13/fix-daniel-issues branch November 8, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐛 bug Something isn't working 🎨 design UI/UX improvements ✨ enhancement New feature or request 🔧 fix Bug fixes and code patches 🧪 tests Unit/integration test updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants