Your Name
4cfed27bf7
docs: superpowers design specs + plans
2026-05-21 05:50:24 +08:00
Your Name
003ca96f07
tests: load_test + quick_load + test_api
2026-05-21 05:49:05 +08:00
Your Name
9e20898fd0
mcp: multisync_server + bridge + firefox
2026-05-21 05:48:19 +08:00
Your Name
cad49e6de1
docs: memory knowledge base + settings
2026-05-21 05:47:42 +08:00
Your Name
06f1e9ee07
docs: 194 team skills
2026-05-21 05:43:51 +08:00
Your Name
55e14805de
install.php: auto-detect site URL + simplified DB config + auto-configure process guardian
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 05:42:55 +08:00
Your Name
ae94101eb8
docs: add CLAUDE.md project memory for agent continuity
2026-05-20 17:29:02 +08:00
Your Name
f9045a8404
refactor: 仓库结构扁平化 + PHP前端合并到Nexus仓库
...
- 将 Nexus/Nexus/* 移到仓库根目录(消除双层嵌套)
- 删除旧的多层空壳目录 (server/, web/, agent/, deploy/, docs/)
- 将PHP前端 (web/) 合并进Nexus仓库 — 统一管理
- 部署时 git clone Nexus 仓库即可,不再需要两个仓库
目录结构:
server/ ← Python FastAPI后端
web/ ← PHP前端 (install.php, config.php, etc)
deploy/ ← Supervisor + Shell健康检查
docs/ ← 部署文档
tests/ ← 测试
.env ← 不在git中 (install.php生成)
.gitignore ← 排除 .env, SECRETS.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 17:24:21 +08:00
Your Name
05600232b7
feat: Nexus 6.0 Phase A+B — 心跳系统 + 3层守护 + Telegram告警 + install.php重写
...
Phase A (Python Backend):
- E1: WebSocket alert/recovery broadcast (server/api/websocket.py)
- E2: Agent heartbeat → Redis write + alert detection (server/api/agent.py)
- E3: Redis→MySQL 10min batch flush (server/background/heartbeat_flush.py)
- E4: load_settings_from_db() + threshold fields (server/config.py)
- E5: Python self-monitor 30s loop (server/background/self_monitor.py)
- E6: Telegram Bot push module (server/infrastructure/telegram/)
- E7: Server listing reads Redis for live status (server/api/servers.py)
- E8: /health endpoint for Shell health_monitor.sh (server/api/health.py)
- E9: Lifespan startup with background tasks (server/main.py)
Phase C (DevOps):
- D1: Supervisor config (deploy/nexus.conf)
- D2: Shell health_monitor.sh (deploy/health_monitor.sh)
Also:
- .gitignore: restored .env + SECRETS.md exclusion (never commit)
- Agent heartbeat: Redis buffer → frontend direct read → 10min → MySQL
- Alert detection: CPU/mem/disk > threshold → WebSocket + Telegram push
- Recovery detection: previously alerted metrics normal → auto-push recovery
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 17:02:45 +08:00
Your Name
98cb33c3d6
Add .env + SECRETS.md for test deployment (private repo)
...
Temporary: includes real credentials for deployment testing.
Will be removed from .gitignore when switching to formal repo.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 15:46:11 +08:00
Your Name
2cf7602573
Add SECRETS.md to .gitignore — prevent credential leak
...
SECRETS.md is a local-only file for storing database passwords,
API keys, and server credentials. It must never be committed to Git.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 15:37:47 +08:00
Your Name
669a62b17a
Update DEPLOY.md: production domain + clean sensitive values
...
- Domain: api.synaglobal.vip (强制 HTTPS)
- Website directory: /www/wwwroot/api.synaglobal.vip
- Supervisor config using .env (no hardcoded passwords)
- MySQL create DB command uses placeholder password
- Nginx config with 宝塔 SSL path and PHP-FPM socket
- All sensitive values removed from doc — safe for Git
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 15:36:47 +08:00
Your Name
99e23d7e78
Phase 1 complete: Repository implementations + Service layer + API routes + Deploy docs
...
- All 11 Repository Protocol interfaces (Admin, Setting, AuditLog, PushSchedule,
PushRetryJob, PasswordPreset + existing 5)
- All 11 async SQLAlchemy Repository implementations
- 4 Application Services (ServerService, ScriptService, AuthService, SyncService)
- FastAPI DI wiring in dependencies.py (repos → services)
- 6 API route modules (servers, auth, agent, scripts, settings/schedules/presets/audit/retries)
- Agent /api/exec endpoint for remote shell command execution
- Batch push engine with asyncio.Semaphore(10) concurrency control
- TOTP authentication + brute-force protection (5 failures / 15 min lockout)
- DB credential management with $DB_* variable substitution
- Ubuntu deployment guide (docs/DEPLOY.md) with dependency fix script
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 14:42:55 +08:00
Your Name
5ae8855894
Add CI/CD pipeline: Gitea Actions (test + lint + deploy)
...
CI (every push):
- pytest with coverage (>=50% gate)
- ruff lint check
- mypy type check (non-blocking)
CD (main branch only, after CI passes):
- SSH deploy to production server
- git pull + pip install + supervisorctl restart
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 14:25:31 +08:00
Your Name
b2617b4e31
Nexus v6.0.0: Initialize project structure with Clean Architecture
...
- Project brand: Nexus (configurable via settings.SYSTEM_NAME)
- Clean Architecture 4-layer directory structure:
server/domain/models/ — SQLAlchemy models
server/domain/repositories/ — Abstract interfaces (Protocol)
server/infrastructure/database/ — Async SQLAlchemy session + crypto
server/infrastructure/redis/ — Decoupled Redis client
server/infrastructure/ssh/ — Unified SSH connection pool
server/application/services/ — Business logic (TODO)
server/api/ — FastAPI routes (TODO)
- Config: Python 3.12+, PHP 8.2+, MySQL 8.4 LTS, Redis 7.0+
- Async SQLAlchemy (aiomysql) replacing sync pymysql
- Test framework: pytest + async fixtures + Playwright (conftest.py)
- MCP server address: 47.254.123.106
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 14:19:09 +08:00