Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

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

未关闭
#5,895 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
cli, python
领域
cli, tooling

调研方向

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.

由索引模型根据 Issue 内容生成。

描述

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.
主要语言
Python
星标
6.2k
派生
596
平均合并
7 小时 47 分钟
30 天内合并 PR
904

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

loopx-project/loopx 的其他 Issue

查看 loopx-project/loopx 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。