Skip to content

Commit 6473d7c

Browse files
authored
Merge pull request #5 from O-Labz/feat/improve-memory-scrolling-and-timestamps
feat(dashboard): improve Memory panel scrolling and fix timestamp dis…
2 parents 8c62338 + ae40842 commit 6473d7c

7 files changed

Lines changed: 37 additions & 7 deletions

File tree

dashboard/src/components/eml/DriftPanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export function DriftPanel({ repositoryId }: { repositoryId: string | null }) {
3535
emptyLabel="No drift detected. Architecture matches declared rules."
3636
/>
3737
{!loading && !error && !disabled && violations.length > 0 && (
38-
<ul className="space-y-2 max-h-[28rem] overflow-y-auto pr-1">
38+
<ul className="space-y-2 max-h-[36rem] overflow-y-auto pr-2 scrollable-panel">
3939
{violations.map((v, i) => (
4040
<li key={`${v.ruleId}-${i}`} className="p-3 rounded-xl bg-error/5 border border-error/20">
4141
<div className="flex items-center gap-2 mb-1">

dashboard/src/components/eml/GapsPanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export function GapsPanel({ repositoryId }: { repositoryId: string | null }) {
3030
emptyLabel="No knowledge gaps detected."
3131
/>
3232
{!loading && !error && !disabled && gaps.length > 0 && (
33-
<ul className="space-y-2 max-h-[28rem] overflow-y-auto pr-1">
33+
<ul className="space-y-2 max-h-[36rem] overflow-y-auto pr-2 scrollable-panel">
3434
{gaps.map((g) => (
3535
<li key={g.entityRef} className="p-3 rounded-xl border border-outline-variant/15">
3636
<div className="flex items-center justify-between gap-3">

dashboard/src/components/eml/IntentsPanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export function IntentsPanel({ repositoryId }: { repositoryId: string | null })
2626
emptyLabel="No active goals tracked."
2727
/>
2828
{!loading && !error && !disabled && intents.length > 0 && (
29-
<ul className="space-y-2 max-h-[28rem] overflow-y-auto pr-1">
29+
<ul className="space-y-2 max-h-[36rem] overflow-y-auto pr-2 scrollable-panel">
3030
{intents.map((it) => (
3131
<li key={it.memoryId} className="p-3 rounded-xl border border-outline-variant/15">
3232
<div className="flex items-center justify-between gap-3">

dashboard/src/components/eml/MemoryList.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export function MemoryList({ repositoryId }: { repositoryId: string | null }) {
6464
emptyLabel="No memories captured yet."
6565
/>
6666
{!loading && !error && !disabled && results.length > 0 && (
67-
<ul className="space-y-3 max-h-[28rem] overflow-y-auto pr-1">
67+
<ul className="space-y-3 max-h-[36rem] overflow-y-auto pr-2 scrollable-panel">
6868
{results.map((m) => (
6969
<li
7070
key={m.id}

dashboard/src/components/eml/TimelinePanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export function TimelinePanel({ repositoryId }: { repositoryId: string | null })
3030
emptyLabel="No timeline events yet."
3131
/>
3232
{!loading && !error && !disabled && entries.length > 0 && (
33-
<ol className="relative border-l border-outline-variant/30 ml-2 space-y-4 max-h-[28rem] overflow-y-auto">
33+
<ol className="relative border-l border-outline-variant/30 ml-2 space-y-4 max-h-[36rem] overflow-y-auto pr-2 scrollable-panel">
3434
{entries.map((e) => (
3535
<li key={`${e.kind}-${e.id}`} className="ml-4">
3636
<span

dashboard/src/index.css

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,33 @@ body {
109109
-webkit-font-smoothing: antialiased;
110110
-moz-osx-font-smoothing: grayscale;
111111
}
112+
113+
/* Custom Scrollbar Styling */
114+
.scrollable-panel {
115+
scrollbar-width: thin;
116+
scrollbar-color: rgba(113, 124, 130, 0.3) transparent;
117+
}
118+
119+
.scrollable-panel::-webkit-scrollbar {
120+
width: 8px;
121+
}
122+
123+
.scrollable-panel::-webkit-scrollbar-track {
124+
background: transparent;
125+
}
126+
127+
.scrollable-panel::-webkit-scrollbar-thumb {
128+
background-color: rgba(113, 124, 130, 0.3);
129+
border-radius: 4px;
130+
border: 2px solid transparent;
131+
background-clip: padding-box;
132+
}
133+
134+
.scrollable-panel::-webkit-scrollbar-thumb:hover {
135+
background-color: rgba(113, 124, 130, 0.5);
136+
}
137+
138+
/* Smooth scrolling behavior */
139+
.scrollable-panel {
140+
scroll-behavior: smooth;
141+
}

src/mcp/handlers/indexing.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,8 @@ export async function listRepositories(
172172
edgeCount: repo.edgeCount,
173173
languages: repo.languages,
174174
isWatched: isActivelyWatched,
175-
lastIndexedAt: repo.lastIndexedAt?.toISOString(),
176-
createdAt: repo.createdAt.toISOString(),
175+
lastIndexedAt: repo.lastIndexedAt?.toLocaleString(),
176+
createdAt: repo.createdAt.toLocaleString(),
177177
status: repo.nodeCount === 0
178178
? 'empty — run index_repository first'
179179
: isActivelyWatched

0 commit comments

Comments
 (0)