RFC: split LoopX distributions inside the monorepo (loopx-core / loopx-workspace / capability packages) and pin top-level module growth
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
- Issue 类型
- 重构
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- node.js, python, typescript
- 领域
- backend, build-system, devtools
调研方向
Start by reading pyproject.toml and tests/architecture/test_control_plane_import_boundaries.py to understand the current packaging and architecture checks. The RFC PR is already linked, so check its discussion before taking on work. Done would mean the agreed distribution boundaries, compatibility period, and acceptance checks are implemented and verified.
由索引模型根据 Issue 内容生成。
描述
Problem
The loopx wheel is one distribution that installs the kernel, the CLI, 33 built-in capabilities, the chat/workspace server, and the Python side of the TS effect runtime. On main@3e443ad7c:
loopx/top level: 143 flat*.pyfiles / ~78.8k lines, including 37chat_*.pymodules and 9*_goal_mode/host packages next to the kernel.loopx/control_plane≈131k lines,loopx/capabilities≈115k lines,loopx/extensions≈44k lines in one package.pyproject.tomldeclaresdependencies = []and describes "a lightweight ... control plane", but the effect runtime requires Node.js ≥ 22.22.3 for every install, including CLI-only or kernel-only use.- Coupling is bidirectional: 52 kernel/CLI/top-level modules import
loopx.capabilities; 74 capability modules importloopx.control_plane. packages/already hosts 9 independently packaged extensions (loopx-finance-*,loopx-jev,loopx-obelisk,loopx-repo-health, ...), so the repository has two packaging conventions at once.
Effects: first-use installs pull everything; contributors cannot find module boundaries from the tree; the import-boundary tests protect control_plane inward edges but nothing stops the top level from growing.
Proposal (monorepo stays; distributions split)
Do not split the repository. Keep one repo and one PR/CI flow, especially while the TypeScript control-plane migration is in its transaction-cutover phase. Instead:
- Top-level regrouping first (pure moves + compat re-exports):
loopx/chat_*.py→loopx/chat/;loopx/*_goal_mode/→loopx/hosts/; keep import paths working through re-export shims for at least one minor release. - Architecture test "top-level file count does not grow": alongside
tests/architecture/test_control_plane_import_boundaries.py, pin the current count ofloopx/*.pyand only allow it to decrease. - Distributions:
loopx-core(kernel + CLI + minimal host adapters; Node runtime declared as an optional extra or bundled),loopx-workspace(chat server,apps/presentation, desktop), and per-capability packages migrated intopackages/behind the existingCapabilityRegistryprovider boundary. - Package graduation to separate repos is explicitly out of scope until the kernel migration is complete and a package has its own maintainers.
Acceptance sketch
pip install loopx-coreon a clean machine without Node succeeds andloopx --help/ read-only status work; effect-runtime commands report a typednode_unavailablediagnostic instead of failing at import time.loopx/*.pycount is pinned and decreasing; the architecture test fails on any new top-level module.- Existing
import loopx.chat_serverstyle imports keep working for one minor release with a deprecation note. - Capability packages moved to
packages/install/uninstall independently and off-state preserves core behavior (same rule as existing extensions).
- 主要语言
- Python
- 星标
- 6.2k
- 派生
- 596
- 平均合并
- 7 小时 47 分钟
- 30 天内合并 PR
- 904
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
loopx-project/loopx 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 84/100
loopx-project/loopx#6842 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
loopx-project/loopx#6108 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
loopx-project/loopx#5688 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 60/100
loopx-project/loopx#5632 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
loopx-project/loopx#5443 · 1 条评论 ·
维护者通常 1 天内回复
查看 loopx-project/loopx 的全部 Issue
相似的 Issue
-
infrastructure
难度 2/5 1-3 小时 新手友好度 74/100
khuisman/mcp-gee-sweet#1152 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
-
backroom bug
难度 2/5 1-3 小时 新手友好度 68/100
ditto-assistant/ditto-subnet#3069 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 67/100
open-webui/open-webui#32901 · 1 条评论 ·
维护者通常 1 天内回复
-
0.3.3 bug
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复