## 1. TokenRefreshLock(401 并发刷新竞态修复) - 新增 `core/network/token_refresh_lock.dart` - 使用 Completer 实现互斥锁:多个请求同时 401 时, 仅第一个触发 refreshToken(),其余等待同一结果 - 防止 5 个页面同时 401 → 5 次 refresh → 4 次失败踢出用户 ## 2. DedupInterceptor(请求去重) - 新增 `core/network/dedup_interceptor.dart` - 相同 GET URL 在飞行中时,后续请求复用第一个的结果 - 防止:用户快速点重试、页面切换重复加载、下拉刷新连点 - 仅限 GET,POST/PUT/DELETE 等写操作始终放行 ## 3. ErrorLogInterceptor + ErrorLogger(结构化错误日志) - 新增 `core/network/error_log_interceptor.dart` — Dio 拦截器 - 新增 `core/services/error_logger.dart` — 持久化日志服务 - 每个失败请求记录:时间戳、方法、URL、状态码、错误类型、重试次数 - 本地 SharedPreferences 存储最近 50 条,支持 summary 统计 - debug 模式同步 debugPrint 输出 - 预留 Sentry/Crashlytics flush 接口 ## 4. Dio 拦截器管线优化 拦截器顺序调整为大厂标准管线: 1. DedupInterceptor — 去重(最先,防止重复请求进入管线) 2. TokenInterceptor — 注入 token + 401 刷新(带并发锁) 3. TenantInterceptor — 注入 X-Tenant-Id 4. RetryInterceptor — 指数退避重试 5. ErrorLogInterceptor — 错误日志(最后,记录最终失败) 移除 LogInterceptor(被 ErrorLogInterceptor 替代,且不再在 release 模式下打印请求 body 造成性能损耗) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| deploy | ||
| docs | ||
| it0-web-admin | ||
| it0_app | ||
| packages | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile.service | ||
| README.md | ||
| logo.svg | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| tsconfig.base.json | ||
| turbo.json | ||
README.md
IT0 — AI-Powered Server Cluster Operations Platform
Intelligent operations platform that combines AI agents with human oversight for managing server clusters.
Architecture
- Backend: NestJS microservices (TypeScript) with DDD + Clean Architecture
- Mobile: Flutter app with Riverpod state management
- Web Admin: Next.js dashboard with Zustand + React Query
- Voice: Python service for voice-based interaction (STT/TTS/VAD)
Services
| Service | Description |
|---|---|
| auth-service | Authentication, RBAC, API key management |
| agent-service | AI agent orchestration (Claude CLI + API) |
| inventory-service | Server, cluster, credential management |
| monitor-service | Metrics collection, alerting, health checks |
| ops-service | Task execution, approvals, standing orders |
| comm-service | Multi-channel notifications, escalation |
| audit-service | Audit logging, compliance trail |
| voice-service | Voice pipeline (Python) |
Quick Start
# Backend
pnpm install
pnpm dev
# Flutter
cd it0_app && flutter pub get && flutter run
# Web Admin
cd it0-web-admin && pnpm install && pnpm dev
Tech Stack
- Runtime: Node.js 20+, Dart 3.x, Python 3.11+
- Database: PostgreSQL (schema-per-tenant)
- Cache/Events: Redis Streams
- AI: Anthropic Claude (CLI + API)
- Build: pnpm workspaces + Turborepo