Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Task]: shorten the todo list default summary behind a typed full-payload escape hatch (GH-C88)

Aperta
#5,895 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
cli, python
Ambito
cli, tooling

Direzione di ricerca

Read the todo list read projection in the CLI command layer and the todo_list spec in loopx/control_plane/testing/cli_output_budget.py. Run python3 examples/control_plane/cli-output-budget-regression-smoke.py to understand the existing budget and differential checks. The design is still open on the escape-hatch flag, summary size, and ceilings; done means the default is bounded, the escape hatch preserves the full payload shape, and the smoke and loopx check --scan-path docs/status-data-contract.md pass.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Task ID or area

GH-C88 (Lane B, S12 · "reduce review effort for useful changes" / #2881) — the todo list default summary

Technical direction

Core control-plane hardening

Intent

I need design feedback before implementation

Anchor type

Roadmap stream / milestone / card (S, G, R) in loopx-overall-roadmap-v0

Anchor reference

S12 · "reduce review effort for useful changes" / #2881; contributor board row GH-C88 (currently Needs design)

Goal, who is blocked, and exit

Current gap: todo list is the agent work-queue read path (qualified_default, surface todo_list), and its default JSON output is the full payload. Measured on the budget harness's crowded fixture (36 todos, 12 runs; 2244b96, native Windows host, Node 22.23.3; budget rows verified unchanged at current main): 17,450 chars / 493 lines while returning 12 of 36 todos. The structure is the problem, not just the size: 19 top-level keys with three parallel todo arrays (todos, agent_todos, user_todos — the same data grouped three ways), a per-item schema_version, and near-duplicate text/title per item. The manifest ceiling has been characterized at 82,000 chars crowded/json with a 2,050-chars-per-todo growth slope — the steepest in the matrix (next is status at 550/todo) — so agents pay a full-page readback to answer "what should I work on next", which is exactly the symptom reported in #2881.

Who is blocked without it: agents and operators who read the work queue every turn (token cost on the hot path), and reviewers who re-approve large readback diffs.

Accepted outcome (before → after): before, default todo list emits the full triple-array payload; after, the default output (both formats) is a bounded summary — envelope with ok, goal_id, todo_count / returned_todo_count / unfiltered_todo_count plus the top-N actionable todos, each carrying only todo_id, title, status, priority, claimed_by — and a typed escape-hatch flag emits the complete current payload with its shape unchanged, so existing automation keeps working untouched.

Exit condition: the default summary ships with the escape hatch, the todo_list manifest ceilings are tightened with matched measurements (proposal below), python3 examples/control_plane/cli-output-budget-regression-smoke.py (manifest + differential probe) passes, and loopx check --scan-path docs/status-data-contract.md stays clean.

Proposed scope

In scope / owner: the todo list read projection, its mode-variant/spec rows in loopx/control_plane/testing/cli_output_budget.py, and the new escape-hatch flag. Owned by @BigDataDZ.

Existing related work / dependencies: the existing budget regression smoke and its base/head differential probe; the turn-plan writeback-route discipline (compaction must not discard or redirect routing, already guarded by an assertion I will keep green).

Out of scope: the other nine qualified_default surfaces (status is the second-steepest at 550/todo and is deliberately untouched), write paths, scheduler/quota semantics, and any change to the full payload shape behind the escape hatch.

If staged: N/A — one cohesive slice.

Intended base branch

main

Relevant files or commands
  • loopx/control_plane/testing/cli_output_budget.py (todo_list spec + a new mode-variant row for the escape hatch)
  • the todo list read projection in the CLI command layer
  • python3 examples/control_plane/cli-output-budget-regression-smoke.py
  • loopx check --scan-path docs/status-data-contract.md
Validation plan

Accepted result and independent oracle: on the crowded fixture the default todo list JSON drops from the measured 17,450 chars / 493 lines to within the tightened ceiling while keeping every decision signal the summary claims (id/title/status/priority/claimed_by per surfaced todo plus the three counts); the escape hatch emits the full payload with an unchanged shape; the tightened manifest and the differential probe enforce both directions.

Actual entrypoint / safe command: python3 examples/control_plane/cli-output-budget-regression-smoke.py; a focused default-vs-escape-hatch todo list smoke.

Negative or recovery case: the differential probe's growth/duplication assertions on the default output — re-adding a parallel array or a per-item schema_version must fail the tightened ceilings.

Frontend / Lark / CLI impact: CLI only (the todo list default output).

Open design questions
  1. Escape-hatch flag name: --full-json (proposal) vs a --brief-style inversion following the heartbeat convention (--thin / --brief).
  2. Summary N: proposal N = 8 next-actionable todos in the existing stable order.
  3. Tightened ceilings: proposal crowded/json 82,000 → ~24,000 and growth 2,050 → ~600 per todo, from the measurement above; maintainers may prefer a different differential allowance.
Public/private boundary
  • This issue does not include private benchmark traces, verifier output, credentials, internal document links, raw agent sessions, or local runtime state.
  • I will not run or duplicate maintainer-owned benchmark cases unless a maintainer explicitly splits out a public task.
  • This task is not a standalone catalog entry, behavior-pinning test, fixture dimension, rename, or docs restatement; if it includes one, the anchor above names the code, test, or copy that consumes it.
Lingua principale
Python
Stelle
6.2k
Fork
596
Merge medio
7h 47m
PR unite (30g)
904

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di loopx-project/loopx

Tutte le issue di loopx-project/loopx

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.