feat: replace corrections/tuner with dashboard module
Replace the corrections/adaptive-prompt-tuner feature with a new dashboard module providing server stats and user profile overview. Backend: - Add dashboard module (routes, service, repository) with stats + user list + user detail endpoints - Remove corrections module entirely - Wire dashboard router in app.ts Frontend: - Add dashboard feature (DashboardStats, UserSummaryList, UserProfileDetail components + useDashboard hook) - Remove tuner feature (CorrectionStats, CorrectionHistory, SubmitCorrection, useCorrections) - Update API client from corrections → dashboard types/fns - Rename tab 'tuner' → 'dashboard' - Update MobileTabBar, Header, Sidebar links Tests: - Expand backend placeholder test with dashboard assertions - Expand discord-gateway placeholder test with config/channel assertions AI moderation: - llmModerationClient: improve status/reply detection, expand safety categories, fix timer reset - userProfileLearner: fix isReply refinement - userProfileStore: add pending cache check - messageMetadata: add crosspost type mapping - migrate.ts: improve partial-index safety in schema push Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { createChildLogger } from "@bete/shared/logger";
|
||||
import { dashboardRepository } from "./dashboard.repository.js";
|
||||
|
||||
const logger = createChildLogger("dashboard.service");
|
||||
|
||||
export interface ListUsersQuery {
|
||||
limit: number;
|
||||
cursor?: string;
|
||||
search?: string;
|
||||
}
|
||||
|
||||
export class DashboardService {
|
||||
async getStats() {
|
||||
logger.debug("Fetching dashboard stats");
|
||||
return dashboardRepository.getStats();
|
||||
}
|
||||
|
||||
async listUsers(query: ListUsersQuery) {
|
||||
logger.debug({ query }, "Listing dashboard users");
|
||||
return dashboardRepository.listUsers(query);
|
||||
}
|
||||
|
||||
async getUserDetail(userId: string) {
|
||||
logger.debug({ userId }, "Fetching user detail");
|
||||
return dashboardRepository.getUserDetail(userId);
|
||||
}
|
||||
}
|
||||
|
||||
export const dashboardService = new DashboardService();
|
||||
Reference in New Issue
Block a user