make some overall QoL improvements
CI / check (22) (push) Failing after 16m26s
CI / check (24) (push) Failing after 15m50s

This commit is contained in:
Frederik Spirgi
2026-10-08 11:02:32 +02:00
parent 0f58a996ec
commit 8666e09049
7 changed files with 271 additions and 50 deletions
+29 -16
View File
@@ -11,7 +11,7 @@
href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Manrope:wght@400;500;600;700;800&display=swap"
rel="stylesheet">
<script src="/js/theme-bootstrap.js?v=20260909-account-controls"></script>
<link rel="stylesheet" href="/css/style.css?v=20260930-chat-usability" />
<link rel="stylesheet" href="/css/style.css?v=20261008-conversation-search" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/css/pages.css?v=20260909-account-controls">
<link rel="stylesheet" href="/css/shell.css?v=20260909-account-controls">
@@ -128,9 +128,11 @@
<p id="modelHelpSummary" class="model-help-summary">Pick a
model to see what it is best suited for.</p>
</div>
<details class="generation-advanced">
<summary>Advanced generation settings</summary>
<div class="generation-settings-grid">
</div>
</details>
<details class="chat-drawer-section generation-advanced">
<summary class="chat-drawer-row"><span class="chat-drawer-row-label"><strong>Generation settings</strong></span><span class="chat-drawer-row-hint">Advanced</span></summary>
<div class="generation-settings-grid chat-drawer-disclosure-panel">
<label class="field"><span>Temperature</span><input
id="chatTemperature" type="number" min="0" max="2"
step="0.1" placeholder="Default" /></label>
@@ -147,11 +149,9 @@
<button id="saveGenerationSettings" type="button">Save
generation settings</button>
</div>
</details>
</div>
</details>
<div class="chat-drawer-section">
<p class="dropdown-section-label">Chat</p>
<p class="dropdown-section-label">Conversation actions</p>
<div class="chat-drawer-action-list">
<button id="renameChat"
class="secondary-action chat-drawer-action" type="button"
@@ -169,7 +169,7 @@
<details class="chat-drawer-section chat-drawer-more">
<summary class="chat-drawer-row chat-drawer-row--compact">
<span class="chat-drawer-row-label">
<strong>Tools &amp; workspace</strong>
<strong>Conversation tools</strong>
</span>
<span class="chat-drawer-row-hint">Show</span>
</summary>
@@ -184,6 +184,11 @@
<button id="managePersonaState"
class="secondary-action chat-drawer-action" type="button"
data-chat-action="personaState">Roleplay state</button>
</div>
</details>
<details class="chat-drawer-section chat-drawer-more">
<summary class="chat-drawer-row chat-drawer-row--compact"><span class="chat-drawer-row-label"><strong>Workspace files</strong></span><span class="chat-drawer-row-hint">Show</span></summary>
<div class="chat-drawer-action-list chat-drawer-disclosure-panel">
<button id="backupWorkspace"
class="secondary-action chat-drawer-action"
type="button">Download workspace archive</button>
@@ -197,7 +202,7 @@
<details class="chat-drawer-section chat-drawer-danger">
<summary class="chat-drawer-row chat-drawer-row--compact">
<span class="chat-drawer-row-label">
<strong>Clear conversation</strong>
<strong>Delete chat content</strong>
</span>
<span class="chat-drawer-row-hint">Show</span>
</summary>
@@ -234,14 +239,21 @@
<button id="loadOlderMessages" class="secondary-action" type="button" hidden>Load older messages</button>
<button id="loadLatestMessages" class="secondary-action" type="button" hidden>Back to latest messages</button>
</div>
<div id="messages" class="messages-panel messages-panel-focus" role="log" aria-live="polite"
aria-relevant="additions text"></div>
<div class="conversation-search" role="search" aria-label="Search this conversation">
<label for="conversationSearch">Find in this chat</label>
<input id="conversationSearch" type="search" placeholder="Search messages" autocomplete="off" maxlength="200">
<span id="conversationSearchCount" role="status" aria-live="polite">0 matches</span>
<button id="conversationSearchPrevious" class="secondary-action" type="button" aria-label="Previous match" disabled>Previous</button>
<button id="conversationSearchNext" class="secondary-action" type="button" aria-label="Next match" disabled>Next</button>
</div>
<div id="messages" class="messages-panel messages-panel-focus" role="log" aria-live="off"></div>
<div id="replyAnnouncement" class="visually-hidden" role="status" aria-live="polite" aria-atomic="true"></div>
<button id="jumpToLatest" class="jump-to-latest secondary-action hidden" type="button">Jump to latest</button>
</div>
<div class="input-shell input-shell-focus">
<div class="input-meta">
<p class="composer-hint">Enter to send · Shift+Enter for new line</p>
<p id="composerHint" class="composer-hint">Enter to send · Shift+Enter for new line</p>
</div>
<div id="uploadPreviews" class="upload-previews" aria-live="polite" hidden></div>
<div class="input-container">
@@ -254,7 +266,7 @@
<rect x="3" y="3" width="18" height="18" rx="3" />
<circle cx="8" cy="8" r="1.5" />
<path d="m3 17 5-5 4 4 4-6 5 7" />
</svg>
</svg><span class="composer-tool-label">Attach</span>
</button>
<button id="webSearch" class="icon-button" type="button" aria-label="Automatic web search on — click to disable"
title="Automatic web search on — click to disable" aria-pressed="true">
@@ -263,7 +275,7 @@
<circle cx="12" cy="12" r="9" />
<ellipse cx="12" cy="12" rx="4" ry="9" />
<path d="M3 12h18" />
</svg>
</svg><span class="composer-tool-label">Web search</span>
</button>
<button id="reasoning" class="icon-button" type="button" aria-label="Enable reasoning"
title="Enable reasoning" aria-pressed="false" disabled>
@@ -272,11 +284,12 @@
aria-hidden="true">
<path
d="M12 18V5a3 3 0 0 0-5.8-1A4 4 0 0 0 3 10a4 4 0 0 0 1 7.8A4 4 0 0 0 12 18ZM12 5a3 3 0 0 1 5.8-1A4 4 0 0 1 21 10a4 4 0 0 1-1 7.8A4 4 0 0 1 12 18M8 8a4 4 0 0 1-5 2m13-2a4 4 0 0 0 5 2M8 14a4 4 0 0 0-4 4m12-4a4 4 0 0 1 4 4" />
</svg>
</svg><span class="composer-tool-label">Reasoning</span>
</button>
<label class="visually-hidden" for="msgInput">Message</label>
<textarea id="msgInput" rows="1" placeholder="Type your message..."></textarea>
<button id="send" type="button" aria-label="Send message"></button>
<button id="stopGeneration" class="secondary-action" type="button" aria-label="Stop generating reply" hidden>Stop</button>
</div>
</div>
</section>
@@ -439,7 +452,7 @@
integrity="sha512-rCQgmUulW6f6QegOvTntKKb5IAoxTpGVCdWqYjkXEpzAns6XUFs8NKVqWe+KQpctp/EoRSFSuykVputqknLYMg=="
crossorigin="anonymous" defer></script>
<script src="/vendor/dompurify.js" defer></script>
<script type="module" src="/js/script.js?v=20261007-chat-csp-fix"></script>
<script type="module" src="/js/script.js?v=20261008-conversation-search"></script>
<script type="module" src="/js/workspaceNavigation.js?v=20260909-account-controls"></script>
</body>