- No product functionality changes.
- Validation-focused pass for presentation readiness.
- Existing dirty
.gitignoreanddocs/architecture/changes were left intact.
Commands run:
pnpm run typecheck
pnpm run lint
pnpm run test
pnpm run test:rust
git diff --checkResults:
pnpm run typecheck: passed.pnpm run lint: passed with 38 warnings, mostly React compilerset-state-in-effectwarnings plus one stale eslint-disable.pnpm run test: passed, 214 test files, 1 skipped; 1,977 tests passed, 3 skipped.pnpm run test:rust: passed viascripts/test-rust-with-mock.sh.git diff --check: passed.
- Triage React compiler lint warnings before treating lint output as presentation-clean.
- Decide whether Node
localStorage is not availablewarnings in Vitest should be silenced with an explicit test environment/localStorage configuration.
Original source checkout scope:
- Removed one stale
eslint-disable-next-line no-consoledirective fromapp/src/services/meetCallService.ts. - No behavior change.
Validation:
pnpm run lintResult: passed with 37 warnings, down from 38. Remaining warnings are React
compiler set-state-in-effect warnings plus one no-explicit-any warning.
Follow-up cleanup:
- Replaced the remaining
no-explicit-anycast in the source checkout'sapp/src/lib/mcp/transport.tswith a typed MCP event handler map. This transport cleanup was already obsolete on the cleanorigin/mainextraction branch and is not part of the PR branch. pnpm run lint: passed with 36 warnings, down from 37. Remaining warnings are React compilerset-state-in-effectwarnings.pnpm run typecheck: passed.git diff --check: passed.
Follow-up cleanup:
- Moved mnemonic/recovery-phrase mode resets out of effects and into the mode
switch event handlers in
app/src/pages/Mnemonic.tsxandapp/src/components/settings/panels/RecoveryPhrasePanel.tsx. - Removed dead sidebar label reset state from
app/src/pages/Conversations.tsxso the fixed tab model owns empty label categories directly. pnpm run lint: passed with 33 warnings, down from 36. Remaining warnings are React compilerset-state-in-effectwarnings.
Added docs/PORTFOLIO_READINESS.md with:
- validation evidence,
- cleanup summary,
- remaining React compiler warning debt,
- public claim boundary,
- next lint-policy slice.
No product behavior changes.
Implementation branch: codex/openhuman-portfolio-lint-readiness-upstream.
Base: upstream/main at 83bc5648.
The source checkout was already on codex/operator-mvp-plan with generated
architecture artifacts and several cleanup changes. The clean extraction keeps
only the still-relevant portfolio lint/readiness slice:
.gitignoreignores local.cocoindex_code/index output.app/src/components/settings/panels/RecoveryPhrasePanel.tsxmoves recovery phrase mode resets into the explicit mode switch handler.app/src/pages/Mnemonic.tsxmoves mnemonic mode resets into the explicit mode switch handler.app/src/pages/Conversations.tsxremoves dead label reset state now that the fixed tab model owns label categories.docs/PORTFOLIO_READINESS.mdrecords validation evidence and the remaining warning boundary.
Excluded:
- Generated
docs/architecture/scan artifacts. - Obsolete source-checkout changes that were already absent from current
upstream/main, including the MCP transport cast cleanup and removed meet call service cleanup. - Broader Core RPC, config, or scanner-memory architecture refactors.
Gemini secondary review:
- Pre-review was attempted with
gemini-2.5-flash, but Gemini repeatedly returned 429 model-capacity errors. This branch therefore has local validation evidence but no completed Gemini review for the OpenHuman slice.
Validation on the upstream-based clean extraction branch:
pnpm installResult: passed after the upstream rebase installed the missing current workspace packages from the local pnpm store. Build scripts were left unapproved.
pnpm run lintResult: passed with 35 warnings. Remaining warnings are
react-hooks/set-state-in-effect.
pnpm run typecheckResult: passed.
pnpm --filter openhuman-app exec vitest run --config test/vitest.config.ts src/pages/__tests__/Conversations.test.tsx src/pages/__tests__/Conversations.render.test.tsx src/components/settings/panels/__tests__/RecoveryPhrasePanel.test.tsxResult: passed, 3 files and 24 tests. Vitest still emitted the known Node
localStorage is not available warning.
git diff --checkResult: passed.
pnpm --filter openhuman-app exec prettier --check .Result: passed from app/.
cargo fmt --manifest-path Cargo.toml --all --check
cargo fmt --manifest-path app/src-tauri/Cargo.toml --all --check
cargo check --manifest-path app/src-tauri/Cargo.tomlResult: passed. cargo check emitted existing Rust warnings.