Skip to content

release/1.18.0#302

Merged
tmseidel merged 32 commits into
mainfrom
release/1.18.0
Jul 26, 2026
Merged

release/1.18.0#302
tmseidel merged 32 commits into
mainfrom
release/1.18.0

Conversation

@tmseidel

Copy link
Copy Markdown
Owner

No description provided.

tmseidel and others added 30 commits July 19, 2026 12:58
Support native and OAuth login modes, with OIDC issuer discovery for
Microsoft Entra ID and Keycloak. Add OAuth callback/error handling,
safe opt-in diagnostics, Docker Compose configuration, documentation,
and tests while preserving native login and auto-login behavior.
Support native and OAuth login modes, with OIDC issuer discovery for
Microsoft Entra ID and Keycloak. Add OAuth callback/error handling,
safe opt-in diagnostics, Docker Compose configuration, documentation,
and tests while preserving native login and auto-login behavior.
• feat(security): add configurable OAuth2/OIDC web login Support native and OAuth login modes, with OIDC issuer discovery for Microsoft Entra ID and Keycloak. Add OAuth callback/error handling, safe opt-in diagnostics, Docker Compose configuration, documentation, and tests while preserving native login and auto-login behavior.
Wire PrAuditEventService through the agent loop and PR workflow
orchestrator to emit structured audit events (WORKFLOW_RUN_STARTED,
STEP_APPENDED, RUN_COMPLETED, TOOL_CALL_EXECUTED) on every agent
interaction. Tool-call records are captured inside AgentLoop and
forwarded via a Consumer<AgentRunContext.ToolCallRecord> threaded
through AgentRunContext → PrWorkflowContext → workflow run sites.
Also introduce a configurable retention policy with a nightly garbage
collector (AuditLogGarbageCollector) that deletes audit events older
than audit.retention (default P90D). Both retention and gc-cron are
settable via AUDIT_RETENTION / AUDIT_GC_CRON env vars in Docker.
Collateral cleanup:
- Tighten Javadoc and compact accessor/short-method bodies across the
  prworkflow and agentreview packages.
- Move McpOrchestrationService out of AgentReviewContext record into
  AgentReviewService constructor injection, keeping the context record
  focused on bot-level configuration.
New files:
- src/main/java/org/remus/giteabot/audit/ (AuditEventType, PrAuditEvent,
  PrAuditEventRepository, PrAuditEventService, ActorType,
  AuditLogGarbageCollector)
- src/main/resources/db/migration/{h2,postgresql}/V34__pr_audit_events.sql
- src/test/java/org/remus/giteabot/audit/ (PrAuditEventServiceTest,
  PrAuditEventToolCallTest, AuditLogGarbageCollectorTest)
- doc/development-archive/audit-trail-plan.md
- doc/development-archive/runner-refactoring.md
- Add micrometer-registry-prometheus dependency and update Maven enforcer whitelist
- Expose prometheus Actuator endpoint with PROMETHEUS_ENABLED docker toggle
- Register DB-derived gauges for reviews, findings, AI usage, errors, and audit tool calls
- Add agent.tool_calls_total live counter and wire it into AgentLoop
- Add FINDING_POSTED audit event type emitted alongside REVIEW_COMPLETED
- Add integration and unit tests for the endpoint and metric registration
- Document endpoint, toggle, and metric inventory in DEPLOYMENT.md and DOCKERHUB_README.md
- Add Prometheus feature bullet and workflow table row to README.md and translations
feat(metrics): expose Prometheus endpoint at /actuator/prometheus
…iew): deterministic severity-threshold decisions

Gitea PR review API expects event="APPROVED", not GitHub's "APPROVE".
Update GiteaApiClient.reviewEvent and the corresponding test.

Replace the subjective LLM formal review decision (APPROVE / REQUEST_CHANGES /
NONE) with an operator-configurable, auditable severity-threshold model:

- LLM now returns only a severity classification JSON:
  {"blocker": n, "medium": n, "low": n}
- Final action is computed deterministically from optional per-severity
  thresholds (blockerThreshold, mediumThreshold, lowThreshold)
- All thresholds empty -> NONE
- Malformed classification JSON -> NONE (fail-open)
- Backward compatible: when formal decisioning is disabled, behavior is
  unchanged

Add Flyway migration V35 to rewrite existing agentic-review
formalReviewDecisionPrompt values to the new severity-classification prompt.
…tion

fix(gitea): send APPROVED event for Gitea approvals; feat(agentic-review): deterministic severity-threshold decisions
…th default-settings and internal h2 database
tmseidel added 2 commits July 26, 2026 17:23
deploy(docker): removed the hardcoded spring profile to let it run with default-settings and internal h2 database
@tmseidel
tmseidel merged commit 498d50b into main Jul 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant