基于架构展望，我进一步细化为可落地的新架构设计方案，重点明确项目目录结构、各模块职责、核心交互流程，并保持玩具精神与可扩展性。以下为完整规划。
一、总体设计原则
三层分离：基础设施层（Infrastructure）→ 核心服务层（Core Services）→ 应用层（Userland Apps）。
依赖倒置：高层模块（菜单、命令）不直接依赖具体实现，而是通过 ServiceRegistry 获取服务接口。
插件化：用户应用（User_used/）遵循标准生命周期，支持元数据（app.json）和权限声明。
可测试性：所有核心组件提供接口抽象，方便 Mock 和单元测试。
二、新目录结构，直接写在I:\code\project\lichenggong-1.1
text
lichenggong/                           # 项目根目录（与现有兼容）
├── run.py                             # 启动入口（计算根路径，注入全局变量）
├── 小白看这里.txt                 # 指引到user_guide.md
├── 小白启动器.bat			# 小白启动入口
├── README.md
├── docs/                               
│   ├── user_guide.md	# 用户手册兼环境指引
│   └── dev_guide.md  # 开发者指南
├── Noodows/                           # 主包（原 lichenggong/Noodows）
│   ├── __init__.py
│   ├── __main__.py                    # 入口：仅负责初始化并启动主循环
│   ├── infrastructure/                # 基础设施层（无业务逻辑）
│   │   ├── __init__.py
│   │   ├── config.py                  # 配置管理（路径、常量）
│   │   ├── runtime.py                 # NoodowsRuntime（会话、启动时间、锁）
│   │   ├── logger.py                  # 结构化日志（JSON Lines）
│   │   ├── lock.py                    # 进程锁（防止多实例）
│   │   ├── session.py                 # 会话管理（读写 now/session.json）
│   │   └── service_registry.py        # 单例服务注册表（ServiceRegistry）
│   ├── core/                          # 核心服务层
│   │   ├── __init__.py
│   │   ├── user.py                    # User, UserManager（含权限）
│   │   ├── language.py                # LanguageManager（i18n）
│   │   ├── event.py                   # EventBus（事件总线）
│   │   ├── menu.py                    # 菜单引擎（支持 Command + MenuStack）
│   │   ├── command.py                 # Command 对象（name_key, handler, params）
│   │   ├── permission.py              # 能力标签（Capability）检查
│   │   ├── plugin.py                  # 应用加载器（扫描、安装、卸载）
│   │   └── exceptions.py              # 自定义异常（如 PermissionDenied）
│   ├── commands/                      # 命令实现（按业务域拆分）
│   │   ├── __init__.py
│   │   ├── system_commands.py         # shutdown, logout, goback, thanks
│   │   ├── user_commands.py           # list, create, delete, change_pw, switch_lang
│   │   ├── file_commands.py           # explorer, copy, move, delete, rename
│   │   ├── app_commands.py            # run_user_app, install, uninstall, list_apps
│   │   └── dev_commands.py            # dev console, app scaffold, logs tail
│   ├── apps/                          # 内置系统应用
│   │   ├── __init__.py
│   │   ├── calculator.py              # 普通计算器
│   │   ├── ccalc_adapter.py           # CCalc 适配器
│   │   ├── explorer.py                # 文件浏览器（含书签、批量操作）
│   │   ├── system_info.py             # 系统信息（含进度条）
│   │   ├── time_tool.py               # 时间工具
│   │   └── mini_editor.py             # 极简文本编辑器（新增）
│   ├── userland/                      # 用户应用运行时环境
│   │   ├── __init__.py
│   │   ├── templates/                 # 应用脚手架模板
│   │   │   ├── hello_world.py
│   │   │   └── todo.py
│   │   └── loader.py                  # 动态加载 User_used/*.py
│   ├── i18n/                          # 国际化资源
│   │   ├── en_US.json
│   │   ├── zh_CN.json
│   │   └── zh_TW.json
│   ├── now/                           # 运行时工作目录（自动生成）
│   │   ├── session.json               # 会话信息
│   │   ├── noodows.log                # 日志
│   │   └── runtime.lock               # 锁文件
│   ├── tests/                         # 单元测试（镜像 core/commands/ 结构）
│   │   ├── conftest.py
│   │   ├── core/
│   │   │   ├── test_user.py
│   │   │   ├── test_language.py
│   │   │   └── test_menu.py
│   │   └── commands/
│   │       └── test_user_commands.py
│   └── utils/                         # 通用工具（纯函数）
│       ├── __init__.py
│       ├── file_utils.py              # 文件大小、统计、复制等
│       ├── ansi.py                    # ANSI 颜色/光标控制
│       └── validate.py                # 输入验证
├── User/                              # 用户数据目录（与现有兼容）
│   └── User{uid}/
│       ├── profile.json               # 用户配置
│       └── User_used/                 # 用户安装的应用（每个应用一个子目录或单文件）
│           ├── my_app/
│           │   ├── app.json
│           │   └── main.py
│           └── hello.py
└── version/
    └── version.txt
三、关键模块职责与交互
1. 基础设施层（infrastructure/）
config.py：定义所有路径常量（PROJECT_ROOT, USERS_DIR, NOW_DIR 等），在 run.py 启动时动态计算并注入，避免 __file__ 相对路径问题。
runtime.py：NoodowsRuntime 对象持有 config, session_data, started_at，并负责初始化日志和锁。
service_registry.py：全局单例，所有核心服务（UserManager, LanguageManager, EventBus, Runtime）注册于此。菜单和命令通过 ServiceRegistry.get('user_manager') 获取，不再传递 context。
session.py：读写 now/session.json，存储 last_uid, theme, last_menu_path 等。
logger.py：RuntimeLogger 写入 JSONL 日志，支持 log(event, **data)。
2. 核心服务层（core/）
user.py：扩展 User 类，新增 capabilities: List[str] 字段（如 'file.write'）。UserManager 支持权限检查 has_capability(user, capability)。
permission.py：定义标准能力标签（Capability 枚举或常量），并提供装饰器 @require_capability('file.delete') 用于命令级权限控制。
plugin.py：AppLoader 负责扫描 User_used/，解析 app.json（可选），加载 main.py，执行 run(context)，并处理生命周期钩子（on_install, on_uninstall）。
menu.py：重构菜单引擎：
Menu 类使用 get_options() 返回 List[Command] 或 Dict[str, Command]。
引入 MenuStack 管理历史，支持 back、home、jump。
菜单显示时自动订阅事件（如 language.changed 刷新翻译）。
command.py：Command 数据类，包含 name_key（i18n key）、handler（接收 **params）、requires_capability（可选）。
3. 命令层（commands/）
每个命令函数接收 params（不再显式传 context），通过 ServiceRegistry 获取所需服务。
拆分后职责清晰，新增 dev_commands.py 提供开发者工具。
4. 应用层（apps/ 与 userland/）
内置应用遵循相同接口：run(context)，但可重构为更干净的形式（未来统一为 Command）。
用户应用（User_used/）支持两种模式：
单文件模式：.py 文件，仅需暴露 run(context)（与现有兼容）。
目录模式：包含 app.json 和 main.py，支持元数据和多文件。
userland/loader.py 提供 load_user_apps() 返回 List[UserApp] 对象，包含名称、入口路径、权限声明。
四、核心交互流程示例
登录与切换语言
__main__.py 初始化 NoodowsRuntime，注册到 ServiceRegistry。
创建 UserManager, LanguageManager, EventBus 并注册。
调用 SessionManager.load() 获取上次用户 ID。
用户登录成功 → 调用 switch_user(user)：
更新 session.json
切换 LanguageManager.current
广播 event_bus.publish('user.login', uid=...)
语言切换时 → 广播 language.changed，所有活动菜单自动刷新（通过事件订阅）。
启动用户应用
在 UserSoftwareMenu 中扫描 User_used/，构建 Command 列表。
用户选择后，Command 执行 run_user_app(path, context)。
run_user_app 通过 importlib 加载模块，调用 mod.run(context)。
如果 app.json 中声明权限，AppLoader 会检查当前用户是否具有相应能力，否则拒绝启动。
五、技术债务清理与迁移策略
当前问题	解决方案	
__main__.py 臃肿	拆分至 commands/，保留顶层循环	
Config 与 AppContext 混杂	引入 ServiceRegistry 和 NoodowsRuntime，移除 AppContext
菜单裸函数回调	改用 Command 对象，统一返回类型
无事件总线	新增 core/event.py，关键操作发布事件	
用户应用无规范	定义 app.json 元数据，提供 loader.py	
缺乏开发者工具	新增 dev_commands.py（控制台、脚手架、日志跟踪）	
文件浏览器简陋	集成书签、批量操作、微型编辑器（mini_editor.py）
无彩色输出	引入 ansi.py，逐步替换 print
测试覆盖率低	补充单元测试，使用 pytest 和模拟输入	
六、路线图（Roadmap）与发布计划
完成基础设施层重构（infrastructure/），ServiceRegistry 上线。
迁移菜单至 Command 模式，引入 MenuStack。
新增 EventBus，实现 user.login 和 language.changed。
删除 _legacy/ 目录，清理幽灵代码。
实现 UserSoftwareMenu 动态加载，支持 app.json 解析。
新增权限系统（permission.py）和能力检查。
提供 dev console 和 app scaffold 命令。
内置 hello_world 和 todo 模板。
彩色输出（ansi.py）和进度条（可选依赖 tqdm）。
文件浏览器增强：书签、批量通配符、内置 mini_editor。
快捷键支持（Ctrl+L 清屏等）。
单元测试覆盖率 ≥80%。
用户文档和开发者文档完成（docs/）。
使用 PyInstaller 打包独立 .exe 发布。
七、结语
此架构设计在保持“玩具”趣味性的同时，引入了工业级的最佳实践（服务注册、事件驱动、权限模型），但每个模块都保持小巧、可理解。我们鼓励社区贡献者按照此蓝图逐步演进，每个小版本都保证可用，避免大爆炸式重写。
可以入手，优先实现基础设施层和菜单引擎重构，让代码更清晰，为后续插件生态铺路。期待 Noodows 成为真正的“人人都能写应用”的微型桌面环境。