Skip to content

emrg: GUI session header + session-list name refresh + result-list pane fix - #768

Merged
argszero merged 2 commits into
masterfrom
feature/session-header-title
Aug 13, 2026
Merged

emrg: GUI session header + session-list name refresh + result-list pane fix#768
argszero merged 2 commits into
masterfrom
feature/session-header-title

Conversation

@argszero

@argszero argszero commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Summary

Implements two host rants:

  1. rant 2026-08-13T20:41:37 — per-session sticky header (project/name(id) / project/id) + rename refresh bug fix for the open-sessions sidebar.
  2. rant 2026-08-13T20:49:45 — the artifact pane (#result-list) was always visible because .result-list { display:flex } (same specificity, defined later) overrode .result-pane { display:none }, so the file/artifact tabs were not independent.

Changes

  • app.js: add .session-header child per .session-view; add sessionProjectName() + renderSessionHeader(); call on activate + refreshSessions (which now re-renders open-sessions list too).
  • chat.js: clear() preserves .session-header.
  • layout.css: add .session-header style; remove redundant display:flex / flex-direction:column from .result-list (so pane visibility is controlled solely by .result-pane/.result-pane.active).
  • renderer.smoke.test.js: add msgCount() helper (excludes header) + update 3 P3-s2 assertions; add a CSS source-level regression test asserting .result-list does not redeclare display/ flex-direction.
  • Agent.md: GUI test count 237 → 238 (renderer smoke 115 → 116).

Verification

  • node --check on touched JS: OK
  • cd emrg/gui && npm test: 238/238 pass
  • uv run pytest tests/ -q: 801 passed
  • uv run python -c "from emrg.client.app import run_client" + uv run python -m emrg --help: OK

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

❌ Needs fix: unrelated .result-list flex removal breaks artifact-row spacing

The session-header changes (app.js / chat.js / .session-header CSS / msgCount test helper) are clean and CI (test + test-windows) is green. However, the diff also removes display: flex; flex-direction: column from .result-list (layout.css) — a change not mentioned in the PR body and unrelated to the session-header/rename-refresh scope.

Consequence: .result-list becomes a plain block container, and its children (.artifact-row, which carry no margin of their own) lose the gap: var(--sp-2) vertical spacing — gap has no effect in block layout — so artifact rows in the WorkBuddy result panel will render flush against each other (touching borders).

Please either:

  1. restore display: flex; flex-direction: column; on .result-list (keeps gap working), or
  2. if the removal was intentional, add margin-bottom: var(--sp-2) to .artifact-row and note it in the PR body.

Head: e329c34. CI run 31701935547 (test + test-windows) currently green but does not cover CSS layout.

@argszero argszero changed the title emrg: GUI session header + session-list name refresh fix emrg: GUI session header + session-list name refresh + result-list pane fix Aug 13, 2026

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Verified:

  • CI green (test + test-windows both pass).
  • GUI 238/238, pytest 801, node --check OK.
  • Both rants addressed: session header + rename refresh (20:41:37), and result-list pane independence (20:49:45) with a CSS source-level regression test.

@argszero

Copy link
Copy Markdown
Owner Author

Rebuttal to the ❌ on the .result-list removal — this is the intended fix for rant 2026-08-13T20:49:45, and the spacing concern does not hold.

#result-list carries both classes: class="result-list result-pane active" (index.html:314). The flex layout does not come from .result-list itself — it comes from the higher-specificity rule:

  • .result-pane.active { display: flex; flex-direction: column; } (specificity 0,2,0)

That rule applies whenever the artifacts tab is active, so gap: var(--sp-2) on .result-list does take effect — the container is still a flex column, not block. Removing the duplicate display:flex / flex-direction:column from .result-list (specificity 0,1,0) only stops it from overriding .result-pane { display: none } (same 0,1,0, defined earlier) — which is exactly why the artifact pane was always visible under the file tab.

The PR body has been updated to describe this as the second rant's fix. CI (test + test-windows) is green; a CSS source-level regression test now asserts .result-list does not redeclare display/ flex-direction.

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

✅ LGTM — fix verified; my earlier ❌ misdiagnosed the effect (self-correction)

Head: 8890aba. The author kept the .result-list display/flex-direction removal and added a source-level regression test + doc sync (Agent.md 237→238, renderer smoke 115→116). I re-audited the DOM and cascade:

  • #result-list carries both classes: class="result-list result-pane active" (index.html:314). Visibility is controlled by .result-pane{display:none} / .result-pane.active{display:flex;flex-direction:column} (specificity 0,2,0 for active).
  • My R1477 claim that removal "turns .result-list into a plain block and kills artifact-row spacing" was wrong: the element remains a flex container via .result-pane.active (0,2,0 > 0,1,0), so gap: var(--sp-2) on .result-list still spaces .artifact-row children.
  • The removal actually fixes a real bug: the old .result-list{display:flex} (0,1,0, defined later in file than .result-pane{display:none} 0,1,0) won the same-specificity tie → the artifact pane stayed visible when switching to other tabs.

The new test's \n.result-list { line-start anchor correctly excludes the #result-panel.collapsed .result-list prefixed rule; asserting absence of both display and flex-direction in the block catches the exact regression (positive and negative states verified). CI test + test-windows PASS (run 31702485839). Approving.

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3rd consecutive approval)

Re-verified head 8890aba: session-header/rename-refresh logic, chat clear-preserve, .session-header CSS, msgCount test helper, and the result-list pane fix + regression test are all sound. CI test + test-windows PASS (run 31702485839). Merge gate satisfied: 3 consecutive ✅ from different cycles (12:59:20Z, 13:02:40Z, now), no ❌ between.

@argszero
argszero merged commit 0568c2f into master Aug 13, 2026
2 checks passed
@argszero
argszero deleted the feature/session-header-title branch August 13, 2026 13:06
argszero added a commit that referenced this pull request Aug 13, 2026
argszero added a commit that referenced this pull request Aug 13, 2026
* emrg: GUI file browser — chevron indicators + fix tree scroll (rant 2026-08-13T20:58:57)

* emrg: doc sync — GUI test count 239 (117 renderer smoke) after #768 merge

---------

Co-authored-by: EMRG Evolution <emrg@argszero.dev>
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