How ahmad-nba/umi works
Feedback Watch Tower is a FastAPI-backed feedback and issue-resolution workflow with a Next.js interface. Reporters submit feedback directly or through a conversation; feedback is analyzed and routed into an issue, then handlers advance it through resolution and reporter confirmation. QA users can inspect issue status and history. The excerpts substantiate the workflow, persistence, notifications, and QA services; the README establishes a separately run web frontend. Some API and frontend wiring is therefore shown only at the documented boundary.
Main entry points: api.ts API client · database.py Application database · workflow_service.py Workflow orchestration · feedback.py Feedback endpoints
Components 23
Web interface
- Reporter and QA pages
web/app - Handler pages
web/app/handler - API client
web/lib/api.ts
API entry points
- Feedback endpoints
app/api/feedback.py - Conversation endpoints
app/api/conversations.py - Workflow endpoints
app/api/workflow.py - Issue endpoints
app/api/issues.py - QA endpoints
app/api/qa.py - Notification endpoints
app/api/notifications.py
Feedback workflow
- Conversation capture
app/services/conversation_service.py - Feedback records
app/services/feedback_service.py - Workflow orchestration
app/services/workflow_service.py - Feedback classification
app/agents/classifier.py - LLM client
app/agents/llm_client.py
Issue operations
- Handler routing
app/services/routing_service.py - Issue records
app/services/issue_service.py - QA dashboard and history
app/services/qa_service.py - Reporter notifications
app/services/notification_service.py
Persistence
- Application database
app/core/database.py
Other components
- Reporter
- Issue handler
- QA user
- OpenRouter
Connections 30
- Reporter → Reporter and QA pages: uses
- Issue handler → Handler pages: uses
- QA user → Reporter and QA pages: uses
- Reporter and QA pages → API client: requests
- Handler pages → API client: requests
- API client → Feedback endpoints: calls
- API client → Conversation endpoints: calls
- API client → Workflow endpoints: calls
- API client → Issue endpoints: calls
- API client → QA endpoints: calls
- API client → Notification endpoints: calls
- Feedback endpoints → Feedback records: creates and lists
- Feedback endpoints → Workflow orchestration: processes and routes
- Conversation endpoints → Conversation capture: manages
- Conversation capture → Feedback records: submits as
- Workflow endpoints → Workflow orchestration: advances issues
- Issue endpoints → Issue records: manages
- QA endpoints → QA dashboard and history: queries
- Notification endpoints → Reporter notifications: lists
- Workflow orchestration → Feedback classification: analyzes with
- Workflow orchestration → Handler routing: routes with
- Workflow orchestration → Reporter notifications: notifies through
- LLM client → OpenRouter: requests analysis
- Conversation capture → Application database: reads and writes
- Feedback records → Application database: reads and writes
- Workflow orchestration → Application database: reads and writes
- Handler routing → Application database: reads and writes
- Issue records → Application database: reads and writes
- QA dashboard and history → Application database: reads
- Reporter notifications → Application database: reads and writes