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_windowred was fixed at the start of Session 4.
Working-tree state (uncommitted)
?? 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.mdThe .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:
- New
AdkApp._default_query(widget_type)helper that doesself.screen_stack[0].query_one(widget_type)— always targets the default screen where the main widgets live, ignoring whichever modal is active. - All four timer-driven reload methods (
_reload,_reload_plan,_reload_workers,_refresh_detail) plus the timer entrypoint_maybe_reloadnow early-return whenself.screen_stackis empty (unmount-safe). - The two test helpers
_log_textand_footer_textintest_batch_run.pywere also retargeted toapp.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
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).docs/plans/archive/session-4/— TUI specs (α through κ) + Session 1–3 reports preserved in-tree.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:
?? 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.mdSuggested 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:
- Track C (GH templates).
- Track D (CI test workflow).
- Track A (README polish).
- Track E (pyproject + CHANGELOG).
- 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_streamedsubprocess. - κ-S-1 / η-N-3:
@work-decorated action double-push window. - κ-M-1: AgentPickerScreen falls through to row 0 on unknown current name.
- ι: single-
rdoesn’t push a recap; long error lines clip at 60 chars. - ε-may-1:
_PHASE_REdescription truncates at 60 chars before the defensive[:80]slice. - ζ:
test_R_respects_parallel_capsampling rate; per-worker_reloadwaste at end of batch.
Commits on main (this session — 25 ahead of origin)
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