9.7 KiB
Open PR Reconciliation Handoff - 2026-05-13
Snapshot taken from tinyhumansai/openhuman on 2026-05-13 after fetching
upstream/main at 2b64ea8a (chore(release): v0.53.43). The queue is
moving quickly; refresh the PR list before acting.
This is a reconciliation-first handoff. It does not change product code.
Current Queue
- Open PRs: 28.
- Merge-state shape: 23
BLOCKED, 5DIRTY. - Draft PRs: #1644, #1519, #1420, #1383.
- High-risk conflict/rebase set: #1671, #1646, #1518, #1462, #1420.
- Broadest PRs by changed files: #1420 (93 files), #1518 (90 files), #1671 (19 files), #1519 (13 files), #1677 (12 files), #1488 (11 files).
| PR | State | Merge | Files | Size | Updated | Notes |
|---|---|---|---|---|---|---|
| #1678 | ready | BLOCKED | 2 | +280/-16 | 2026-05-13 19:29Z | Triage prompt-guard rejection handling. |
| #1677 | ready | BLOCKED | 12 | +2623/-1 | 2026-05-13 19:25Z | Gameplay review workflow; failing broad CI and review requested. |
| #1676 | ready | BLOCKED | 4 | +238/-3 | 2026-05-13 18:54Z | Backend 4xx observability classifier. |
| #1672 | ready | BLOCKED | 2 | +68/-8 | 2026-05-13 18:07Z | Socket sustained-outage classifier; cancelled lightweight checks observed. |
| #1671 | ready | DIRTY | 19 | +1772/-265 | 2026-05-13 18:09Z | BYO Composio API key; conflicts with Composio/integrations/settings surfaces. |
| #1657 | ready | BLOCKED | 8 | +344/-1 | 2026-05-13 17:31Z | Gmail unsubscribe agent; overlaps tools/memory email surfaces. |
| #1656 | ready | BLOCKED | 8 | +52/-103 | 2026-05-13 15:13Z | Local AI test isolation. |
| #1646 | ready | DIRTY | 6 | +265/-20 | 2026-05-13 17:06Z | Portfolio readiness docs/lint; conflicts with active UI pages and docs. |
| #1645 | ready | BLOCKED | 2 | +39/-1 | 2026-05-13 18:25Z | Provider function argument parse guard. |
| #1644 | draft | BLOCKED | 9 | +1474/-0 | 2026-05-13 17:12Z | Deep-work automation scripts; draft. |
| #1641 | ready | BLOCKED | 3 | +458/-155 | 2026-05-13 20:02Z | Windows FS retry; changes requested. |
| #1636 | ready | BLOCKED | 2 | +212/-1 | 2026-05-13 18:04Z | Stale credentials lock recovery. |
| #1635 | ready | BLOCKED | 3 | +88/-31 | 2026-05-13 16:04Z | Screen-intelligence idempotent session start. |
| #1634 | ready | BLOCKED | 10 | +325/-51 | 2026-05-13 20:00Z | Agent max-iteration observability; checks still running. |
| #1633 | ready | BLOCKED | 10 | +344/-84 | 2026-05-13 20:08Z | Budget-exhausted observability; PR checklist failed and review requested. |
| #1632 | ready | BLOCKED | 7 | +474/-37 | 2026-05-13 20:07Z | Transient backend/integrations observability; checks still running. |
| #1630 | ready | BLOCKED | 2 | +298/-4 | 2026-05-13 18:28Z | Integrations local-AI URL fallback. |
| #1623 | ready | BLOCKED | 1 | +80/-0 | 2026-05-13 19:23Z | Vision RAM-tier observability skip. |
| #1620 | ready | BLOCKED | 1 | +57/-10 | 2026-05-13 17:59Z | UTF-8 memory ingest slicing. |
| #1589 | ready | BLOCKED | 3 | +377/-0 | 2026-05-13 14:42Z | Contributor reward invite automation. |
| #1561 | ready | BLOCKED | 3 | +744/-0 | 2026-05-13 18:38Z | Memory benchmark fixtures. |
| #1519 | draft | BLOCKED | 13 | +1065/-19 | 2026-05-12 07:07Z | Learning summarizer; draft. |
| #1518 | ready | DIRTY | 90 | +3727/-1295 | 2026-05-13 06:33Z | Chinese i18n; very broad UI surface. |
| #1488 | ready | BLOCKED | 11 | +646/-126 | 2026-05-13 18:09Z | Orchestrator delegation collapse. |
| #1462 | ready | DIRTY | 5 | +886/-789 | 2026-05-10 23:43Z | "Files Reviewed"; stale/conflicting, many failed checks, changes requested. |
| #1420 | draft | DIRTY | 93 | +10060/-35 | 2026-05-10 21:31Z | iOS client; largest branch, draft and conflicting. |
| #1383 | draft | BLOCKED | 1 | +57/-0 | 2026-05-10 21:30Z | Worker clone disposition docs. |
| #1321 | ready | BLOCKED | 4 | +84/-13 | 2026-05-10 21:31Z | Core-state rewards timeout UX. |
Conflict Clusters
These files are touched by multiple open PRs and should be treated as hot surfaces. Do not launch implementation work here until the relevant PRs are rebased, merged, or closed.
| Surface | PRs | Risk |
|---|---|---|
src/core/observability.rs |
#1676, #1634, #1633, #1632, #1623 | Highest overlap. Pick a canonical observability stack order before rebasing. |
app/src-tauri/src/lib.rs |
#1634, #1633, #1632, #1420 | Tauri shell overlap; avoid mixing iOS shell work with observability fixes. |
src/main.rs |
#1634, #1633, #1632 | Observability initialization overlap. |
src/openhuman/integrations/client.rs |
#1676, #1632, #1630 | Integrations error classification and local-AI fallback interact. |
app/src/App.tsx |
#1518, #1420 | Broad UI architecture conflict between i18n and iOS routing. |
app/src/pages/Settings.tsx |
#1671, #1420 | BYO Composio settings conflicts with iOS settings changes. |
src/core/all.rs, src/openhuman/about_app/catalog.rs, src/openhuman/mod.rs |
#1677, #1420 | Core module/catalog registration overlap. |
src/openhuman/agent/harness/*, src/openhuman/channels/runtime/dispatch.rs |
#1634, #1519, #1488 | Agent runtime, learning, and delegation work should not proceed independently. |
src/openhuman/credentials/profiles.rs |
#1641, #1636 | Windows retry and stale-lock recovery need one canonical credential-lock PR. |
Cargo.toml, Cargo.lock, pnpm-lock.yaml |
#1462, #1420 | Dependency/lockfile churn; #1462 appears stale and should not be used as a base. |
Validation Gates
OpenHuman PRs carry both local and CI gates. For code PRs, the minimum gate is the smallest focused command that proves the changed surface plus the relevant global merge checks:
- PR body/template gate:
pnpm pr:checklist <body-file>. - Formatting:
pnpm --filter openhuman-app format:check; Rust changes also needcargo fmt --manifest-path Cargo.toml --all --checkand, for Tauri,cargo fmt --manifest-path app/src-tauri/Cargo.toml --all --check. - TypeScript:
pnpm typecheckfor app-facing TypeScript changes. - Focused tests: Vitest file-level tests for changed React/TS behavior;
pnpm debug rust <filter>for Rust behavior. - Coverage gate: CI enforces changed-line diff coverage at or above 80%.
- Docs-only changes: run the PR checklist parser and any available markdown link/check workflow locally when dependencies are installed.
Current blocker pattern:
DIRTYPRs need rebase/conflict resolution before any CI result matters.BLOCKEDPRs are mostly mergeable but waiting on checks, reviews, checklist failures, or branch protection.- #1677 and #1462 have concrete failed CI/check evidence and should not be treated as safe to merge without repair.
- #1633 has a failed PR checklist and requested changes; fix the body/checklist before spending compute on broad tests.
- Before rebasing or repairing any existing PR, refresh metadata with
gh pr view <number> --repo tinyhumansai/openhuman --json body,changedFiles,mergeStateStatus,mergeable,state,statusCheckRollup. - If validating an existing PR body, feed the actual body into the checklist
parser:
gh pr view <number> --repo tinyhumansai/openhuman --json body --jq .body | pnpm pr:checklist -.
Recommended Reconciliation Order
- Close or explicitly supersede stale/meta PRs before implementation: #1462 should be audited first because it is conflicting, has broad failed checks, and has an unclear title. If it has no unique current work, close it with a pointer to the canonical replacement.
- Reconcile observability as a single stack: compare #1623, #1632, #1633, #1634, #1676, and #1672. Choose an order from narrowest independent classifier to broadest runtime initialization. Rebase one PR at a time and rerun focused observability tests plus checklist. #1676 is the likely base candidate because it changes the backend 4xx classifier that broader observability filters build on.
- Reconcile credentials-lock PRs: decide whether #1636 or #1641 is canonical, then port any unique tests/fixes into the kept branch.
- Keep broad feature branches out of the merge queue until smaller fixes land: #1420, #1518, #1671, #1677, #1519, and #1488 all overlap hot surfaces.
- Only after the queue is quieter, launch implementation work outside these hot files.
Do not batch-rebase PRs from the conflict-cluster table. Rebase and validate one branch at a time so failures can be attributed to the branch being repaired.
Next Safe Implementation Slice
Do not start in observability, settings, Tauri shell, agent harness, or iOS/i18n routing. The next safe slice is a small reconciliation task:
- Target: canonicalize #1462 disposition.
- Work:
- Refresh metadata first with
gh pr view 1462 --repo tinyhumansai/openhuman --json body,changedFiles,mergeStateStatus,mergeable,state,statusCheckRollup. - Fetch
refs/pull/1462/headand compare it againstupstream/main. - Identify whether the branch contains any unique, still-relevant code.
- Inspect lockfile/dependency churn in
Cargo.toml,Cargo.lock,pnpm-lock.yaml, andscripts/mock-api-core.mjs; these may have been superseded by thev0.53.43release merge. - If no unique work remains, close #1462 as stale/superseded and link this handoff plus the canonical replacement PRs.
- If useful work remains, create a new narrow issue/branch for only that surface; do not rebase the full PR.
- Refresh metadata first with
- Validation:
git diff --name-status upstream/main...refs/tmp/pr-1462git log --left-right --cherry-pick --oneline upstream/main...refs/tmp/pr-1462gh pr view 1462 --repo tinyhumansai/openhuman --json body --jq .body | pnpm pr:checklist -pnpm pr:checklist <generated-body>only if a replacement PR is opened.
After #1462 is resolved, the next implementation-grade slice should be the observability-stack canonicalization because it is blocking the most active ready PRs.