Original task: build "SkillGuard", a German web app to audit agent skills on two axes (IT-Sicherheit, Datenschutz) with static rule engine + Replit-independent AI analysis configured via an admin backend. This session: - Fixed frontend TS errors: lucide-react name collisions (Badge from ui, Activity from lucide), widened apiType to AiProviderApiType, added queryKey to useGetScan. - Verified all pages render in German (Dashboard, Prüfen, Bericht, Verlauf, Admin) and the full scan flow works end-to-end (malicious sample -> verdict block). Code-review-driven hardening: - POST /api/scans now returns the full ScanDetail (files + findings) to match the OpenAPI contract, instead of only the summary. - AI provider error bodies are redacted (token, Bearer, sk- patterns) before being returned/persisted, and provider fetches now have a 60s timeout. - ZIP parsing now enforces limits (max files, total + per-file size) to mitigate zip-bomb DoS. Updated replit.md (project overview, decisions, gotchas) and added a memory note on lucide-react icon name collisions.
31 lines
582 B
TOML
31 lines
582 B
TOML
kind = "web"
|
|
previewPath = "/"
|
|
title = "SkillGuard"
|
|
version = "1.0.0"
|
|
id = "artifacts/skillguard"
|
|
router = "path"
|
|
|
|
[[integratedSkills]]
|
|
name = "react-vite"
|
|
version = "1.0.0"
|
|
|
|
[[services]]
|
|
name = "web"
|
|
paths = [ "/" ]
|
|
localPort = 20892
|
|
|
|
[services.development]
|
|
run = "pnpm --filter @workspace/skillguard run dev"
|
|
|
|
[services.production]
|
|
build = [ "pnpm", "--filter", "@workspace/skillguard", "run", "build" ]
|
|
publicDir = "artifacts/skillguard/dist/public"
|
|
serve = "static"
|
|
|
|
[[services.production.rewrites]]
|
|
from = "/*"
|
|
to = "/index.html"
|
|
|
|
[services.env]
|
|
PORT = "20892"
|
|
BASE_PATH = "/"
|