Skip to main content
On this page

Status — agents-devkit (2026-05-22)

Live status of where things stand. Resume from the “Next step” section.

Where we are

P8 (the TUI) is complete locally — all 11 sub-phases shipped (α β γ δ ε ζ η θ ι κ λ) across 12 commits on main. The test_batch_run.py flake fix is committed as 248a5ae, and the release-readiness plan + session-4 archive are committed as 4ce534d.

Track B of docs/plans/release-readiness-v4-rc1.md is now implemented in the working tree: contributor guide, code of conduct, and security policy.

Validation ran npm run docs:build, which succeeded and refreshed generated docs/reference/ output through the docs:reference pre-step.

Test count

  • Repo-wide: 571 passing + 2 deliberate skips (skips guard claude-on-PATH-conditional tests).
  • TUI suite alone: 149 passing. Stability check: 4/4 consecutive runs green after the flake fix; 10x stress still in-progress (latest 4 results all green).
  • Pre-existing test_quiet_hours_aborts_inside_window red was fixed at the start of Session 4.

Working-tree state (uncommitted)

Text
?? CONTRIBUTING.md                         ← Track B contributor guide?? CODE_OF_CONDUCT.md                      ← Track B community covenant?? SECURITY.md                             ← Track B vulnerability policyM  docs/plans/release-readiness-v4-rc1.md  ← Track B status updatedM  docs/plans/progress/STATUS.md           ← this fileM  docs/reference/...                      ← generated reference refresh from docs:build?? docs/reference/scripts/enrich_metadata.md?? docs/reference/shared/guidelines/code-index.md?? docs/reference/skills/adk-cli.md

The .temp/prj-prod-ready/ directory was deleted as part of the .temp cleanup; its valuable artifacts (TUI specs + Session 1–3 reports) are preserved in docs/plans/archive/session-4/.

The flake fix (committed)

Root cause: ι’s RecapScreen (and other modals from η/κ) sit on top of the default screen. The TUI’s 2-second _maybe_reload timer calls _reload, _reload_plan, _reload_workers, _refresh_detail — each of which used self.query_one(...). Textual’s App.query_one searches only the active screen, so when a modal was on top, the queries raised NoMatches. A separate sub-bug: during app unmount, screen_stack drains to empty, and any in-flight worker’s _reload call would then crash with IndexError.

Fix:

  1. New AdkApp._default_query(widget_type) helper that does self.screen_stack[0].query_one(widget_type) — always targets the default screen where the main widgets live, ignoring whichever modal is active.
  2. All four timer-driven reload methods (_reload, _reload_plan, _reload_workers, _refresh_detail) plus the timer entrypoint _maybe_reload now early-return when self.screen_stack is empty (unmount-safe).
  3. The two test helpers _log_text and _footer_text in test_batch_run.py were also retargeted to app.screen_stack[0].query_one(...) so polls work after a modal pushes.

Verification: 10/10 consecutive runs of test_batch_run.py + test_recap_screen.py green; ongoing 10x stress of the full TUI suite is 4/4 green so far.

Plans landed in this session

  1. docs/plans/release-readiness-v4-rc1.md — track-by-track plan for the OSS hardening + v4.0.0-rc1 tag. 5 parallel-safe tracks (A: README polish; B: community files; C: GH templates; D: CI test workflow; E: pyproject + CHANGELOG; F: tag).
  2. docs/plans/archive/session-4/ — TUI specs (α through κ) + Session 1–3 reports preserved in-tree.
  3. docs/plans/progress/P8.md — fully updated to reflect all 11 sub-phases.

Next step (resume here)

Commit Track B, then proceed to Track C of docs/plans/release-readiness-v4-rc1.md.

Track B files:

Text
?? CONTRIBUTING.md?? CODE_OF_CONDUCT.md?? SECURITY.mdM  docs/plans/release-readiness-v4-rc1.mdM  docs/plans/progress/STATUS.mdM  docs/reference/...                      # generated by npm run docs:build?? docs/reference/scripts/enrich_metadata.md?? docs/reference/shared/guidelines/code-index.md?? docs/reference/skills/adk-cli.md

Suggested commit message:

docs: add community files for rc1 readiness

Add contributor, code-of-conduct, and security policies so external contributors know how to set up the repo, submit changes, and report vulnerabilities before the v4.0.0-rc1 tag. Refresh generated reference docs as part of the Pagesmith build verification.

Recommended next order:

  1. Track C (GH templates).
  2. Track D (CI test workflow).
  3. Track A (README polish).
  4. Track E (pyproject + CHANGELOG).
  5. Track F (the v4.0.0-rc1 tag — gated on explicit confirmation per constitution §I.4).

Earlier follow-ups still open (none load-bearing)

From P8.md:

  • η-M-2: RepoScreen._spawn_subprocess truncates multi-line errors.
  • θ-S-1: SIGTERM can’t cancel in-flight _run_streamed subprocess.
  • κ-S-1 / η-N-3: @work-decorated action double-push window.
  • κ-M-1: AgentPickerScreen falls through to row 0 on unknown current name.
  • ι: single-r doesn’t push a recap; long error lines clip at 60 chars.
  • ε-may-1: _PHASE_RE description truncates at 60 chars before the defensive [:80] slice.
  • ζ: test_R_respects_parallel_cap sampling rate; per-worker _reload waste at end of batch.

Commits on main (this session — 25 ahead of origin)

Text
9798375 feat(tui): λ — polish (themes, detach prompt, reattach banner) — P8 done3a98c40 feat(tui): ι — end-of-run recap modal after batch finishes3cb5a38 feat(tui): κ — agent picker + headless fallback181fee4 feat(tui): ε — phase-aware progress via worker stdout parsing1910c0b feat(tui): η — add-PR modal + repo management screen4cdef77 feat(install): set_statusline_in_claude — patch ~/.claude/settings.json4adc692 feat(tui): ζ — multi-select + ordered batch run with parallel cap86156df feat(tui): θ — WorkersPane + worker async-streaming refactor74bc44c feat(tui): δ — `r` runs a single-PR review workerda0b2b5 refactor(tui): drop LogPane.announce wrapper + harden log-text test2097f08 feat(tui): γ — `s` runs pr-sync, streams output to LogPane + SyncPlanPanea5b9968 fix(tests): pin _in_quiet_hours mock so test isn't wall-clock dependent