diff --git a/frontend/src/index.css b/frontend/src/index.css
index 002d389..b032ef8 100644
--- a/frontend/src/index.css
+++ b/frontend/src/index.css
@@ -225,3 +225,84 @@ body {
color: var(--color-fox-500);
background: rgba(255, 109, 0, 0.1);
}
+
+/* ─── Custom Scrollbar ───────────────────────────────────────────────────── */
+
+.custom-scrollbar {
+ scrollbar-width: thin;
+ scrollbar-color: var(--color-surface-500) transparent;
+}
+
+.custom-scrollbar::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+
+.custom-scrollbar::-webkit-scrollbar-track {
+ background: transparent;
+}
+
+.custom-scrollbar::-webkit-scrollbar-thumb {
+ background: var(--color-surface-500);
+ border-radius: 4px;
+}
+
+.custom-scrollbar::-webkit-scrollbar-thumb:hover {
+ background: var(--color-fox-600);
+}
+
+/* ─── CodeMirror Editor Fixes ────────────────────────────────────────────── */
+
+.cm-editor {
+ outline: none !important;
+ font-family: 'Fira Code', 'Consolas', 'Monaco', monospace !important;
+}
+
+.cm-scroller {
+ overflow: auto !important;
+ scrollbar-width: thin;
+ scrollbar-color: var(--color-surface-500) transparent;
+}
+
+.cm-scroller::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+
+.cm-scroller::-webkit-scrollbar-track {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+.cm-scroller::-webkit-scrollbar-thumb {
+ background: var(--color-surface-500);
+ border-radius: 4px;
+}
+
+.cm-scroller::-webkit-scrollbar-thumb:hover {
+ background: var(--color-fox-600);
+}
+
+.cm-content {
+ padding: 12px 0 !important;
+}
+
+.cm-line {
+ padding: 0 12px !important;
+}
+
+/* ─── Fullscreen Overlay ─────────────────────────────────────────────────── */
+
+.fullscreen-overlay {
+ position: fixed !important;
+ top: 0 !important;
+ left: 0 !important;
+ right: 0 !important;
+ bottom: 0 !important;
+ width: 100vw !important;
+ height: 100vh !important;
+ z-index: 99999 !important;
+ margin: 0 !important;
+ padding: 0 !important;
+ border-radius: 0 !important;
+ background: var(--color-surface-900) !important;
+}
diff --git a/frontend/src/pages/OpenClaw.tsx b/frontend/src/pages/OpenClaw.tsx
index 13303a2..2536ce1 100644
--- a/frontend/src/pages/OpenClaw.tsx
+++ b/frontend/src/pages/OpenClaw.tsx
@@ -397,36 +397,38 @@ function AgentMemoryViewer({ agentName }: { agentName: string }) {
-
- {memory.timeline.length === 0 ? (
-
La mémoire existe mais elle est actuellement vide.
- ) : (
-
- {memory.timeline.map((item: Record
, idx: number) => (
-
- {/* Node dot */}
-
-
- {/* Content Card */}
-
-
-
- {item.timestamp || item.created_at || 'Inconnu'}
-
- {(item.type || item.event_type || item.role) && (
-
- {item.type || item.event_type || item.role}
+
+
+ {memory.timeline.length === 0 ? (
+
La mémoire existe mais elle est actuellement vide.
+ ) : (
+
+ {memory.timeline.map((item: Record
, idx: number) => (
+
+ {/* Node dot */}
+
+
+ {/* Content Card */}
+
+
+
+ {item.timestamp || item.created_at || 'Inconnu'}
- )}
+ {(item.type || item.event_type || item.role) && (
+
+ {item.type || item.event_type || item.role}
+
+ )}
+
+
+ {item.content || item.message || JSON.stringify(item, null, 2)}
+
-
- {item.content || item.message || JSON.stringify(item, null, 2)}
-
-
- ))}
-
- )}
+ ))}
+
+ )}
+
);
@@ -626,9 +628,9 @@ function AgentsTab() {
{/* Identity File Editor */}
{activeFile?.agent === agent.name && (
-
+
workspace/{agent.name}/{activeFile.file}