2026-06-10 21:19:54 +00:00
|
|
|
modules = ["nodejs-24", "postgresql-16"]
|
2026-05-28 23:37:31 +00:00
|
|
|
|
|
|
|
|
[deployment]
|
|
|
|
|
router = "application"
|
|
|
|
|
deploymentTarget = "autoscale"
|
|
|
|
|
|
|
|
|
|
[deployment.postBuild]
|
|
|
|
|
args = ["pnpm", "store", "prune"]
|
|
|
|
|
env = { "CI" = "true" }
|
|
|
|
|
|
|
|
|
|
[workflows]
|
|
|
|
|
runButton = "Project"
|
|
|
|
|
|
2026-06-10 19:53:29 +00:00
|
|
|
[[workflows.workflow]]
|
|
|
|
|
name = "Project"
|
|
|
|
|
mode = "parallel"
|
|
|
|
|
author = "agent"
|
|
|
|
|
|
|
|
|
|
[[workflows.workflow.tasks]]
|
|
|
|
|
task = "workflow.run"
|
|
|
|
|
args = "test"
|
|
|
|
|
|
|
|
|
|
[[workflows.workflow]]
|
|
|
|
|
name = "test"
|
|
|
|
|
author = "agent"
|
|
|
|
|
|
|
|
|
|
[[workflows.workflow.tasks]]
|
|
|
|
|
task = "shell.exec"
|
|
|
|
|
args = "pnpm --filter @workspace/api-server run test"
|
|
|
|
|
|
|
|
|
|
[workflows.workflow.metadata]
|
|
|
|
|
isValidation = true
|
|
|
|
|
|
2026-05-28 23:37:31 +00:00
|
|
|
[agent]
|
|
|
|
|
stack = "PNPM_WORKSPACE"
|
|
|
|
|
expertMode = true
|
|
|
|
|
|
|
|
|
|
[postMerge]
|
|
|
|
|
path = "scripts/post-merge.sh"
|
|
|
|
|
timeoutMs = 20000
|
2026-06-08 14:28:26 +00:00
|
|
|
|
|
|
|
|
[[ports]]
|
|
|
|
|
localPort = 8080
|
|
|
|
|
externalPort = 80
|
|
|
|
|
|
|
|
|
|
[[ports]]
|
|
|
|
|
localPort = 8081
|
|
|
|
|
externalPort = 8081
|
SkillGuard: complete frontend wiring and harden backend
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.
2026-06-08 14:59:17 +00:00
|
|
|
|
2026-06-11 05:23:53 +00:00
|
|
|
[[ports]]
|
|
|
|
|
localPort = 8082
|
|
|
|
|
externalPort = 3001
|
|
|
|
|
|
SkillGuard: complete frontend wiring and harden backend
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.
2026-06-08 14:59:17 +00:00
|
|
|
[[ports]]
|
|
|
|
|
localPort = 20892
|
|
|
|
|
externalPort = 3000
|
2026-06-10 21:19:54 +00:00
|
|
|
|
|
|
|
|
[nix]
|
|
|
|
|
channel = "stable-25_05"
|
2026-06-11 05:30:47 +00:00
|
|
|
|
|
|
|
|
[userenv]
|
|
|
|
|
|
|
|
|
|
[userenv.shared]
|
|
|
|
|
ADMIN_EMAILS = "amertens+skillguard@avameo.de"
|