0.25.0

Итерация 21 плана аудита: Тесты, CI, наблюдаемость, deploy.sh.

Added

  • Метрики Prometheus: расширение internal/metrics/metrics.go — LLM token breakdown (system/rag/history), max iterations, cron missed, login success/failed, actor handle duration, iterations per turn. Метод PrometheusFormat() для /metrics endpoint.
  • MetricsHandler: отдаёт JSON по умолчанию, Prometheus text format по Accept: text/plain или ?format=prometheus.
  • Tool audit log: миграция 025_tool_audit (SQLite + PG) — таблица tool_audit_log(agent_id, session_id, tool, args_summary, result_summary, took_ms, ok, created_at). Методы CreateToolAudit/ListToolAudit в Store.
  • Audit log расширение: middleware AuditLogger, audit записи для login success/failed, SetAdmin, DeleteUser.
  • CI workflow .github/workflows/ci.yml: 4 job-а — test (go test -race), lint (golangci-lint), security (gosec), build (cross-platform binaries + artifacts).
  • .golangci.yml: errcheck, govet, staticcheck, unused, gosimple, ineffassign, typecheck, misspell, gofmt.
  • deploy.sh переписан: автоопределение платформы, PID-файл, macOS launchd plist, Linux systemd unit, graceful stop.

Tests

  • internal/permissions/ratelimit_test.go (8 тестов): Allow, ZeroMeansUnlimited, Reset, WindowReset, Count, Remaining, Remaining_Unlimited, Remaining_WindowExpired.
  • internal/permissions/validate_test.go (16 тестов): все правила валидации и предупреждений.
  • internal/security/guard_test.go (9 тестов): default deny, allow normal, custom deny/allow, network protocols, preset commands, SSRF.
  • internal/metrics/metrics_test.go (11 тестов): все счётчики, snapshot, Prometheus format, token breakdown.
  • internal/agent/e2e_test.go (5 тестов): SimpleChat, ToolCalls, MaxIterations, ContextCancellation, ToolTimeout — с mock LLM provider.
  • internal/server/handler/security_regression_test.go (9 тестов): login audit, SetAdmin audit, Delete audit, ToolAudit CRUD, SetAdmin self-change.