9 Commits

Author SHA1 Message Date
Sharang Parnerkar
20b3279bb5 feat(pwa): make dashboard installable as a progressive web app
All checks were successful
CI / Clippy (push) Successful in 2m24s
CI / Security Audit (push) Has been skipped
CI / Tests (push) Has been skipped
CI / Format (pull_request) Successful in 2s
CI / Format (push) Successful in 3s
CI / Clippy (pull_request) Successful in 2m19s
CI / Security Audit (pull_request) Has been skipped
CI / Tests (pull_request) Has been skipped
CI / Deploy (push) Has been skipped
CI / Deploy (pull_request) Has been skipped
Add web manifest, service worker with cache-first static assets and
network-first navigation, and register from the App component head.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:16:15 +01:00
Sharang Parnerkar
cbb664c7d9 fix(ci): run audit only on main 2026-02-19 20:16:15 +01:00
Sharang Parnerkar
233a7c0b69 fix(ci): remove dx fmt check for now 2026-02-19 20:16:15 +01:00
Sharang Parnerkar
8a9a232f37 fix(fmt): whitespace 2026-02-19 20:16:15 +01:00
Sharang Parnerkar
d2ed7741a8 feat(dashboard): add sidebar with Ollama status, trending topics, and article detail panel
Integrate SearXNG news search, Ollama-powered article summarization with
follow-up chat, and a dashboard sidebar showing LLM status, trending
keywords, and recent search history. Sidebar yields to a split-view
article detail panel when a card is selected.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:16:15 +01:00
Sharang Parnerkar
a5a8b04bc0 ci: add deploy stage to trigger Coolify after CI passes
Deploy job runs only on main branch after all quality checks and tests
succeed, replacing the immediate push webhook with a gated deployment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:13:43 +01:00
Sharang Parnerkar
f70528c4fe fix(ci): removed build and changelog 2026-02-19 20:13:43 +01:00
Sharang Parnerkar
29ae4b65bc feat(ui): add public landing page with impressum and privacy pages
Introduce a marketing landing page at `/` with hero section, feature grid,
how-it-works steps, CTA banner, and footer. Move the authenticated dashboard
to `/dashboard`. Add static Impressum and Privacy Policy pages for EU legal
compliance. Update login redirect defaults accordingly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:13:01 +01:00
a588be306a feat(dash): improved frontend dashboard (#6)
All checks were successful
CI / Format (push) Successful in 6m30s
CI / Clippy (push) Successful in 2m25s
CI / Security Audit (push) Successful in 1m53s
CI / Tests (push) Successful in 2m50s
CI / Deploy (push) Successful in 4s
Co-authored-by: Sharang Parnerkar <parnerkarsharang@gmail.com>
Reviewed-on: #6
2026-02-19 11:52:41 +00:00

View File

@@ -7,7 +7,12 @@ body {
padding: 0;
}
h1, h2, h3, h4, h5, h6 {
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: 'Space Grotesk', sans-serif;
}
@@ -509,11 +514,9 @@ h1, h2, h3, h4, h5, h6 {
margin: 0 auto 80px;
padding: 64px 48px;
text-align: center;
background: linear-gradient(
135deg,
rgba(145, 164, 210, 0.08),
rgba(109, 133, 198, 0.04)
);
background: linear-gradient(135deg,
rgba(145, 164, 210, 0.08),
rgba(109, 133, 198, 0.04));
border: 1px solid rgba(145, 164, 210, 0.15);
border-radius: 20px;
}
@@ -1046,13 +1049,30 @@ h1, h2, h3, h4, h5, h6 {
color: #91a4d2;
}
/* Topic-specific badge colors */
.news-badge--ai { background-color: rgba(99, 102, 241, 0.15); color: #818cf8; }
.news-badge--technology { background-color: rgba(168, 85, 247, 0.15); color: #c084fc; }
.news-badge--science { background-color: rgba(34, 197, 94, 0.15); color: #4ade80; }
.news-badge--finance { background-color: rgba(234, 179, 8, 0.15); color: #facc15; }
.news-badge--writing { background-color: rgba(236, 72, 153, 0.15); color: #f472b6; }
.news-badge--research { background-color: rgba(6, 182, 212, 0.15); color: #22d3ee; }
.news-badge--llm {
background-color: rgba(99, 102, 241, 0.15);
color: #818cf8;
}
.news-badge--agents {
background-color: rgba(168, 85, 247, 0.15);
color: #c084fc;
}
.news-badge--privacy {
background-color: rgba(34, 197, 94, 0.15);
color: #4ade80;
}
.news-badge--infrastructure {
background-color: rgba(234, 179, 8, 0.15);
color: #facc15;
}
.news-badge--open-source {
background-color: rgba(236, 72, 153, 0.15);
color: #f472b6;
}
.news-card-source {
font-size: 12px;
@@ -1458,8 +1478,18 @@ h1, h2, h3, h4, h5, h6 {
}
@keyframes dotPulse {
0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }
40% { opacity: 1; transform: scale(1); }
0%,
80%,
100% {
opacity: 0.3;
transform: scale(0.8);
}
40% {
opacity: 1;
transform: scale(1);
}
}
/* ---- Follow-up Chat ---- */
@@ -1857,9 +1887,17 @@ h1, h2, h3, h4, h5, h6 {
border-radius: 50%;
}
.tool-status--active { background-color: #4ade80; }
.tool-status--inactive { background-color: #5a6478; }
.tool-status--error { background-color: #f87171; }
.tool-status--active {
background-color: #4ade80;
}
.tool-status--inactive {
background-color: #5a6478;
}
.tool-status--error {
background-color: #f87171;
}
.tool-card-name {
font-size: 16px;
@@ -2061,8 +2099,13 @@ h1, h2, h3, h4, h5, h6 {
font-weight: 500;
}
.analytics-stat-change--up { color: #4ade80; }
.analytics-stat-change--down { color: #f87171; }
.analytics-stat-change--up {
color: #4ade80;
}
.analytics-stat-change--down {
color: #f87171;
}
/* ===== Pricing Page ===== */
.pricing-page {
@@ -2380,6 +2423,7 @@ h1, h2, h3, h4, h5, h6 {
/* ===== Responsive: Dashboard Pages ===== */
@media (max-width: 1024px) {
.news-grid,
.tools-grid,
.pricing-grid {
@@ -2428,6 +2472,7 @@ h1, h2, h3, h4, h5, h6 {
}
@media (max-width: 768px) {
.news-grid,
.tools-grid,
.pricing-grid {
@@ -2468,4 +2513,4 @@ h1, h2, h3, h4, h5, h6 {
min-width: unset;
margin: 16px;
}
}
}