diff --git a/frontend/dashboard.html b/frontend/dashboard.html
index 056a756..f78b6c7 100644
--- a/frontend/dashboard.html
+++ b/frontend/dashboard.html
@@ -444,7 +444,14 @@ function renderTaskDetail(projects, tasks, agents, terminals) {
${activeTask.status === 'completed' ? '
🎉 任务全部完成!
' : ''}
`;
- // Session status bar (append after main content)
+ // Terminal + session info (declare before use)
+ const projAgents = (project.agents || []).map(n => agents[n]).filter(Boolean);
+ const sessionName = projAgents[0]?.tmux_session || selectedProject.toLowerCase().replace(/\s+/g, '-');
+ document.getElementById('term-label').textContent = sessionName;
+ const termContent = terminals[sessionName]?.content || 'No terminal data';
+ document.getElementById('terminal').textContent = termContent;
+
+ // Session status bar
const sessionRunning = projAgents.some(a => a.tmux?.running);
const claudeActive = termContent.includes('❯') && !termContent.includes('Welcome back');
@@ -463,13 +470,6 @@ function renderTaskDetail(projects, tasks, agents, terminals) {
sessionHtml += '';
document.getElementById('task-detail').innerHTML += sessionHtml;
-
- // Terminal
- const projAgents = (project.agents || []).map(n => agents[n]).filter(Boolean);
- const sessionName = projAgents[0]?.tmux_session || selectedProject.toLowerCase().replace(/\s+/g, '-');
- document.getElementById('term-label').textContent = sessionName;
- const termContent = terminals[sessionName]?.content || '暂无终端数据';
- document.getElementById('terminal').textContent = termContent;
document.getElementById('terminal').scrollTop = document.getElementById('terminal').scrollHeight;
// Show/hide confirm buttons based on prompt detection