Hmbown / Hmbown/Codewhale

health digest 2026-09-14

Open
#6,172 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Rust
Stars
41k
Forks
3.6k
Avg merge
13h 59m
Merged PRs (30d)
299

Description

Weekly read-only health digest for `Hmbown/CodeWhale`, window 2026-09-07 → 2026-09-14. No PRs opened/closed, nothing pushed, no branches deleted. No previous `health digest` issue exists to close.

## Recommended actions (ranked by impact)

1. **Approve the contribution gate for @BX166 (#6171).** 5 workflow runs (CI, OpenHarmony, Web Frontend, both review bots) are stuck at `action_required`; the author is not in `.github/APPROVED_CONTRIBUTORS`. Approve the runs and add `all:BX166` or comment `/lgtm`. @VincentCorleone (#6170) is also unlisted but currently has no blocked runs.
2. **Main CI was red for 56 of 103 `ci.yml` runs on `main` this week (54%).** Latest `main` runs are green (last failure `a286ded6`, `Version drift` job). The dominant failure was a cluster of 8+ tests failing together on the same commits (`open_or_init_with_cap_rejects_oversized_workspace` ×12 job failures on `main`, the deepseek-cn/doctor/runtime_api group ×7) — these are broken-commit failures, not flakes. Only 4 `(sha, job)` pairs actually flip-flopped (true flakes) — see §3.
3. **Land or close the two stale Hmbown PRs** (#5752 cloud-facts, 15 days no activity; #5861 brand whale, 11 days): both `CONFLICTING`, both failing `Test (windows-latest)`. Three other PRs are also `CONFLICTING/DIRTY` (#6161, #6134, #6055) — main churn is outrunning open work.
4. **Version drift:** `npm/deepseek-tui` is `0.8.49` vs workspace `0.9.13`; `web/package.json` is `0.1.0` (probably intentional, but the `Version drift` CI job failed 14 times this week). Dead-code budget is **exactly at budget (413/413)** — the next `#[allow(dead_code)]` fails CI.
5. **Docs drift:** 14 code slash commands undocumented (`/advisor /balance /exit /import-claude /lsp /pin /structcopy /system /transcript /verbose /voice /voicecontrol /voicesend /workbar`); 7 documented commands not in code (`/rc /dryrun /preview_request /plan /yolo /relaunch /relay`). Prune 25 stale bot branches (§2) once confirmed dead.

## 1. Stale PRs (no commit or comment since 2026-09-07)

| PR | Author | Age | Last activity | Failing checks | Unresolved threads | Mergeable |
|---:|---|---|---|---|---:|---|
| #5752 | @Hmbown | 15d | 2026-08-30 | Test (windows-latest) | 0 | CONFLICTING |
| #5861 | @Hmbown | 11d | 2026-09-03 | Test (windows-latest) | 2 | CONFLICTING |

Other open PRs (8, all active in window): #6171 BX166 — **gate blocked**, 5 `action_required` runs; #6170 VincentCorleone — green, 8 unresolved threads, unlisted contributor; #6161 Hmbown — CONFLICTING, 8 threads; #6134 Hmbown — CONFLICTING, Lint failing; #6105/#6104 dependabot — green, mergeable; #6096 aboimpinto — green, CLEAN, 0 threads (ready to land); #6055 h3c-hexin — CONFLICTING, Lint + Windows Test + npm smoke failing, 3 threads. `buildkite/codewhale-ci` appears in the rollup only on #5861 (state `None`).

Command

```sh
for n in 6171 6170 6161 6134 6105 6104 6096 6055 5861 5752; do gh pr view $n --json author,createdAt,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup,commits,comments; done
# reviewThreads via GraphQL: pullRequest(number:$n){reviewThreads(first:100){nodes{isResolved}}}
gh run list --branch --limit 5 --json status,conclusion,name
```

## 2. Stale branches (no commits since 2026-08-15, no open PR, `snapshot/*` skipped) — 25

| Prefix | Count | Last commit |
|---|---:|---|
| `copilot/*` (copilot-swe-agent[bot] / Hmbown) | 14 | 2026-08-03 |
| `codex/*` | 3 | 2026-07-31 – 08-01 |
| `bisect/win-*` | 3 | 2026-08-06 |
| `contrib/accepted-0.9.4`, `contrib/pr-5233` | 2 | 2026-08-03 |
| `cleanup/v095-manageability`, `web/copy-buttons-hanspacing`, `copilot/runtime-api-*` etc. | 3 | 2026-08-07 – 08-13 |

Full list + command

```sh
git fetch --prune && git for-each-ref --sort=committerdate --format='%(refname:short) %(committerdate:short) %(authorname)' refs/remotes/origin
```
```
origin/codex/v094-budget-5001 2026-07-31 Hmbown
origin/codex/v094-bench-turn-scoping 2026-08-01 Hmbown
origin/codex/wave-5055-effort-table 2026-08-01 Hmbown
origin/copilot/v094-make-responses-provider-profiled 2026-08-03 copilot-swe-agent[bot]
origin/copilot/rename-deepseekclient-legacy-internals 2026-08-03 copilot-swe-agent[bot]
origin/copilot/move-workflow-status-top-bar 2026-08-03 copilot-swe-agent[bot]
origin/copilot/v094-extract-responses-dialect-policy 2026-08-03 copilot-swe-agent[bot]
origin/copilot/fix-provider-switching-issue 2026-08-03 copilot-swe-agent[bot]
origin/copilot/fix-sub-agent-fleet-spawn-rejects 2026-08-03 copilot-swe-agent[bot]
origin/copilot/fix-fleet-config-silhouette 2026-08-03 copilot-swe-agent[bot]
origin/copilot/whaleflow-janitor-implementation 2026-08-03 copilot-swe-agent[bot]
origin/copilot/whaleflow-cached-main-overlay 2026-08-03 copilot-swe-agent[bot]
origin/copilot/zero-sandbox-mode-dev 2026-08-03 copilot-swe-agent[bot]
origin/copilot/add-skill-install-update-uninstall-trust-audit 2026-08-03 copilot-swe-agent[bot]
origin/copilot/runtime-api-add-bounded-mcp-config 2026-08-03 Hmbown
origin/copilot/add-memory-inspection-endpoint 2026-08-03 copilot-swe-agent[bot]
origin/copilot/runtime-api-expose-verifier-evidence 2026-08-03 Hmbown
origin/copilot/expose-persistent-goal-loop-state 2026-08-03 Hmbown
origin/contrib/accepted-0.9.4 2026-08-03 Hunter Bown
origin/contrib/pr-5233 2026-08-03 Hunter Bown
origin/bisect/win-after-5077 2026-08-06 CodeWhale Bot
origin/bisect/win-after-5240 2026-08-06 CodeWhale Bot
origin/bisect/win-debug 2026-08-06 CodeWhale Bot
origin/cleanup/v095-manageability 2026-08-07 CodeWhale Bot
origin/web/copy-buttons-hanspacing 2026-08-13 CodeWhale Bot
```

## 3. CI flake ranking (2026-09-07 → 09-14)

**GitHub Actions `ci.yml`:** 238 runs, 88 failed. `main`: 103 runs / 56 failed. `pull_request`: 122 / 27.

Failed jobs: Lint 53 · Test (windows-latest) 46 · Test (macos-latest) 40 · Test (ubuntu-latest) 15 · Version drift 14 · npm wrapper smoke (ubuntu) 4 · Integrations 3 · Documentation 2 · Safety gate 2 · npm wrapper smoke (windows) 1.

Top failing tests (count = failing-job occurrences across all runs):

| # | Test | Count | Example |
|---:|---|---:|---|
| 1 | `tools::subagent::tests::queued_turn_owned_child_parks_without_a_false_start_transition` | 36 | [run](https://github.com/Hmbown/Codewhale/actions/runs/34438666350) |
| 2 | `tools::subagent::tests::turn_end_parking_preserves_a_step_zero_resumable_checkpoint` | 36 | same |
| 3 | `runtime_api::tests::fleet_status_runtime_api_exposes_state_and_actions` | 32 | [run](https://github.com/Hmbown/Codewhale/actions/runs/34455961246) |
| 4–10 | deepseek-cn / doctor_endpoint / provider_switch / composed_frame cluster (7 tests, fail together) | 28 each | same |
| 11 | `snapshot::repo::tests::open_or_init_with_cap_rejects_oversized_workspace` | 28 (12 on main) | [run](https://github.com/Hmbown/Codewhale/actions/runs/34444153260) |
| 12 | `route::export::tests::golden_providers_export_matches_registry` | 24 | [run](https://github.com/Hmbown/Codewhale/actions/runs/34454972579) |
| 13 | `local_ollama::tests::probe_live_local_ollama_catalog_reads_api_tags` | 10 | [run](https://github.com/Hmbown/Codewhale/actions/runs/34778986475) |
| 14 | `core::engine::tests::first_turn_waits_for_explicit_mcp_schema_without_waiting_for_unrelated_server` | 10 | [run](https://github.com/Hmbown/Codewhale/actions/runs/34545532092) |
| 15 | `tui::keybindings::tests::keybindings_md_and_help_catalog_do_not_drift` | 6 | [run](https://github.com/Hmbown/Codewhale/actions/runs/34637149620) |

**Truly flaky** (`(sha, job)` failed then passed on the same commit): `700b6fc0` Test (ubuntu) · `b6b3df36` Test (macos) · `0fa9ee91` Test (ubuntu) + npm wrapper smoke (windows). Everything else above failed consistently on its commit → regression/broken-branch, not flake. `probe_live_local_ollama_catalog_reads_api_tags` (live network probe) is the most likely environment-dependent candidate.

**Buildkite `codewhale-ci`:** 78 builds — 63 passed, 15 failed. Failed steps: `:rust: workspace tests` 12 · `:apple: workspace tests` 10 · `:rust: fmt + clippy` 4. No commit both failed and passed (0 flakes). 6 of 15 failures on `fix/0913-release-recovery-20260907`, 3 on `integration/new-prs-20260907`. Example: https://buildkite.com/hunter-bown/codewhale-ci/builds/1929

Commands

```sh
gh run list --workflow ci.yml --created '>=2026-09-07' --limit 300 --json databaseId,headSha,headBranch,event,conclusion,createdAt,url
gh run view --json jobs
gh run view --log-failed | grep -E 'test .* \.\.\. FAILED'
curl -s -H "Authorization: Bearer $BUILDKITE_READ_TOKEN" "https://api.buildkite.com/v2/organizations/hunter-bown/pipelines/codewhale-ci/builds?created_from=2026-09-07T00:00:00Z&per_page=100"
```

## 4. Drift checks (fresh `--depth 1` clone of main)

| Check | Result |
|---|---|
| `python3 scripts/check-dead-code-budget.py` | `PASS: 413 attributes, exactly at budget.` (exit 0) — **zero headroom** |
| `Cargo.toml` workspace version | 0.9.13 |
| `CHANGELOG.md` top entry | 0.9.13 (2026-09-13) ✓ |
| `npm/codewhale`, `npm/runtime-sdk` | 0.9.13 ✓ |
| `npm/deepseek-tui` | **0.8.49** (lagging) |
| `web/package.json` | 0.1.0 (not release-tracked) |

Docs vs product — sources of truth: 88 `CommandInfo.name` entries under `crates/tui/src/commands/**` (registered via `groups::all_command_groups()`), help view `crates/tui/src/tui/views/help.rs`; settings taxonomy `ConfigCategory::ALL` (7 categories: Appearance, ModelsProviders, Work, ToolsMcp, Trust, Motion, Advanced) in `crates/tui/src/tui/views/mod.rs`; `/setup` `STEP_SPECS` (10 steps) in `crates/tui/src/tui/setup/mod.rs`. Scanned `docs/` and `web/` (excluding `node_modules`).

- **In code, not in docs (14):** `/advisor /balance /exit /import-claude /lsp /pin /structcopy /system /transcript /verbose /voice /voicecontrol /voicesend /workbar`
- **In docs, not in code (7):** `/rc /dryrun /preview_request /plan /yolo /relaunch /relay`
- Settings: category names are generic words (Work, Trust, Motion…) so a text scan cannot prove docs coverage; no doc page enumerating the 7 `ConfigCategory` entries or the 10 `/setup` steps was found — worth a dedicated `/settings` reference page.

## 5. Security posture

| Source | Open |
|---|---:|
| Dependabot alerts (`gh api repos/Hmbown/CodeWhale/dependabot/alerts?state=open`) | **0** |
| CodeQL / code-scanning alerts | **unavailable** — HTTP 403 "Resource not accessible by integration"; `GITHUB_CODEWHALE_SECURITY_PAT` is not provisioned |

## 6. Open issues — 92

| Label | Count |
|---|---:|
| enhancement | 38 |
| (unlabeled) | 35 |
| rust | 16 |
| tui / cleanup | 9 / 9 |
| documentation | 6 |
| bug | 5 |
| tools / reliability | 4 / 4 |
| agent-ready | 3 |
| ux / v0.9.12 / responses-api | 2 each |
| dependencies, subagents, question, external-memory, release-blocker, model-lab | 1 each |

Issues with no non-author **human** response and no update in >14 days (before 2026-08-31): **0**. Caveat: every issue gets an automated `codewhale-issue-intake` comment; excluding bots (`github-actions`, `*[bot]`) still yields 0 because all 92 were updated within 14 days (stale-bot/label churn), so this metric is not currently discriminating.

Command

```sh
gh issue list --state open --limit 1000 --json number,title,labels,createdAt,updatedAt,comments,author
```

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the ranked recommendations and the commands in the issue, especially the CI, branch, drift, and documentation checks; referenced entry points include ci.yml, scripts/check-dead-code-budget.py, crates/tui/src/commands/**, help.rs, and setup/mod.rs. This report has no single bounded change or acceptance criterion, so confirm which recommendation is being claimed before defining done.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, github-actions, rust
Domain
devops, documentation, tooling
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.