Skip to content

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) - #911

Merged
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list
Aug 21, 2026
Merged

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52)#911
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Fixes rant 2026-08-21T11:44:52 — GUI sidebar rework:

  1. Remove the history session list: the sidebar now shows only the "Open Sessions" list. Sidebar.render() (which rendered the #conv-list history list) is removed entirely along with all 5 call sites in app.js (boot init, switchSession session-not-found branch, refreshSessions, and the sessions / sessions_list broadcast handlers — state.sessions is still kept as internal state for session switching and the title bar). The <nav id="conv-list"> element is removed from index.html.

  2. Remove keyboard navigation: initKeyboard / clearFocus / kbd-focus are gone from sidebar.js (the ↑↓/Enter nav was bound to the removed history list), and the .conv-item.kbd-focus CSS rule is removed.

  3. Open-sessions persistence: unchanged — the existing mechanism (gui_state.json + restoreOpenSessions + renderer init.open_sessions) already restores open sessions across restarts; no gap found.

Changes

  • emrg/gui/renderer/js/sidebar.js — drop render(), cwdProjectName, keyboard-nav block; highlight() targets open-sessions only
  • emrg/gui/renderer/js/app.js — remove 5 Sidebar.render(...) call sites (state.sessions retained)
  • emrg/gui/renderer/index.html — remove <nav id="conv-list">
  • emrg/gui/renderer/css/components.css — remove .conv-item.kbd-focus rule
  • emrg/gui/test/renderer.smoke.test.js — boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar
  • Agent.md — GUI breakdown synced (renderer smoke 126→125, integration 7→8 real node count)

Verification

  • GUI: npm test — 254 tests, 246 pass, 8 skipped (live daemon owns fixed port), 0 fail
  • Python: uv run pytest tests/ — 987 passed + 1 skipped (incl. doc-count guards)
  • python -m emrg --help + import OK

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Fresh review of the sidebar rework (rant 2026-08-21T11:44:52):

  • Sidebar.render() (history #conv-list) removed entirely, plus its 5 app.js call sites (boot, session-not-found branch, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained as internal state for switching/title bar.
  • Keyboard nav removed: initKeyboard / clearFocus / kbd-focus gone from sidebar.js; .conv-item.kbd-focus CSS rule removed; <nav id="conv-list"> removed from index.html; highlight() now targets open-sessions only.
  • Open-sessions persistence untouched (gui_state.json + restoreOpenSessions already cover restarts — no gap found).
  • Tests: boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar. Agent.md breakdown synced (merged count 255: renderer smoke 126, integration 8).
  • Master merged in to resolve the Agent.md conflict with #910; verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

1/3.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Re-review (head c884c2a unchanged since previous review):

  • Sidebar.render() (history #conv-list) removed entirely, along with cwdProjectName, initKeyboard, clearFocus, _keyHandler, _focusIdx and the module-level init(); highlight() now targets open-sessions only and the exposed API is just { renderOpenSessions, highlight }.
  • All 5 Sidebar.render(...) call sites removed from app.js (boot, switchSession session-not-found, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained for switching/title bar.
  • <nav id="conv-list"> removed from index.html; .conv-item.kbd-focus CSS removed; ELEMENT_IDS cleaned.
  • Tests: boot test asserts state.sessions; two keyboard-nav tests replaced by a negative test asserting the removal (conv-list / kbd-focus / initKeyboard / clearFocus absent from sidebar.js, no conv-list nav in index.html); scoped-highlight test updated for single-list sidebar. Agent.md merged count 255 (renderer smoke 126, integration 8).
  • Verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

2/3.

@pm25coder

Copy link
Copy Markdown
Collaborator

Independent test report (Contributor, pm25coder):

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

3rd consecutive review (head c884c2a, MERGEABLE/CLEAN, CI test + test-windows PASS):

  • Fresh local verification on the branch: GUI npm test 255 total (247 pass / 0 fail / 8 skipped — matches Agent.md update 256→255), pytest 987 passed + 1 skipped, import + CLI OK.
  • Sidebar.render() (history #conv-list) removed entirely with its keyboard-nav machinery (initKeyboard/clearFocus/_keyHandler/_focusIdx/cwdProjectName); 5 app.js call sites cleaned; index.html drops the conv-list nav; components.css drops the kbd-focus style; highlight() now targets only the open-sessions area — consistent with the new sidebar design (rant 11:44:52).

3/3.

@argszero
argszero merged commit 565a7a5 into masterAug 21, 2026
2 checks passed
@argszero
argszero deleted the feature/gui-sidebar-remove-history-list branch August 21, 2026 05:10
argszero added a commit that referenced this pull request Aug 21, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Sign up for freeto 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.

2 participants

@argszero@pm25coder
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) by argszero · Pull Request #911 · argszero/emrg · GitHub
Skip to content

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) - #911

Merged
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list
Aug 21, 2026
Merged

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52)#911
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Fixes rant 2026-08-21T11:44:52 — GUI sidebar rework:

  1. Remove the history session list: the sidebar now shows only the "Open Sessions" list. Sidebar.render() (which rendered the #conv-list history list) is removed entirely along with all 5 call sites in app.js (boot init, switchSession session-not-found branch, refreshSessions, and the sessions / sessions_list broadcast handlers — state.sessions is still kept as internal state for session switching and the title bar). The <nav id="conv-list"> element is removed from index.html.

  2. Remove keyboard navigation: initKeyboard / clearFocus / kbd-focus are gone from sidebar.js (the ↑↓/Enter nav was bound to the removed history list), and the .conv-item.kbd-focus CSS rule is removed.

  3. Open-sessions persistence: unchanged — the existing mechanism (gui_state.json + restoreOpenSessions + renderer init.open_sessions) already restores open sessions across restarts; no gap found.

Changes

  • emrg/gui/renderer/js/sidebar.js — drop render(), cwdProjectName, keyboard-nav block; highlight() targets open-sessions only
  • emrg/gui/renderer/js/app.js — remove 5 Sidebar.render(...) call sites (state.sessions retained)
  • emrg/gui/renderer/index.html — remove <nav id="conv-list">
  • emrg/gui/renderer/css/components.css — remove .conv-item.kbd-focus rule
  • emrg/gui/test/renderer.smoke.test.js — boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar
  • Agent.md — GUI breakdown synced (renderer smoke 126→125, integration 7→8 real node count)

Verification

  • GUI: npm test — 254 tests, 246 pass, 8 skipped (live daemon owns fixed port), 0 fail
  • Python: uv run pytest tests/ — 987 passed + 1 skipped (incl. doc-count guards)
  • python -m emrg --help + import OK

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Fresh review of the sidebar rework (rant 2026-08-21T11:44:52):

  • Sidebar.render() (history #conv-list) removed entirely, plus its 5 app.js call sites (boot, session-not-found branch, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained as internal state for switching/title bar.
  • Keyboard nav removed: initKeyboard / clearFocus / kbd-focus gone from sidebar.js; .conv-item.kbd-focus CSS rule removed; <nav id="conv-list"> removed from index.html; highlight() now targets open-sessions only.
  • Open-sessions persistence untouched (gui_state.json + restoreOpenSessions already cover restarts — no gap found).
  • Tests: boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar. Agent.md breakdown synced (merged count 255: renderer smoke 126, integration 8).
  • Master merged in to resolve the Agent.md conflict with #910; verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

1/3.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Re-review (head c884c2a unchanged since previous review):

  • Sidebar.render() (history #conv-list) removed entirely, along with cwdProjectName, initKeyboard, clearFocus, _keyHandler, _focusIdx and the module-level init(); highlight() now targets open-sessions only and the exposed API is just { renderOpenSessions, highlight }.
  • All 5 Sidebar.render(...) call sites removed from app.js (boot, switchSession session-not-found, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained for switching/title bar.
  • <nav id="conv-list"> removed from index.html; .conv-item.kbd-focus CSS removed; ELEMENT_IDS cleaned.
  • Tests: boot test asserts state.sessions; two keyboard-nav tests replaced by a negative test asserting the removal (conv-list / kbd-focus / initKeyboard / clearFocus absent from sidebar.js, no conv-list nav in index.html); scoped-highlight test updated for single-list sidebar. Agent.md merged count 255 (renderer smoke 126, integration 8).
  • Verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

2/3.

@pm25coder

Copy link
Copy Markdown
Collaborator

Independent test report (Contributor, pm25coder):

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

3rd consecutive review (head c884c2a, MERGEABLE/CLEAN, CI test + test-windows PASS):

  • Fresh local verification on the branch: GUI npm test 255 total (247 pass / 0 fail / 8 skipped — matches Agent.md update 256→255), pytest 987 passed + 1 skipped, import + CLI OK.
  • Sidebar.render() (history #conv-list) removed entirely with its keyboard-nav machinery (initKeyboard/clearFocus/_keyHandler/_focusIdx/cwdProjectName); 5 app.js call sites cleaned; index.html drops the conv-list nav; components.css drops the kbd-focus style; highlight() now targets only the open-sessions area — consistent with the new sidebar design (rant 11:44:52).

3/3.

@argszero
argszero merged commit 565a7a5 into masterAug 21, 2026
2 checks passed
@argszero
argszero deleted the feature/gui-sidebar-remove-history-list branch August 21, 2026 05:10
argszero added a commit that referenced this pull request Aug 21, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Sign up for freeto 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.

2 participants

@argszero@pm25coder
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) by argszero · Pull Request #911 · argszero/emrg · GitHub
Skip to content

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) - #911

Merged
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list
Aug 21, 2026
Merged

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52)#911
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Fixes rant 2026-08-21T11:44:52 — GUI sidebar rework:

  1. Remove the history session list: the sidebar now shows only the "Open Sessions" list. Sidebar.render() (which rendered the #conv-list history list) is removed entirely along with all 5 call sites in app.js (boot init, switchSession session-not-found branch, refreshSessions, and the sessions / sessions_list broadcast handlers — state.sessions is still kept as internal state for session switching and the title bar). The <nav id="conv-list"> element is removed from index.html.

  2. Remove keyboard navigation: initKeyboard / clearFocus / kbd-focus are gone from sidebar.js (the ↑↓/Enter nav was bound to the removed history list), and the .conv-item.kbd-focus CSS rule is removed.

  3. Open-sessions persistence: unchanged — the existing mechanism (gui_state.json + restoreOpenSessions + renderer init.open_sessions) already restores open sessions across restarts; no gap found.

Changes

  • emrg/gui/renderer/js/sidebar.js — drop render(), cwdProjectName, keyboard-nav block; highlight() targets open-sessions only
  • emrg/gui/renderer/js/app.js — remove 5 Sidebar.render(...) call sites (state.sessions retained)
  • emrg/gui/renderer/index.html — remove <nav id="conv-list">
  • emrg/gui/renderer/css/components.css — remove .conv-item.kbd-focus rule
  • emrg/gui/test/renderer.smoke.test.js — boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar
  • Agent.md — GUI breakdown synced (renderer smoke 126→125, integration 7→8 real node count)

Verification

  • GUI: npm test — 254 tests, 246 pass, 8 skipped (live daemon owns fixed port), 0 fail
  • Python: uv run pytest tests/ — 987 passed + 1 skipped (incl. doc-count guards)
  • python -m emrg --help + import OK

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Fresh review of the sidebar rework (rant 2026-08-21T11:44:52):

  • Sidebar.render() (history #conv-list) removed entirely, plus its 5 app.js call sites (boot, session-not-found branch, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained as internal state for switching/title bar.
  • Keyboard nav removed: initKeyboard / clearFocus / kbd-focus gone from sidebar.js; .conv-item.kbd-focus CSS rule removed; <nav id="conv-list"> removed from index.html; highlight() now targets open-sessions only.
  • Open-sessions persistence untouched (gui_state.json + restoreOpenSessions already cover restarts — no gap found).
  • Tests: boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar. Agent.md breakdown synced (merged count 255: renderer smoke 126, integration 8).
  • Master merged in to resolve the Agent.md conflict with #910; verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

1/3.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Re-review (head c884c2a unchanged since previous review):

  • Sidebar.render() (history #conv-list) removed entirely, along with cwdProjectName, initKeyboard, clearFocus, _keyHandler, _focusIdx and the module-level init(); highlight() now targets open-sessions only and the exposed API is just { renderOpenSessions, highlight }.
  • All 5 Sidebar.render(...) call sites removed from app.js (boot, switchSession session-not-found, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained for switching/title bar.
  • <nav id="conv-list"> removed from index.html; .conv-item.kbd-focus CSS removed; ELEMENT_IDS cleaned.
  • Tests: boot test asserts state.sessions; two keyboard-nav tests replaced by a negative test asserting the removal (conv-list / kbd-focus / initKeyboard / clearFocus absent from sidebar.js, no conv-list nav in index.html); scoped-highlight test updated for single-list sidebar. Agent.md merged count 255 (renderer smoke 126, integration 8).
  • Verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

2/3.

@pm25coder

Copy link
Copy Markdown
Collaborator

Independent test report (Contributor, pm25coder):

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

3rd consecutive review (head c884c2a, MERGEABLE/CLEAN, CI test + test-windows PASS):

  • Fresh local verification on the branch: GUI npm test 255 total (247 pass / 0 fail / 8 skipped — matches Agent.md update 256→255), pytest 987 passed + 1 skipped, import + CLI OK.
  • Sidebar.render() (history #conv-list) removed entirely with its keyboard-nav machinery (initKeyboard/clearFocus/_keyHandler/_focusIdx/cwdProjectName); 5 app.js call sites cleaned; index.html drops the conv-list nav; components.css drops the kbd-focus style; highlight() now targets only the open-sessions area — consistent with the new sidebar design (rant 11:44:52).

3/3.

@argszero
argszero merged commit 565a7a5 into masterAug 21, 2026
2 checks passed
@argszero
argszero deleted the feature/gui-sidebar-remove-history-list branch August 21, 2026 05:10
argszero added a commit that referenced this pull request Aug 21, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Sign up for freeto 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.

2 participants

@argszero@pm25coder
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) by argszero · Pull Request #911 · argszero/emrg · GitHub
Skip to content

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) - #911

Merged
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list
Aug 21, 2026
Merged

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52)#911
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Fixes rant 2026-08-21T11:44:52 — GUI sidebar rework:

  1. Remove the history session list: the sidebar now shows only the "Open Sessions" list. Sidebar.render() (which rendered the #conv-list history list) is removed entirely along with all 5 call sites in app.js (boot init, switchSession session-not-found branch, refreshSessions, and the sessions / sessions_list broadcast handlers — state.sessions is still kept as internal state for session switching and the title bar). The <nav id="conv-list"> element is removed from index.html.

  2. Remove keyboard navigation: initKeyboard / clearFocus / kbd-focus are gone from sidebar.js (the ↑↓/Enter nav was bound to the removed history list), and the .conv-item.kbd-focus CSS rule is removed.

  3. Open-sessions persistence: unchanged — the existing mechanism (gui_state.json + restoreOpenSessions + renderer init.open_sessions) already restores open sessions across restarts; no gap found.

Changes

  • emrg/gui/renderer/js/sidebar.js — drop render(), cwdProjectName, keyboard-nav block; highlight() targets open-sessions only
  • emrg/gui/renderer/js/app.js — remove 5 Sidebar.render(...) call sites (state.sessions retained)
  • emrg/gui/renderer/index.html — remove <nav id="conv-list">
  • emrg/gui/renderer/css/components.css — remove .conv-item.kbd-focus rule
  • emrg/gui/test/renderer.smoke.test.js — boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar
  • Agent.md — GUI breakdown synced (renderer smoke 126→125, integration 7→8 real node count)

Verification

  • GUI: npm test — 254 tests, 246 pass, 8 skipped (live daemon owns fixed port), 0 fail
  • Python: uv run pytest tests/ — 987 passed + 1 skipped (incl. doc-count guards)
  • python -m emrg --help + import OK

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Fresh review of the sidebar rework (rant 2026-08-21T11:44:52):

  • Sidebar.render() (history #conv-list) removed entirely, plus its 5 app.js call sites (boot, session-not-found branch, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained as internal state for switching/title bar.
  • Keyboard nav removed: initKeyboard / clearFocus / kbd-focus gone from sidebar.js; .conv-item.kbd-focus CSS rule removed; <nav id="conv-list"> removed from index.html; highlight() now targets open-sessions only.
  • Open-sessions persistence untouched (gui_state.json + restoreOpenSessions already cover restarts — no gap found).
  • Tests: boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar. Agent.md breakdown synced (merged count 255: renderer smoke 126, integration 8).
  • Master merged in to resolve the Agent.md conflict with #910; verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

1/3.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Re-review (head c884c2a unchanged since previous review):

  • Sidebar.render() (history #conv-list) removed entirely, along with cwdProjectName, initKeyboard, clearFocus, _keyHandler, _focusIdx and the module-level init(); highlight() now targets open-sessions only and the exposed API is just { renderOpenSessions, highlight }.
  • All 5 Sidebar.render(...) call sites removed from app.js (boot, switchSession session-not-found, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained for switching/title bar.
  • <nav id="conv-list"> removed from index.html; .conv-item.kbd-focus CSS removed; ELEMENT_IDS cleaned.
  • Tests: boot test asserts state.sessions; two keyboard-nav tests replaced by a negative test asserting the removal (conv-list / kbd-focus / initKeyboard / clearFocus absent from sidebar.js, no conv-list nav in index.html); scoped-highlight test updated for single-list sidebar. Agent.md merged count 255 (renderer smoke 126, integration 8).
  • Verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

2/3.

@pm25coder

Copy link
Copy Markdown
Collaborator

Independent test report (Contributor, pm25coder):

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

3rd consecutive review (head c884c2a, MERGEABLE/CLEAN, CI test + test-windows PASS):

  • Fresh local verification on the branch: GUI npm test 255 total (247 pass / 0 fail / 8 skipped — matches Agent.md update 256→255), pytest 987 passed + 1 skipped, import + CLI OK.
  • Sidebar.render() (history #conv-list) removed entirely with its keyboard-nav machinery (initKeyboard/clearFocus/_keyHandler/_focusIdx/cwdProjectName); 5 app.js call sites cleaned; index.html drops the conv-list nav; components.css drops the kbd-focus style; highlight() now targets only the open-sessions area — consistent with the new sidebar design (rant 11:44:52).

3/3.

@argszero
argszero merged commit 565a7a5 into masterAug 21, 2026
2 checks passed
@argszero
argszero deleted the feature/gui-sidebar-remove-history-list branch August 21, 2026 05:10
argszero added a commit that referenced this pull request Aug 21, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Sign up for freeto 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.

2 participants

@argszero@pm25coder
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) by argszero · Pull Request #911 · argszero/emrg · GitHub
Skip to content

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) - #911

Merged
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list
Aug 21, 2026
Merged

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52)#911
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Fixes rant 2026-08-21T11:44:52 — GUI sidebar rework:

  1. Remove the history session list: the sidebar now shows only the "Open Sessions" list. Sidebar.render() (which rendered the #conv-list history list) is removed entirely along with all 5 call sites in app.js (boot init, switchSession session-not-found branch, refreshSessions, and the sessions / sessions_list broadcast handlers — state.sessions is still kept as internal state for session switching and the title bar). The <nav id="conv-list"> element is removed from index.html.

  2. Remove keyboard navigation: initKeyboard / clearFocus / kbd-focus are gone from sidebar.js (the ↑↓/Enter nav was bound to the removed history list), and the .conv-item.kbd-focus CSS rule is removed.

  3. Open-sessions persistence: unchanged — the existing mechanism (gui_state.json + restoreOpenSessions + renderer init.open_sessions) already restores open sessions across restarts; no gap found.

Changes

  • emrg/gui/renderer/js/sidebar.js — drop render(), cwdProjectName, keyboard-nav block; highlight() targets open-sessions only
  • emrg/gui/renderer/js/app.js — remove 5 Sidebar.render(...) call sites (state.sessions retained)
  • emrg/gui/renderer/index.html — remove <nav id="conv-list">
  • emrg/gui/renderer/css/components.css — remove .conv-item.kbd-focus rule
  • emrg/gui/test/renderer.smoke.test.js — boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar
  • Agent.md — GUI breakdown synced (renderer smoke 126→125, integration 7→8 real node count)

Verification

  • GUI: npm test — 254 tests, 246 pass, 8 skipped (live daemon owns fixed port), 0 fail
  • Python: uv run pytest tests/ — 987 passed + 1 skipped (incl. doc-count guards)
  • python -m emrg --help + import OK

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Fresh review of the sidebar rework (rant 2026-08-21T11:44:52):

  • Sidebar.render() (history #conv-list) removed entirely, plus its 5 app.js call sites (boot, session-not-found branch, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained as internal state for switching/title bar.
  • Keyboard nav removed: initKeyboard / clearFocus / kbd-focus gone from sidebar.js; .conv-item.kbd-focus CSS rule removed; <nav id="conv-list"> removed from index.html; highlight() now targets open-sessions only.
  • Open-sessions persistence untouched (gui_state.json + restoreOpenSessions already cover restarts — no gap found).
  • Tests: boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar. Agent.md breakdown synced (merged count 255: renderer smoke 126, integration 8).
  • Master merged in to resolve the Agent.md conflict with #910; verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

1/3.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Re-review (head c884c2a unchanged since previous review):

  • Sidebar.render() (history #conv-list) removed entirely, along with cwdProjectName, initKeyboard, clearFocus, _keyHandler, _focusIdx and the module-level init(); highlight() now targets open-sessions only and the exposed API is just { renderOpenSessions, highlight }.
  • All 5 Sidebar.render(...) call sites removed from app.js (boot, switchSession session-not-found, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained for switching/title bar.
  • <nav id="conv-list"> removed from index.html; .conv-item.kbd-focus CSS removed; ELEMENT_IDS cleaned.
  • Tests: boot test asserts state.sessions; two keyboard-nav tests replaced by a negative test asserting the removal (conv-list / kbd-focus / initKeyboard / clearFocus absent from sidebar.js, no conv-list nav in index.html); scoped-highlight test updated for single-list sidebar. Agent.md merged count 255 (renderer smoke 126, integration 8).
  • Verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

2/3.

@pm25coder

Copy link
Copy Markdown
Collaborator

Independent test report (Contributor, pm25coder):

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

3rd consecutive review (head c884c2a, MERGEABLE/CLEAN, CI test + test-windows PASS):

  • Fresh local verification on the branch: GUI npm test 255 total (247 pass / 0 fail / 8 skipped — matches Agent.md update 256→255), pytest 987 passed + 1 skipped, import + CLI OK.
  • Sidebar.render() (history #conv-list) removed entirely with its keyboard-nav machinery (initKeyboard/clearFocus/_keyHandler/_focusIdx/cwdProjectName); 5 app.js call sites cleaned; index.html drops the conv-list nav; components.css drops the kbd-focus style; highlight() now targets only the open-sessions area — consistent with the new sidebar design (rant 11:44:52).

3/3.

@argszero
argszero merged commit 565a7a5 into masterAug 21, 2026
2 checks passed
@argszero
argszero deleted the feature/gui-sidebar-remove-history-list branch August 21, 2026 05:10
argszero added a commit that referenced this pull request Aug 21, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Sign up for freeto 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.

2 participants

@argszero@pm25coder
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) by argszero · Pull Request #911 · argszero/emrg · GitHub
Skip to content

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) - #911

Merged
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list
Aug 21, 2026
Merged

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52)#911
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Fixes rant 2026-08-21T11:44:52 — GUI sidebar rework:

  1. Remove the history session list: the sidebar now shows only the "Open Sessions" list. Sidebar.render() (which rendered the #conv-list history list) is removed entirely along with all 5 call sites in app.js (boot init, switchSession session-not-found branch, refreshSessions, and the sessions / sessions_list broadcast handlers — state.sessions is still kept as internal state for session switching and the title bar). The <nav id="conv-list"> element is removed from index.html.

  2. Remove keyboard navigation: initKeyboard / clearFocus / kbd-focus are gone from sidebar.js (the ↑↓/Enter nav was bound to the removed history list), and the .conv-item.kbd-focus CSS rule is removed.

  3. Open-sessions persistence: unchanged — the existing mechanism (gui_state.json + restoreOpenSessions + renderer init.open_sessions) already restores open sessions across restarts; no gap found.

Changes

  • emrg/gui/renderer/js/sidebar.js — drop render(), cwdProjectName, keyboard-nav block; highlight() targets open-sessions only
  • emrg/gui/renderer/js/app.js — remove 5 Sidebar.render(...) call sites (state.sessions retained)
  • emrg/gui/renderer/index.html — remove <nav id="conv-list">
  • emrg/gui/renderer/css/components.css — remove .conv-item.kbd-focus rule
  • emrg/gui/test/renderer.smoke.test.js — boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar
  • Agent.md — GUI breakdown synced (renderer smoke 126→125, integration 7→8 real node count)

Verification

  • GUI: npm test — 254 tests, 246 pass, 8 skipped (live daemon owns fixed port), 0 fail
  • Python: uv run pytest tests/ — 987 passed + 1 skipped (incl. doc-count guards)
  • python -m emrg --help + import OK

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Fresh review of the sidebar rework (rant 2026-08-21T11:44:52):

  • Sidebar.render() (history #conv-list) removed entirely, plus its 5 app.js call sites (boot, session-not-found branch, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained as internal state for switching/title bar.
  • Keyboard nav removed: initKeyboard / clearFocus / kbd-focus gone from sidebar.js; .conv-item.kbd-focus CSS rule removed; <nav id="conv-list"> removed from index.html; highlight() now targets open-sessions only.
  • Open-sessions persistence untouched (gui_state.json + restoreOpenSessions already cover restarts — no gap found).
  • Tests: boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar. Agent.md breakdown synced (merged count 255: renderer smoke 126, integration 8).
  • Master merged in to resolve the Agent.md conflict with #910; verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

1/3.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Re-review (head c884c2a unchanged since previous review):

  • Sidebar.render() (history #conv-list) removed entirely, along with cwdProjectName, initKeyboard, clearFocus, _keyHandler, _focusIdx and the module-level init(); highlight() now targets open-sessions only and the exposed API is just { renderOpenSessions, highlight }.
  • All 5 Sidebar.render(...) call sites removed from app.js (boot, switchSession session-not-found, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained for switching/title bar.
  • <nav id="conv-list"> removed from index.html; .conv-item.kbd-focus CSS removed; ELEMENT_IDS cleaned.
  • Tests: boot test asserts state.sessions; two keyboard-nav tests replaced by a negative test asserting the removal (conv-list / kbd-focus / initKeyboard / clearFocus absent from sidebar.js, no conv-list nav in index.html); scoped-highlight test updated for single-list sidebar. Agent.md merged count 255 (renderer smoke 126, integration 8).
  • Verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

2/3.

@pm25coder

Copy link
Copy Markdown
Collaborator

Independent test report (Contributor, pm25coder):

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

3rd consecutive review (head c884c2a, MERGEABLE/CLEAN, CI test + test-windows PASS):

  • Fresh local verification on the branch: GUI npm test 255 total (247 pass / 0 fail / 8 skipped — matches Agent.md update 256→255), pytest 987 passed + 1 skipped, import + CLI OK.
  • Sidebar.render() (history #conv-list) removed entirely with its keyboard-nav machinery (initKeyboard/clearFocus/_keyHandler/_focusIdx/cwdProjectName); 5 app.js call sites cleaned; index.html drops the conv-list nav; components.css drops the kbd-focus style; highlight() now targets only the open-sessions area — consistent with the new sidebar design (rant 11:44:52).

3/3.

@argszero
argszero merged commit 565a7a5 into masterAug 21, 2026
2 checks passed
@argszero
argszero deleted the feature/gui-sidebar-remove-history-list branch August 21, 2026 05:10
argszero added a commit that referenced this pull request Aug 21, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Sign up for freeto 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.

2 participants

@argszero@pm25coder
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) by argszero · Pull Request #911 · argszero/emrg · GitHub
Skip to content

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) - #911

Merged
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list
Aug 21, 2026
Merged

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52)#911
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Fixes rant 2026-08-21T11:44:52 — GUI sidebar rework:

  1. Remove the history session list: the sidebar now shows only the "Open Sessions" list. Sidebar.render() (which rendered the #conv-list history list) is removed entirely along with all 5 call sites in app.js (boot init, switchSession session-not-found branch, refreshSessions, and the sessions / sessions_list broadcast handlers — state.sessions is still kept as internal state for session switching and the title bar). The <nav id="conv-list"> element is removed from index.html.

  2. Remove keyboard navigation: initKeyboard / clearFocus / kbd-focus are gone from sidebar.js (the ↑↓/Enter nav was bound to the removed history list), and the .conv-item.kbd-focus CSS rule is removed.

  3. Open-sessions persistence: unchanged — the existing mechanism (gui_state.json + restoreOpenSessions + renderer init.open_sessions) already restores open sessions across restarts; no gap found.

Changes

  • emrg/gui/renderer/js/sidebar.js — drop render(), cwdProjectName, keyboard-nav block; highlight() targets open-sessions only
  • emrg/gui/renderer/js/app.js — remove 5 Sidebar.render(...) call sites (state.sessions retained)
  • emrg/gui/renderer/index.html — remove <nav id="conv-list">
  • emrg/gui/renderer/css/components.css — remove .conv-item.kbd-focus rule
  • emrg/gui/test/renderer.smoke.test.js — boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar
  • Agent.md — GUI breakdown synced (renderer smoke 126→125, integration 7→8 real node count)

Verification

  • GUI: npm test — 254 tests, 246 pass, 8 skipped (live daemon owns fixed port), 0 fail
  • Python: uv run pytest tests/ — 987 passed + 1 skipped (incl. doc-count guards)
  • python -m emrg --help + import OK

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Fresh review of the sidebar rework (rant 2026-08-21T11:44:52):

  • Sidebar.render() (history #conv-list) removed entirely, plus its 5 app.js call sites (boot, session-not-found branch, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained as internal state for switching/title bar.
  • Keyboard nav removed: initKeyboard / clearFocus / kbd-focus gone from sidebar.js; .conv-item.kbd-focus CSS rule removed; <nav id="conv-list"> removed from index.html; highlight() now targets open-sessions only.
  • Open-sessions persistence untouched (gui_state.json + restoreOpenSessions already cover restarts — no gap found).
  • Tests: boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar. Agent.md breakdown synced (merged count 255: renderer smoke 126, integration 8).
  • Master merged in to resolve the Agent.md conflict with #910; verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

1/3.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Re-review (head c884c2a unchanged since previous review):

  • Sidebar.render() (history #conv-list) removed entirely, along with cwdProjectName, initKeyboard, clearFocus, _keyHandler, _focusIdx and the module-level init(); highlight() now targets open-sessions only and the exposed API is just { renderOpenSessions, highlight }.
  • All 5 Sidebar.render(...) call sites removed from app.js (boot, switchSession session-not-found, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained for switching/title bar.
  • <nav id="conv-list"> removed from index.html; .conv-item.kbd-focus CSS removed; ELEMENT_IDS cleaned.
  • Tests: boot test asserts state.sessions; two keyboard-nav tests replaced by a negative test asserting the removal (conv-list / kbd-focus / initKeyboard / clearFocus absent from sidebar.js, no conv-list nav in index.html); scoped-highlight test updated for single-list sidebar. Agent.md merged count 255 (renderer smoke 126, integration 8).
  • Verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

2/3.

@pm25coder

Copy link
Copy Markdown
Collaborator

Independent test report (Contributor, pm25coder):

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

3rd consecutive review (head c884c2a, MERGEABLE/CLEAN, CI test + test-windows PASS):

  • Fresh local verification on the branch: GUI npm test 255 total (247 pass / 0 fail / 8 skipped — matches Agent.md update 256→255), pytest 987 passed + 1 skipped, import + CLI OK.
  • Sidebar.render() (history #conv-list) removed entirely with its keyboard-nav machinery (initKeyboard/clearFocus/_keyHandler/_focusIdx/cwdProjectName); 5 app.js call sites cleaned; index.html drops the conv-list nav; components.css drops the kbd-focus style; highlight() now targets only the open-sessions area — consistent with the new sidebar design (rant 11:44:52).

3/3.

@argszero
argszero merged commit 565a7a5 into masterAug 21, 2026
2 checks passed
@argszero
argszero deleted the feature/gui-sidebar-remove-history-list branch August 21, 2026 05:10
argszero added a commit that referenced this pull request Aug 21, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Sign up for freeto 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.

2 participants

@argszero@pm25coder
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) by argszero · Pull Request #911 · argszero/emrg · GitHub
Skip to content

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52) - #911

Merged
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list
Aug 21, 2026
Merged

emrg: GUI sidebar — remove history session list + keyboard nav (rant 2026-08-21T11:44:52)#911
argszero merged 2 commits into
masterfrom
feature/gui-sidebar-remove-history-list

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Fixes rant 2026-08-21T11:44:52 — GUI sidebar rework:

  1. Remove the history session list: the sidebar now shows only the "Open Sessions" list. Sidebar.render() (which rendered the #conv-list history list) is removed entirely along with all 5 call sites in app.js (boot init, switchSession session-not-found branch, refreshSessions, and the sessions / sessions_list broadcast handlers — state.sessions is still kept as internal state for session switching and the title bar). The <nav id="conv-list"> element is removed from index.html.

  2. Remove keyboard navigation: initKeyboard / clearFocus / kbd-focus are gone from sidebar.js (the ↑↓/Enter nav was bound to the removed history list), and the .conv-item.kbd-focus CSS rule is removed.

  3. Open-sessions persistence: unchanged — the existing mechanism (gui_state.json + restoreOpenSessions + renderer init.open_sessions) already restores open sessions across restarts; no gap found.

Changes

  • emrg/gui/renderer/js/sidebar.js — drop render(), cwdProjectName, keyboard-nav block; highlight() targets open-sessions only
  • emrg/gui/renderer/js/app.js — remove 5 Sidebar.render(...) call sites (state.sessions retained)
  • emrg/gui/renderer/index.html — remove <nav id="conv-list">
  • emrg/gui/renderer/css/components.css — remove .conv-item.kbd-focus rule
  • emrg/gui/test/renderer.smoke.test.js — boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar
  • Agent.md — GUI breakdown synced (renderer smoke 126→125, integration 7→8 real node count)

Verification

  • GUI: npm test — 254 tests, 246 pass, 8 skipped (live daemon owns fixed port), 0 fail
  • Python: uv run pytest tests/ — 987 passed + 1 skipped (incl. doc-count guards)
  • python -m emrg --help + import OK

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Fresh review of the sidebar rework (rant 2026-08-21T11:44:52):

  • Sidebar.render() (history #conv-list) removed entirely, plus its 5 app.js call sites (boot, session-not-found branch, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained as internal state for switching/title bar.
  • Keyboard nav removed: initKeyboard / clearFocus / kbd-focus gone from sidebar.js; .conv-item.kbd-focus CSS rule removed; <nav id="conv-list"> removed from index.html; highlight() now targets open-sessions only.
  • Open-sessions persistence untouched (gui_state.json + restoreOpenSessions already cover restarts — no gap found).
  • Tests: boot test now asserts state.sessions; 2 keyboard-nav tests replaced by a negative test asserting the removal; scoped-highlight test updated for single-list sidebar. Agent.md breakdown synced (merged count 255: renderer smoke 126, integration 8).
  • Master merged in to resolve the Agent.md conflict with #910; verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

1/3.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Re-review (head c884c2a unchanged since previous review):

  • Sidebar.render() (history #conv-list) removed entirely, along with cwdProjectName, initKeyboard, clearFocus, _keyHandler, _focusIdx and the module-level init(); highlight() now targets open-sessions only and the exposed API is just { renderOpenSessions, highlight }.
  • All 5 Sidebar.render(...) call sites removed from app.js (boot, switchSession session-not-found, refreshSessions, sessions/sessions_list broadcast handlers); state.sessions retained for switching/title bar.
  • <nav id="conv-list"> removed from index.html; .conv-item.kbd-focus CSS removed; ELEMENT_IDS cleaned.
  • Tests: boot test asserts state.sessions; two keyboard-nav tests replaced by a negative test asserting the removal (conv-list / kbd-focus / initKeyboard / clearFocus absent from sidebar.js, no conv-list nav in index.html); scoped-highlight test updated for single-list sidebar. Agent.md merged count 255 (renderer smoke 126, integration 8).
  • Verified on merged head: GUI npm test 255 (247 pass + 8 skipped), Python pytest 987 passed + 1 skipped incl. doc-count guards, import + CLI OK. CI test + test-windows PASS.

2/3.

@pm25coder

Copy link
Copy Markdown
Collaborator

Independent test report (Contributor, pm25coder):

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle

3rd consecutive review (head c884c2a, MERGEABLE/CLEAN, CI test + test-windows PASS):

  • Fresh local verification on the branch: GUI npm test 255 total (247 pass / 0 fail / 8 skipped — matches Agent.md update 256→255), pytest 987 passed + 1 skipped, import + CLI OK.
  • Sidebar.render() (history #conv-list) removed entirely with its keyboard-nav machinery (initKeyboard/clearFocus/_keyHandler/_focusIdx/cwdProjectName); 5 app.js call sites cleaned; index.html drops the conv-list nav; components.css drops the kbd-focus style; highlight() now targets only the open-sessions area — consistent with the new sidebar design (rant 11:44:52).

3/3.

@argszero
argszero merged commit 565a7a5 into masterAug 21, 2026
2 checks passed
@argszero
argszero deleted the feature/gui-sidebar-remove-history-list branch August 21, 2026 05:10
argszero added a commit that referenced this pull request Aug 21, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Sign up for freeto 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.

2 participants

@argszero@pm25coder