Files
fusion/packages/dashboard/app/components/ActivityLogModal.css
gsxdsm 4850e4309e fix(dashboard): apply code-review fixes + live UI tweaks
Code review (8 reviewers) fixes:
- P1: embedded board task-detail now passes onRequestClose so delete/merge/retry dismiss the panel (no ghost task).
- P1: RightDock + TerminalModal drag handlers add pointercancel + unmount teardown (no leaked document listeners / rAF / stuck userSelect); remove dead onOpenChange prop.
- Planning slot DOM-poll interval now caps (self-cancels on mobile); heartbeat slider persist debounced + mounted-guarded.
- Cleanup: remove dead ViewHeader-migration CSS (Skills/Insights), extract shared GithubIcon, move Activity Log embedded CSS to ActivityLogModal.css, FNXC date-format fixes, AGENTS lazy-view note.
- Update stale RightDock roster tests + LeftSidebarNav 'Compound Eng' test to current behavior.

Live UI tweaks:
- Default load lands on board, never the Command Center Dashboard.
- View Board/View Agents moved to the Command Center Overview tab (under the live-activity strip).
- Heartbeat card full-width with spaced, wrapping controls.
- Dev Server panel scrolls in the dock; ChatView right-pane title takes the full line.
- Files pop-out renders deterministic left-right two-pane.
- Mailbox list pane narrower + narrow by default; Add Goal button height matches the Compound stage button; Memory Working-Memory tab no longer overlaps; Skills view fills full width.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:57:10 -07:00

100 lines
3.3 KiB
CSS

/*
FNXC:RightDockEmbedded 2026-06-22-12:00:
Activity Log embedded (right-dock) styles live here with the ActivityLogModal component. These rules were previously appended to ScriptsModal.css by mistake; the gm/automation rules stay in ScriptsModal.css. The base .activity-log-* modal rules still live in ScriptsModal.css (imported by ActivityLogModal.tsx) pending a full extraction.
*/
/*
FNXC:RightDockEmbedded 2026-06-22-00:00:
Right-dock redesign renders the activity log inline inside the dock container instead of as a fixed popup overlay.
The embedded root is a plain flow box that fills the dock; the inner panel sheds overlay chrome (fixed sizing, shadow, radius, resize) and fills 100% of the host so the dock owns the frame and its own header/close.
*/
.activity-log-embedded.right-dock-embedded-view {
display: flex;
width: 100%;
height: 100%;
min-height: 0;
}
.activity-log-modal--embedded {
width: 100%;
height: 100%;
max-width: none;
max-height: none;
box-shadow: none;
border-radius: 0;
resize: none;
/*
FNXC:RightDockEmbedded 2026-06-22-00:00:
The dock is narrow (~280-420px) while the viewport stays desktop, so the view's @media (max-width:768px) mobile
rules never fire. Make the embedded panel an inline-size query container so the dock width — not the viewport —
drives the mobile single-column layout below. See the @container activity-log-embedded block below.
*/
container-type: inline-size;
container-name: activity-log-embedded;
}
/*
FNXC:RightDockEmbedded 2026-06-22-00:00:
Mirror the phone-width (@media max-width:768px) activity-log layout-stacking rules for the narrow dock, scoped to the
embedded variant. Header wraps (title + close on top row, actions/filters stack full-width), filters/selects go 100%,
the active-filters bar wraps, and entry headers/details/text wrap instead of overflowing horizontally. Only layout
stacking is mirrored; behavior and the real @media rules are untouched.
*/
@container activity-log-embedded (max-width: 560px) {
.activity-log-modal--embedded .activity-log-header {
flex-wrap: wrap;
gap: var(--space-sm);
padding: var(--space-md) var(--space-lg);
}
.activity-log-modal--embedded .activity-log-title {
flex: 1 1 auto;
order: 0;
}
.activity-log-modal--embedded .activity-log-actions {
flex: 1 1 100%;
flex-wrap: wrap;
gap: var(--space-xs);
order: 2;
}
.activity-log-modal--embedded .activity-log-filter,
.activity-log-modal--embedded .activity-log-filter--project {
flex: 1 1 0;
min-width: 0;
}
.activity-log-modal--embedded .activity-log-filter-select {
width: 100%;
}
.activity-log-modal--embedded .activity-log-active-filters {
flex-wrap: wrap;
padding: var(--space-sm) var(--space-lg);
gap: var(--space-xs);
}
.activity-log-modal--embedded .activity-log-clear-filters {
margin-left: 0;
}
.activity-log-modal--embedded .activity-log-content {
padding: var(--space-md) var(--space-lg);
}
.activity-log-modal--embedded .activity-log-entry-header {
flex-wrap: wrap;
gap: var(--space-xs);
}
.activity-log-modal--embedded .activity-log-entry-details {
flex-wrap: wrap;
word-break: break-word;
}
.activity-log-modal--embedded .activity-log-entry-text {
word-break: break-word;
}
}