9 Commits

Author SHA1 Message Date
Sharang Parnerkar
1b1c4831b9 fix(server): use explicit #[get] and #[post] attributes for server endpoints
Some checks failed
CI / Format (push) Successful in 3s
CI / Security Audit (push) Has been cancelled
CI / Tests (push) Has been cancelled
CI / Deploy (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Format (pull_request) Has been cancelled
CI / Clippy (pull_request) Has been cancelled
CI / Security Audit (pull_request) Has been cancelled
CI / Tests (pull_request) Has been cancelled
CI / Deploy (pull_request) Has been cancelled
Replace #[server(endpoint = "...")] with explicit HTTP method attributes
to ensure correct method handling behind Traefik reverse proxy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:16:06 +01:00
Sharang Parnerkar
949249dd4d fix(server): remove duplicate /api/ prefix from server function endpoints
Dioxus mounts server functions under /api/ automatically. Our endpoints
specified "/api/search" etc., resulting in double-prefixed paths like
/api//api/search which hit the static file server (GET-only) instead
of the server function handler, causing 405 errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:16:06 +01:00
Sharang Parnerkar
a7329efa5e fix(searxng): use POST instead of GET for SearXNG search API
SearXNG's default config sets `method: "POST"` which rejects GET
requests with 405. Switch both search_topic and get_trending_topics
to POST with form-encoded parameters.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:16:06 +01:00
Sharang Parnerkar
42b79371a2 fix(ui): replace Dioxus favicon with CERTifAI shield logo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:16:06 +01:00
Sharang Parnerkar
bc6250b6e7 fix(fmt): whitespace 2026-02-20 13:16:06 +01:00
Sharang Parnerkar
33b65ee2d2 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-20 13:15:56 +01:00
Sharang Parnerkar
6ca3d3cb39 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-20 13:15:34 +01:00
Sharang Parnerkar
064157581d fix(ci): removed build and changelog 2026-02-20 13:15:34 +01:00
5399afd748 feat(dashboard): added dashboard content and features (#7)
All checks were successful
CI / Format (push) Successful in 2s
CI / Clippy (push) Successful in 2m18s
CI / Security Audit (push) Successful in 1m40s
CI / Tests (push) Successful in 2m51s
CI / Deploy (push) Successful in 2s
Co-authored-by: Sharang Parnerkar <parnerkarsharang@gmail.com>
Reviewed-on: #7
2026-02-19 19:23:06 +00:00

View File

@@ -329,7 +329,7 @@ pub fn DashboardPage() -> Element {
.set(
format!(
"Article content:\n{snippet}\n\n\
AI Summary:\n{text}",
AI Summary:\n{text}",
),
);
summary.set(Some(text));
@@ -385,9 +385,9 @@ pub fn DashboardPage() -> Element {
role: "system".into(),
content: format!(
"You are a helpful assistant. The user is reading \
a news article. Use the following context to answer \
their questions. Do NOT comment on the source, \
dates, URLs, or formatting.\n\n{ctx}",
a news article. Use the following context to answer \
their questions. Do NOT comment on the source, \
dates, URLs, or formatting.\n\n{ctx}",
),
},
];