feat: add final-report audit paste tool to web UI (Closes #431) #452

Merged
sysadmin merged 3 commits from feat/issue-431-audit-paste into master 2026-07-09 08:22:14 -05:00
Owner

Summary

Closes #431. Child of tracker #425.

Adds a local final-report audit paste tool at /audit and /api/audit. Operators paste LLM final reports and receive structured validator findings without posting to Gitea or storing reports server-side.

Changes

  • webui/audit_validator.py — task-kind inference, composable validator + review schema merge, suggested prompts/comments
  • webui/audit_views.py — paste form, findings table, safe-next-action display
  • webui/app.py/audit (GET/POST) and /api/audit (POST JSON); audit-only POST exception in read-only MVP
  • docs/webui-local-dev.md — audit section and test command
  • tests/test_webui_audit.py — 9 cases; skeleton tests updated

Features

  • Auto-detect or explicitly select task kind (review_pr, work_issue, etc.)
  • Surfaces missing proof fields, severity, and safe next actions from final_report_validator
  • Review reports also run assess_review_final_report_schema
  • Suggested canonical next prompt and draft issue/PR comment when findings exist
  • No auto-posting to Gitea; no server-side report storage

Validation

pytest tests/test_webui_skeleton.py tests/test_webui_project_registry.py tests/test_webui_prompt_library.py tests/test_webui_queue_dashboard.py tests/test_webui_audit.py -q

44 passed (8 subtests).

Worktree

branches/issue-431-audit-paste @ 0e701d5

## Summary Closes #431. Child of tracker #425. Adds a local final-report audit paste tool at `/audit` and `/api/audit`. Operators paste LLM final reports and receive structured validator findings without posting to Gitea or storing reports server-side. ## Changes - `webui/audit_validator.py` — task-kind inference, composable validator + review schema merge, suggested prompts/comments - `webui/audit_views.py` — paste form, findings table, safe-next-action display - `webui/app.py` — `/audit` (GET/POST) and `/api/audit` (POST JSON); audit-only POST exception in read-only MVP - `docs/webui-local-dev.md` — audit section and test command - `tests/test_webui_audit.py` — 9 cases; skeleton tests updated ## Features - Auto-detect or explicitly select task kind (`review_pr`, `work_issue`, etc.) - Surfaces missing proof fields, severity, and safe next actions from `final_report_validator` - Review reports also run `assess_review_final_report_schema` - Suggested canonical next prompt and draft issue/PR comment when findings exist - No auto-posting to Gitea; no server-side report storage ## Validation ``` pytest tests/test_webui_skeleton.py tests/test_webui_project_registry.py tests/test_webui_prompt_library.py tests/test_webui_queue_dashboard.py tests/test_webui_audit.py -q ``` **44 passed** (8 subtests). ## Worktree `branches/issue-431-audit-paste` @ `0e701d5`
jcwalker3 added 1 commit 2026-07-07 14:21:13 -05:00
Expose /audit and /api/audit for local validator previews using
final_report_validator and review schema checks. Operators can paste
reports, auto-detect task kind, and get structured findings with
suggested next prompts and issue-comment drafts.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Author
Owner

pr: #452
branch: feat/issue-431-audit-paste
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/issue-431-audit-paste
profile: prgs-author
session_id: unknown
phase: claimed
head_before: 0e701d578a
expires_at: 2026-07-09T04:42:34Z
reviewer_active: no

<!-- mcp-conflict-fix-lease:v1 --> pr: #452 branch: feat/issue-431-audit-paste worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/issue-431-audit-paste profile: prgs-author session_id: unknown phase: claimed head_before: 0e701d578a5b5953edc3faba6a9a35a3daaa7e94 expires_at: 2026-07-09T04:42:34Z reviewer_active: no
jcwalker3 added 1 commit 2026-07-08 21:44:03 -05:00
Merge prgs/master into PR branch.
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #452
issue: #431
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 38902-5f598235df84
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-feat-issue-431-audit-paste
phase: claimed
candidate_head: d663114976
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T03:11:53Z
expires_at: 2026-07-09T05:11:53Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #452 issue: #431 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 38902-5f598235df84 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-feat-issue-431-audit-paste phase: claimed candidate_head: d663114976927f9cfca056df33c9d9a9dd803156 target_branch: master target_branch_sha: none last_activity: 2026-07-09T03:11:53Z expires_at: 2026-07-09T05:11:53Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #452
issue: #431
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 38902-5f598235df84
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-feat-issue-431-audit-paste
phase: released
candidate_head: d663114976
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T03:12:28Z
expires_at: 2026-07-09T05:12:28Z
blocker: manual-release

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #452 issue: #431 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 38902-5f598235df84 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-feat-issue-431-audit-paste phase: released candidate_head: d663114976927f9cfca056df33c9d9a9dd803156 target_branch: master target_branch_sha: none last_activity: 2026-07-09T03:12:28Z expires_at: 2026-07-09T05:12:28Z blocker: manual-release
jcwalker3 added 1 commit 2026-07-09 07:43:11 -05:00
# Conflicts:
#	docs/webui-local-dev.md
#	tests/test_webui_skeleton.py
#	webui/app.py
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #452
issue: #431
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 58777-786cdd05f480
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-452-audit-paste
phase: claimed
candidate_head: 6cce87031b
target_branch: master
target_branch_sha: 254ccf5821
last_activity: 2026-07-09T13:21:37Z
expires_at: 2026-07-09T15:21:37Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #452 issue: #431 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 58777-786cdd05f480 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-452-audit-paste phase: claimed candidate_head: 6cce87031bf118da3beef5d22e1a969ed5c50abe target_branch: master target_branch_sha: 254ccf5821eddfd65ff99937f42f4f9fe7985cb4 last_activity: 2026-07-09T13:21:37Z expires_at: 2026-07-09T15:21:37Z blocker: none
sysadmin approved these changes 2026-07-09 08:21:51 -05:00
sysadmin left a comment
Owner

Review: APPROVE PR #452

Closes #431 — final-report audit paste tool in web UI.

Scope (6 files)

  • webui/audit_validator.py / audit_views.py — paste form + structured findings
  • webui/app.py/audit and /api/audit GET/POST; local-only (no Gitea post, no server storage)
  • Docs + tests

Validation

  • py_compile + git diff --check clean
  • Focused tests: 21 passed (8 subtests)
  • Merge onto current master: clean; post-sim same suite green

Assessment

  • Matches #431 acceptance: operator pastes final reports, gets validator findings + safe next actions
  • Read-only MVP preserved except explicit audit POST paths
  • Non-blocking: dead 405-handler branch for audit POST returns 404 (routes already allow POST)

Identity

  • Reviewer: sysadmin / prgs-reviewer
  • Author: jcwalker3 (not self-review)

Canonical PR State

STATE: approved ready-to-merge
WHO_IS_NEXT: merger
NEXT_ACTION: merge PR #452 at the pinned head
NEXT_PROMPT:

Merge PR #452 (confirmation MERGE PR 452) at head 6cce87031bf118da3beef5d22e1a969ed5c50abe using prgs-merger. Files: docs/webui-local-dev.md, tests/test_webui_audit.py, tests/test_webui_skeleton.py, webui/app.py, webui/audit_validator.py, webui/audit_views.py. Then continue web UI stack #453, #455, #456, #457.

WHAT_HAPPENED: Formal review of PR #452 against #431; validation green; merge-sim clean.
WHY: Tight web UI feature scope; no Gitea mutation surface; tests green.
ISSUE: #431
HEAD_SHA: 6cce87031b
REVIEW_STATUS: approved
MERGE_READY: yes
BLOCKERS: none
VALIDATION: 21 passed + 8 subtests; merge-sim clean
LAST_UPDATED_BY: sysadmin / prgs-reviewer

## Review: APPROVE PR #452 **Closes #431** — final-report audit paste tool in web UI. ### Scope (6 files) - `webui/audit_validator.py` / `audit_views.py` — paste form + structured findings - `webui/app.py` — `/audit` and `/api/audit` GET/POST; local-only (no Gitea post, no server storage) - Docs + tests ### Validation - py_compile + git diff --check clean - Focused tests: **21 passed** (8 subtests) - Merge onto current master: clean; post-sim same suite green ### Assessment - Matches #431 acceptance: operator pastes final reports, gets validator findings + safe next actions - Read-only MVP preserved except explicit audit POST paths - Non-blocking: dead 405-handler branch for audit POST returns 404 (routes already allow POST) ### Identity - Reviewer: sysadmin / prgs-reviewer - Author: jcwalker3 (not self-review) ## Canonical PR State STATE: approved ready-to-merge WHO_IS_NEXT: merger NEXT_ACTION: merge PR #452 at the pinned head NEXT_PROMPT: ```text Merge PR #452 (confirmation MERGE PR 452) at head 6cce87031bf118da3beef5d22e1a969ed5c50abe using prgs-merger. Files: docs/webui-local-dev.md, tests/test_webui_audit.py, tests/test_webui_skeleton.py, webui/app.py, webui/audit_validator.py, webui/audit_views.py. Then continue web UI stack #453, #455, #456, #457. ``` WHAT_HAPPENED: Formal review of PR #452 against #431; validation green; merge-sim clean. WHY: Tight web UI feature scope; no Gitea mutation surface; tests green. ISSUE: #431 HEAD_SHA: 6cce87031bf118da3beef5d22e1a969ed5c50abe REVIEW_STATUS: approved MERGE_READY: yes BLOCKERS: none VALIDATION: 21 passed + 8 subtests; merge-sim clean LAST_UPDATED_BY: sysadmin / prgs-reviewer
Owner

adopted_at: 2026-07-09T13:22:03Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 58777-786cdd05f480
adopted_from_profile: prgs-reviewer
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 7982
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #452
issue: #431
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 59969-b812ae833af9
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-452-audit-paste
phase: adopted
candidate_head: 6cce87031b
target_branch: master
target_branch_sha: 254ccf5821
last_activity: 2026-07-09T13:22:03Z
expires_at: 2026-07-09T15:22:03Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-09T13:22:03Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 58777-786cdd05f480 adopted_from_profile: prgs-reviewer adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 7982 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #452 issue: #431 reviewer_identity: sysadmin profile: prgs-merger session_id: 59969-b812ae833af9 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-452-audit-paste phase: adopted candidate_head: 6cce87031bf118da3beef5d22e1a969ed5c50abe target_branch: master target_branch_sha: 254ccf5821eddfd65ff99937f42f4f9fe7985cb4 last_activity: 2026-07-09T13:22:03Z expires_at: 2026-07-09T15:22:03Z blocker: none
sysadmin merged commit 5cf44d78e6 into master 2026-07-09 08:22:14 -05:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Scaled-Tech-Consulting/Gitea-Tools#452