guanghulab/brain/yaoming-channel/feature-registry.json
2026-05-10 13:12:44 +08:00

294 lines
14 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"registry_id": "ZY-YAOMING-FEATURE-REGISTRY",
"domain": "guanghuyaoming.com",
"channel": "零点原核 · 冰朔个人频道",
"guardian": "铸渊 · ICE-GL-ZY001",
"copyright": "国作登字-2026-A-00037559",
"last_updated": "2026-04-15",
"purpose": "记录零点原核频道所有功能的开发状态、验证结果和问题修复历史。铸渊每次开发前必须先读此文件,确保已完成功能不被破坏。",
"features": [
{
"id": "YM-FEAT-001",
"name": "QQ邮箱验证码登录 · 主权邮箱绑定",
"module": "server/app/modules/email-auth.js",
"routes": [
"POST /api/auth/send-code",
"POST /api/auth/verify-code",
"GET /api/auth/session",
"POST /api/auth/logout",
"GET /api/auth/status"
],
"status": "enhanced",
"verified_at": "2026-04-15",
"depends_on": ["ZY_SMTP_USER", "ZY_SMTP_PASS", "ZY_OWNER_EMAIL (可选默认565183519@qq.com)"],
"sovereign_binding": {
"description": "OWNER_EMAIL",
"owner_email": "565183519@qq.com",
"defense_depth": "sendCode + verifyCode ",
"rejection_message": ""
},
"history": [
{
"date": "2026-04-15",
"action": "enhancement",
"change": " · 565183519@qq.com ",
"root_cause": "",
"fix": " sendCode() verifyCode() OWNER_EMAIL ",
"files_changed": ["server/app/modules/email-auth.js"]
},
{
"date": "2026-04-15",
"action": "bug-fix",
"problem": " · : SMTP",
"root_cause": "deploy-to-zhuyuan-server.yml .env.app ZY_SMTP_USER ZY_SMTP_PASS ",
"fix": " deploy-to-zhuyuan-server.yml ZY_SMTP_USER/ZY_SMTP_PASS env .env.app ",
"files_changed": [".github/workflows/deploy-to-zhuyuan-server.yml", "server/app/modules/email-auth.js"]
}
]
},
{
"id": "YM-FEAT-002",
"name": "AI · · 线",
"module": "server/app/modules/domestic-llm-gateway.js",
"routes": [
"POST /api/chat",
"POST /api/chat/domestic",
"GET /api/chat/stats",
"GET /api/chat/domestic/stats",
"POST /api/chat/reconnect"
],
"status": "enhanced",
"depends_on": [
"ZY_DEEPSEEK_API_KEY",
"ZY_QIANWEN_API_KEY",
"ZY_KIMI_API_KEY",
"ZY_QINGYAN_API_KEY"
],
"architecture": {
"priority_chain": "domesticGateway chatEngine offline",
"models": [
"DeepSeek (deepseek-chat) · priority 1",
" (qwen-turbo) · priority 2",
"Moonshot/Kimi (moonshot-v1-8k) · priority 3",
" (glm-4-flash) · priority 4"
],
"cn_relay": " · ZY_CN_LLM_RELAY_HOST 广 · ",
"persona_pipeline": "persona-context-pipeline.js 4 (Worldview/Identity/State/Style)"
},
"history": [
{
"date": "2026-04-15",
"action": "critical-fix",
"problem": "domestic-llm-gateway.js persona-context-pipelineAIAI",
"root_cause": "domestic-llm-gateway.js persona-memory persona-context-pipeline4线 chatEngine使 chatEngine 线",
"fix": " domestic-llm-gateway.js persona-context-pipeline.beforeChat/afterChat4",
"files_changed": ["server/app/modules/domestic-llm-gateway.js"]
},
{
"date": "2026-04-15",
"action": "investigation",
"problem": "API",
"notes": ": 1) API 2) API 3) 广CN 4) "
},
{
"date": "2026-04-15",
"action": "enhancement",
"problem": "AI··",
"root_cause": "''''1) 5 2) Layer42 3) SYNESTHESIA_STYLE_INJECTION 4) ",
"fix": "1) 5++ 2) Layer4() 3) SYNESTHESIA_STYLE_INJECTION 4) ",
"files_changed": [
"server/app/modules/domestic-llm-gateway.js",
"server/app/modules/persona-context-pipeline.js",
"server/app/modules/portal-chat-agent.js"
]
}
]
},
{
"id": "YM-FEAT-003",
"name": " · ",
"module": "server/sites/yaoming/index.html",
"status": "enhanced",
"verified_at": "2026-04-15",
"components": [
" · ",
" · ",
" · · localStorage",
" · ",
"线 · ",
" · ",
" · CSS",
" · "
],
"history": [
{
"date": "2026-04-15",
"action": "enhancement",
"changes": [
" localStorage",
" APIsteps",
"线 AI线",
" "
]
},
{
"date": "2026-04-15",
"action": "critical-fix",
"changes": [
"parseMarkdown #/##/### ",
"parseMarkdown 1./2./3. ",
"CSS h2/h3/ol cyan ",
"block-level <p>"
]
}
]
},
{
"id": "YM-FEAT-004",
"name": "Nginx",
"module": "server/nginx/guanghuyaoming.conf",
"status": "verified",
"verified_at": "2026-04-15",
"proxy_rules": [
"/api/ 127.0.0.1:3800 ()",
"/api/chat 127.0.0.1:3800 (SSE/chunked)",
"/api/mcp/ 127.0.0.1:3100 (MCP Server)",
"/api/auth/ 127.0.0.1:3800 ()",
"/ws 127.0.0.1:8080 (WebSocket)",
"/ (/opt/zhuyuan/sites/yaoming/)"
]
},
{
"id": "YM-FEAT-005",
"name": "Session",
"module": "server/app/modules/email-auth.js",
"status": "verified",
"verified_at": "2026-04-15",
"details": {
"storage": " Map (DB)",
"token": "32 crypto.randomBytes",
"expiry": "7",
"cleanup": "10",
"middleware": "authMiddleware · Bearer token"
}
},
{
"id": "YM-FEAT-006",
"name": "",
"module": "server/app/server.js",
"status": "implemented",
"verified_at": "2026-04-15",
"details": {
"storage": "JSONL · ",
"location": "/opt/zhuyuan/data/chat-logs/chat-YYYY-MM-DD.jsonl",
"fields": "timestamp, sessionId(), user, assistant(2000), engine, relay, pipeline, latency",
"purpose": "Agent",
"privacy": "sessionId6+*** · "
}
},
{
"id": "YM-FEAT-007",
"name": "",
"module": "server/app/server.js",
"status": "implemented",
"verified_at": "2026-04-15",
"details": {
"description": "API",
"response_field": "_system.steps[]",
"step_format": "{ name, status(done/active/error/skip/warn), detail, time(ms) }"
}
},
{
"id": "YM-FEAT-008",
"name": " · ",
"module": "server/sites/yaoming/index.html + server/app/server.js",
"routes": [
"GET /api/system/full-status",
"GET /api/glada/health (via nginx proxy)"
],
"status": "implemented",
"verified_at": "2026-04-18",
"depends_on": [],
"architecture": {
"backend": "/api/system/full-status 3800/3100/3900 ",
"frontend": "viewSysStatus + 30",
"github_api": " GitHub API ",
"nginx": "/api/glada/ 127.0.0.1:3900"
},
"history": [
{
"date": "2026-04-18",
"action": "new-feature",
"change": " · ",
"files_changed": ["server/app/server.js", "server/nginx/guanghuyaoming.conf", "server/sites/yaoming/index.html"]
}
]
}
],
"environment_checklist": {
"required_for_email": ["ZY_SMTP_USER", "ZY_SMTP_PASS"],
"required_for_chat": ["ZY_DEEPSEEK_API_KEY "],
"optional": ["ZY_OWNER_EMAIL (565183519@qq.com)"],
"deployment_files": {
"main_app": ".github/workflows/deploy-to-zhuyuan-server.yml .env.app",
"proxy_service": ".github/workflows/deploy-proxy-service.yml .env.keys",
"pm2_config": "server/ecosystem.config.js .env.app"
}
},
"lessons_learned": [
{
"id": "LL-001",
"date": "2026-04-15",
"lesson": " .env 线",
"pattern": " process.env.XXX deploy-to-zhuyuan-server.yml env .env.app "
},
{
"id": "LL-002",
"date": "2026-04-15",
"lesson": " vs .env.app (deploy-to-zhuyuan-server.yml) .env.keys (deploy-proxy-service.yml)",
"pattern": "VPN "
},
{
"id": "LL-003",
"date": "2026-04-15",
"lesson": "(domestic-llm-gateway)API(chat-engine)线chatEnginepersona-context-pipeline",
"pattern": "AI 线"
},
{
"id": "LL-004",
"date": "2026-04-15",
"lesson": "''''",
"pattern": "AI "
},
{
"id": "LL-005",
"date": "2026-04-15",
"lesson": "Markdown(#/##/###)(1./2./3.)AI使renderMarkdown/parseMarkdownmarkdown",
"pattern": " markdown使"
}
],
"system_status_panel": {
"added_at": "2026-04-18",
"view_id": "viewSysStatus",
"nav_id": "navSysStatus",
"api_endpoint": "/api/system/full-status",
"description": " · · 30",
"features": [
" (3800) + ",
"MCP (3100) + ",
"GLADAAgent (3900) + ",
" (6)",
"GitHub Actions 10",
" (CPU//)",
"",
"30"
],
"nginx_proxy_added": "/api/glada/ 127.0.0.1:3900",
"principle": ""
}
}