Adopt design comps: dark system, new landing/auth, dashboard shell + canvas
Re-skins the whole app to the dark design comps and wires the new surfaces to
the backend (the /api proxy + auth + schemas are unchanged).
Design system:
- globals.css: remapped @theme tokens to the comp palette (#08080a base, coral
#ff6f61, status cyan/green/amber/purple/teal); token names preserved
- MeshMark: triangle + 3-node brand glyph; cm-flow/cm-blink/cm-halo keyframes
- marketing flipped light → dark
Backend (migration 0012):
- agents.model_binding (persisted on team deploy) + GET /api/claws/{id}/runtime-config
- routine_runs table + scheduler journaling + GET /api/routines/runs
- GET /api/claws/{id}/compartments (anatomy aggregate)
- GET /api/structure/stats (workspace counts)
Frontend:
- Landing: full dark marketing page (hero constellation, deploy ladder,
12-topology taxonomy, recursive execution, compare/Pareto, safety, self-host)
- Auth: dark split-panel AuthShell + comp LoginForm + Clerk SignIn themed dark
- Dashboard shell: TopBar (breadcrumb + live stats + deploy + user) + StatusBar
(runner/sandbox/doors); rail slimmed to 60px + 252px context column
- ConstellationCanvas (radial recursive) replaces the graph view in StructureCanvas;
selecting a claw opens ComputerPanel (apps/now-running/dock); RoutinesPanel
- Claw anatomy view (/claws/[id]/anatomy) from compartments + runtime-config
Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
3eca4ed70c
commit
540c74f42e
@@ -3,7 +3,7 @@
|
||||
//! drives a REAL run through the runtime in the routine's dedicated
|
||||
//! session — gated tools inside a routine still hit the approval queue.
|
||||
|
||||
use cm_db::repo::{agents, routines, sessions};
|
||||
use cm_db::repo::{agents, routine_runs, routines, sessions};
|
||||
use cm_runtime::Runtime;
|
||||
use sqlx::PgPool;
|
||||
use time::OffsetDateTime;
|
||||
@@ -56,7 +56,16 @@ impl Scheduler {
|
||||
Some(existing) => existing,
|
||||
None => sessions::create(&self.pool, agent_id, agent.workspace_id, &title).await?,
|
||||
};
|
||||
let _ = self.runtime.send_message(session.id, message).await;
|
||||
// Journal the firing for the dashboard routines panel.
|
||||
let run_id = routine_runs::start(&self.pool, routine.id).await.ok();
|
||||
let res = self.runtime.send_message(session.id, message).await;
|
||||
if let Some(rid) = run_id {
|
||||
let (status, err) = match &res {
|
||||
Ok(_) => ("ok", None),
|
||||
Err(e) => ("error", Some(format!("{e}"))),
|
||||
};
|
||||
let _ = routine_runs::finish(&self.pool, rid, status, err.as_deref()).await;
|
||||
}
|
||||
}
|
||||
Ok(due.len())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user