Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion extension/manifest.chrome.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "LightSession Pro for ChatGPT",
"version": "1.6.3",
"version": "1.7.0",
"description": "Keep ChatGPT fast by keeping only the last N messages in the DOM. Local-only.",
"icons": {
"16": "icons/icon-16.png",
Expand Down
2 changes: 1 addition & 1 deletion extension/manifest.firefox.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "LightSession Pro for ChatGPT",
"version": "1.6.3",
"version": "1.7.0",
"description": "Keep ChatGPT fast by keeping only the last N messages in the DOM. Local-only.",
"icons": {
"16": "icons/icon-16.png",
Expand Down
21 changes: 21 additions & 0 deletions extension/popup/popup.html
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,27 @@ <h1>LightSession Pro</h1>
</div>
</label>

<!-- Collapse long user messages -->
<label class="ls-checkbox-row">
<div class="ls-checkbox-wrapper">
<input
type="checkbox"
id="collapseLongUserMessagesCheckbox"
class="ls-checkbox-input"
aria-label="Collapse long user messages"
>
<div class="ls-checkbox-box">
<svg class="ls-checkbox-check" viewBox="0 0 12 12" fill="none">
<path d="M2 6l3 3 5-6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
</div>
<div class="ls-checkbox-label-group">
<span class="ls-checkbox-label">Collapse long user messages</span>
<span class="ls-checkbox-description">Reduce lag in long chats</span>
</div>
</label>

</div>
</section>

Expand Down
14 changes: 14 additions & 0 deletions extension/src/content/content.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import {
setStatusBarVisibility,
} from './status-bar';
import { isEmptyChatView } from './chat-view';
import { installUserCollapse, type UserCollapseController } from './user-collapse';


// ============================================================================
Expand Down Expand Up @@ -57,6 +58,7 @@ let proxyReady = false;
let emptyChatState = false;
let emptyChatCheckTimer: number | null = null;
let emptyChatObserver: MutationObserver | null = null;
let userCollapse: UserCollapseController | null = null;

// ============================================================================
// Page Script Communication
Expand Down Expand Up @@ -171,6 +173,18 @@ function applySettings(settings: LsSettings): void {
// Apply Ultra Lean CSS mode (works independently of trimmer)
setUltraLeanMode(settings.ultraLean);

// Collapse long user messages (presentation-only; local DOM feature)
const shouldCollapseLongUserMessages = settings.enabled && settings.collapseLongUserMessages;
if (shouldCollapseLongUserMessages) {
if (!userCollapse) {
userCollapse = installUserCollapse();
}
userCollapse.enable();
} else if (userCollapse) {
userCollapse.teardown();
userCollapse = null;
}

logDebug('Settings applied:', settings);
}

Expand Down
Loading