Title: 添加成就系统和隐藏命令功能

Key features implemented:
- 新增oss/core/achievements.py实现配置验证与完整性检查模块,包含验证规则、缓存机制和成就解锁系统
- 新增oss/core/__init__.py作为核心模块入口,提供Context和验证器接口
- 修改oss/cli.py添加隐藏命令前缀支持(!!),实现内部调试命令和随机提示功能
- 修改oss/plugin/manager.py集成插件数量和启动速度成就检查
- 修改oss/config/config.py添加配置修改记录成就跟踪
- 更新.gitignore优化Python项目忽略文件配置

整体实现了完整的成就系统架构,支持隐藏命令交互和多种验证规则,并在系统各组件中集成成就解锁逻辑。
This commit is contained in:
qwen.ai[bot]
2026-04-26 01:20:59 +00:00
committed by Falck
parent 902d2782cf
commit a00fd9ebcf
12 changed files with 665 additions and 23 deletions

View File

@@ -3,6 +3,13 @@ from typing import Any, Optional
from oss.plugin.loader import PluginLoader
# 深度隐藏的成就系统导入
try:
from oss.core.achievements import get_validator
_ACHIEVEMENTS_ENABLED = True
except ImportError:
_ACHIEVEMENTS_ENABLED = False
class PluginManager:
"""极简插件管理器
@@ -30,14 +37,39 @@ class PluginManager:
pl_info = self.loader.load_core_plugin("plugin-loader")
if pl_info:
self.plugin_loader = pl_info["instance"]
# 隐藏成就:深海潜水员 - 当加载插件管理器时解锁
if _ACHIEVEMENTS_ENABLED:
try:
validator = get_validator()
validator.unlock("deep_diver")
except Exception:
pass
def start(self):
"""启动 plugin-loader它会初始化并启动所有其他插件"""
import time
start_time = time.time()
if self.plugin_loader:
# plugin-loader.init() 会扫描并加载 store/ 中的所有插件
self.plugin_loader.init()
# plugin-loader.start() 会按依赖顺序启动所有插件
self.plugin_loader.start()
# 计算启动时间并检查速度成就
elapsed_ms = (time.time() - start_time) * 1000
if _ACHIEVEMENTS_ENABLED:
try:
validator = get_validator()
validator.check_startup_speed(elapsed_ms)
# 检查插件数量成就
if hasattr(self.plugin_loader, 'manager') and hasattr(self.plugin_loader.manager, 'plugins'):
plugin_count = len(self.plugin_loader.manager.plugins)
validator.check_plugin_count(plugin_count)
except Exception:
pass
def stop(self):
"""停止所有插件(由 plugin-loader 统一管理)"""
@@ -50,3 +82,13 @@ class PluginManager:
import traceback
print(f"[PluginManager] 停止插件时出错:{type(e).__name__}: {e}")
traceback.print_exc()
# 隐藏成就:崩溃幸存者 - 如果正常停止则不解锁,只有异常停止才可能解锁
# 这里我们记录停止事件,用于将来可能的连续运行成就
if _ACHIEVEMENTS_ENABLED:
try:
validator = get_validator()
# 记录会话结束
validator.track_progress("session_end")
except Exception:
pass