Refactor Terminal Dashboard: Remove Sessions Panel, Update Toolbar and Page Layout

- Removed the Sessions panel from the DashboardToolbar component, making the Sessions sidebar always visible.
- Updated the TerminalDashboardPage layout to include a fixed session sidebar alongside the terminal grid.
- Adjusted related imports and state management for session counts.
- Added new document standards for YAML frontmatter schema, naming conventions, and content structure.
- Introduced quality gates for spec-generator outputs, detailing scoring dimensions and per-phase criteria.
- Created templates for architecture documents, epics & stories, product briefs, and requirements PRD.
This commit is contained in:
catlog22
2026-02-14 22:43:42 +08:00
parent 75558dc411
commit b7bd433263
13 changed files with 2058 additions and 61 deletions

View File

@@ -1,10 +1,11 @@
// ========================================
// Terminal Dashboard Page (V2)
// ========================================
// Terminal-first layout with floating panels.
// Terminal-first layout with fixed session sidebar + floating panels.
// Left sidebar: SessionGroupTree + AgentList (always visible)
// Main area: TerminalGrid (tmux-style split panes)
// Top: DashboardToolbar with panel toggles and layout presets
// Floating panels: Sessions, Issues, Queue, Inspector (overlay, mutually exclusive)
// Floating panels: Issues, Queue, Inspector (overlay, mutually exclusive)
import { useState, useCallback } from 'react';
import { useIntl } from 'react-intl';
@@ -33,7 +34,7 @@ export function TerminalDashboardPage() {
}, []);
return (
<div className="flex flex-col h-[calc(100vh-56px)] overflow-hidden">
<div className="-m-4 md:-m-6 flex flex-col h-[calc(100vh-56px)] overflow-hidden">
<AssociationHighlightProvider>
{/* Global toolbar */}
<DashboardToolbar
@@ -41,20 +42,10 @@ export function TerminalDashboardPage() {
onTogglePanel={togglePanel}
/>
{/* Terminal grid (flex-1, takes all remaining space) */}
<div className="flex-1 min-h-0">
<TerminalGrid />
</div>
{/* Floating panels (conditional, overlay) */}
<FloatingPanel
isOpen={activePanel === 'sessions'}
onClose={closePanel}
title={formatMessage({ id: 'terminalDashboard.toolbar.sessions' })}
side="left"
width={280}
>
<div className="flex flex-col h-full">
{/* Main content: session sidebar + terminal grid */}
<div className="flex flex-1 min-h-0">
{/* Fixed session sidebar */}
<div className="w-[240px] shrink-0 flex flex-col">
<div className="flex-1 min-h-0 overflow-y-auto">
<SessionGroupTree />
</div>
@@ -62,8 +53,14 @@ export function TerminalDashboardPage() {
<AgentList />
</div>
</div>
</FloatingPanel>
{/* Terminal grid (takes remaining space) */}
<div className="flex-1 min-h-0">
<TerminalGrid />
</div>
</div>
{/* Floating panels (conditional, overlay) */}
<FloatingPanel
isOpen={activePanel === 'issues'}
onClose={closePanel}