[Bug]: the pinned top-level module budget is already exceeded on main (150 measured against 147)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
Línea de trabajo
Start with tests/architecture/test_top_level_module_budget.py and tests/architecture/top_level_module_budget.json, then read Section 9 and Appendix A of RFC monorepo-distribution-split-v0 and the linked context in #5072 and #5191. The owner needs to decide among the three listed options; done means the decision is explicit and the budget gate's status matches it, with any move or re-pin reflected in the relevant files.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What is failing on main
tests/architecture/test_top_level_module_budget.py::test_top_level_module_count_stays_at_the_pinned_budget fails on an unmodified main.
Measured on bfe3c4344 (current main tip at the time of writing):
git ls-tree --name-only main loopx/filtered to*.py→ 150 top-level modules.tests/architecture/top_level_module_budget.jsonstill pinsmax_top_level_modules: 147, withbaseline_commit: 9eaacfbf2.- So the gate that #5191 landed to stop the top level from growing is red on
mainby 3 modules, and every PR based on currentmaininherits that failure.
For context, #5597 — merged about an hour before this was written — measured 149 at its own base and disclosed the same gate as pre-existing red. The drift is not hypothetical, it is happening between PRs.
Which commits raised it
The top-level additions since the 147 baseline, read with git log --diff-filter=A --name-only -- 'loopx/*.py':
| commit | new top-level module |
|---|---|
9eaacfbf2 |
(the pinned baseline; #5191 measured 147 here) |
9cb6a5433 feat: back up complete machine and Goal configuration checkpoints |
loopx/configuration_backup.py, loopx/chat_configuration_backup_api.py |
d7ad25654 feat(chat): add authorized ordinary workspace conversations |
loopx/chat_project_context.py |
b9df6d1d0 (#5587) fix(workspace): isolate edits and preserve complete current evidence |
loopx/chat_todo_detail.py |
None of those is wrong on its own terms; the count is what RFC monorepo-distribution-split-v0 Section 9 asked to keep visible. This issue exists so the number is decided on purpose rather than inherited as a red test.
What this is not asking for
- Not an automatic raise of the pin. #5191's own reasoning is that the budget is the thing that makes growth visible;
147 → 150without a decision is exactly the drift the gate exists to catch, and the RFC's Appendix A already recorded the same surface moving 143 → 148 while the proposal was being reviewed. - Not a claim that these modules belong in subpackages.
chat_*→loopx/chat/is milestone M1 and*_goal_mode→loopx/hosts/is M2 of that RFC, and both are gated on decisions D1–D4 which the RFC says are not authorised by merging M0.
Options for the owner, with the cost of each
- Move M1/M2 forward (the RFC's own remedy): the number goes down and the gate keeps its meaning. This is the only option that reduces the count.
- Re-pin to the measured number in a maintainer-owned commit, with the note updated to the commit where the re-pin happened. Cheap, honest, and it costs the "a third spelling of growth is still a regression" signal described in
loopx/semantics/vocabulary_v0.json→inventory_ratchets.meaning. - Leave it red and treat the failing id as expected noise. This is the current de facto state, and its cost is that every contributor must diff failure sets against a clean baseline to prove their own PR is neutral — #5191, #5252, #5358 and #5597 each paid that cost in writing.
What I have verified locally
- The gate is red on an unmodified worktree at
bfe3c4344— same interpreter (uv venv+uv pip install -e ".[test]"), Node pinned to the repository's qualified 22 line,npm ci --ignore-scriptsrun once. tests/architectureplustests/canaryon that unmodified tree: 24 failed / 1378 passed, of which 22 aretests/architecture/test_contributor_task_board.py(the contributor-task-board anchor rules), 1 is this budget gate, and 1 istests/canary/test_maintainability_ratchet.py::test_current_repository_debt_is_reviewed_without_line_count_pins. #5597 disclosed three pre-existing reds including this budget gate and the ratchet; the task-board file accounts for the rest.- #5684 (
refactor(control-plane): decide the agent-lane progress scope in one owner) deliberately places its new owner insideloopx/control_plane/rather than atloopx/*.py, so it cannot add to this count.
Refs #5072 (the distribution-split programme this gate belongs to) and #5191 (the PR that landed the pin). No milestone claimed or closed here.
- Lenguaje dominante
- Python
- Estrellas
- 6.2k
- Forks
- 596
- Merge medio
- 6 h 44 min
- PR fusionados (30 d)
- 915
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de loopx-project/loopx
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
loopx-project/loopx#6842 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
loopx-project/loopx#6108 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
loopx-project/loopx#5688 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
loopx-project/loopx#5632 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
loopx-project/loopx#5443 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de loopx-project/loopx
Issues similares
-
[Bug] Unit tests reach real Bedrock call paths without patching the modelPosiblemente ocupada @proton0210 la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
aws-samples/sample-aws-genai-db-modernizer#1318 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
pyarrow-25.0.1-cp310-cp310-manylinux_2_28_x86_64.whl: 1 vulnerabilities (highest severity is: 5.3)AbiertoMend: dependency security vulnerability
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
capitalone/locopy#394 ·
-
[Bug] Unhandled ValueError terminates watchdog thread when GISRC value contains multiple colonsAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
sdk-typescript: unquoted COPY globs in shell form are silently dropped from the image build contextAbiertobug javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
ietf-tools/datatracker#11922 · 1 comentario ·
Los mantenedores suelen responder en 1 día