From edc0ebd997c900fbd93419b7acd7854acd2d9861 Mon Sep 17 00:00:00 2001 From: cire <134991075+ciregenz@users.noreply.github.com> Date: Sun, 14 Jun 2026 01:32:00 -0700 Subject: [PATCH] Revert "[aidan] bug: dashboard not renaming during first run" This reverts commit 2d7be0e8ac11af4bb5cd8a75734a86aa1cfad6fe. --- backend/apps/dashboards/dashboards.py | 8 ++++---- backend/tests/test_disk_resilience.py | 2 +- .../app/pages/Dashboard/hooks/lifecycle/useAgentSpawn.ts | 7 ++++++- .../Dashboard/hooks/lifecycle/useDashboardLifecycle.ts | 7 +++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/backend/apps/dashboards/dashboards.py b/backend/apps/dashboards/dashboards.py index 36a02648..81dbf0c1 100644 --- a/backend/apps/dashboards/dashboards.py +++ b/backend/apps/dashboards/dashboards.py @@ -61,8 +61,8 @@ def _delete(dashboard_id: str): os.remove(path) -def migrate_if_needed(): - """One-time migration: if no dashboards exist, create the default from old layout.""" +def _migrate_if_needed(): + """One-time migration: if no dashboards exist, create 'Dashboard 1' from old layout.""" existing = _load_all() if existing: return @@ -80,7 +80,7 @@ def migrate_if_needed(): except Exception: logger.exception("Failed to read old layout.json, using empty layout") - dashboard = Dashboard(name="Untitled Dashboard", layout=layout) + dashboard = Dashboard(name="Dashboard 1", layout=layout) _save(dashboard) logger.info(f"Created default dashboard: {dashboard.id}") @@ -105,7 +105,7 @@ def migrate_if_needed(): @asynccontextmanager async def dashboards_lifespan(): os.makedirs(DATA_DIR, exist_ok=True) - migrate_if_needed() + _migrate_if_needed() yield diff --git a/backend/tests/test_disk_resilience.py b/backend/tests/test_disk_resilience.py index f1993c34..9b37cbae 100644 --- a/backend/tests/test_disk_resilience.py +++ b/backend/tests/test_disk_resilience.py @@ -143,7 +143,7 @@ def test_migration_survives_corrupt_session(tmp_path, monkeypatch): (sess_dir / "good.json").write_text(json.dumps({"id": "good"})) (sess_dir / "bad.json").write_text("{ truncated ,,,") - dmod.migrate_if_needed() # must not raise despite the corrupt session + dmod._migrate_if_needed() # must not raise despite the corrupt session dashboards = dmod._load_all() assert len(dashboards) == 1 diff --git a/frontend/src/app/pages/Dashboard/hooks/lifecycle/useAgentSpawn.ts b/frontend/src/app/pages/Dashboard/hooks/lifecycle/useAgentSpawn.ts index e1ff4cbc..7a8c3a18 100644 --- a/frontend/src/app/pages/Dashboard/hooks/lifecycle/useAgentSpawn.ts +++ b/frontend/src/app/pages/Dashboard/hooks/lifecycle/useAgentSpawn.ts @@ -205,7 +205,12 @@ export function useAgentSpawn({ (s) => s.status !== 'draft' && s.dashboard_id === dashboardId, ).length; const NAME_GEN_TRIGGERS = [1, 3, 6]; - if (NAME_GEN_TRIGGERS.includes(agentCount)) { + const currentDash = store.getState().dashboards.items[dashboardId]; + const canAutoName = + currentDash && + (currentDash.auto_named || currentDash.name === 'Untitled Dashboard'); + + if (NAME_GEN_TRIGGERS.includes(agentCount) && canAutoName) { dispatch(generateDashboardName(dashboardId)); } } diff --git a/frontend/src/app/pages/Dashboard/hooks/lifecycle/useDashboardLifecycle.ts b/frontend/src/app/pages/Dashboard/hooks/lifecycle/useDashboardLifecycle.ts index cfc3a428..b0b51f65 100644 --- a/frontend/src/app/pages/Dashboard/hooks/lifecycle/useDashboardLifecycle.ts +++ b/frontend/src/app/pages/Dashboard/hooks/lifecycle/useDashboardLifecycle.ts @@ -255,13 +255,16 @@ export function useDashboardLifecycle({ const namedOnFirstMessageRef = useRef(null); useEffect(() => { - if (!dashboardId) return; + if (!dashboardId || !layoutInitialized) return; if (namedOnFirstMessageRef.current === dashboardId) return; + const dash = store.getState().dashboards.items[dashboardId]; + if (!dash) return; + if (!dash.auto_named && dash.name !== 'Untitled Dashboard') return; const hasUserMessage = Object.values(sessions).some( (s) => s.dashboard_id === dashboardId && s.messages?.some((m) => m.role === 'user'), ); if (!hasUserMessage) return; namedOnFirstMessageRef.current = dashboardId; dispatch(generateDashboardName(dashboardId)); - }, [sessions, dashboardId, dispatch]); + }, [sessions, dashboardId, layoutInitialized, dispatch]); }