feat(omo-native): add Wave 0 native adapter scaffold#5454
Conversation
|
Wave 0 work report: implemented, pushed, and kept draft-only. Commits pushed:
Manual QA actually run and recorded:
Evidence bundle in branch:
PR state remains: draft, not ready, not merged. |
|
CI fix update after the first failed GitHub Actions run. Root cause confirmed: GitHub Actions checkout does not initialize the new Fix pushed:
Fresh proof from the pushed branch:
PR state remains draft-only, not ready, not merged. |
|
CI fix update for Wave 0, keeping this PR draft-only. What changed in
Manual/local verification after the fix:
New PR-visible evidence:
Pushed immediately after commit. New GitHub checks are running now; PR remains draft and not ready. |
Final draft PR status updateCurrent head:
|

Summary
Wave 0 for the omo-native plan: this adds the native adapter package boundary and Senpi submodule wiring without implementing the later runtime bridge. The new package builds to a Pi-compatible default-exported extension factory, while the focused native seam test intentionally stays RED for Wave 1's real Senpi/pi type-layer import.
This PR is intentionally draft-only. Do not mark ready and do not merge until explicitly requested.
Changes
packages/senpias a git submodule pinned to4ce93bcfbc7c681a709f2579f664b1bbf92fbc1b.@oh-my-opencode/omo-nativewithbuild.mjs, stricttsconfig, Pi manifest entry, and default-exported extension factory stub.build:native, root package typecheck coverage, and Bun test ignores for the new native/senpi trees.seam-boundary-audit.test.tsto block raw Senpi/pi imports outsidesrc/senpi/**; its positive seam assertion is intentionally RED until Wave 1 replaces the local stub with a real Senpi/pi type-layer import.script/package-registration-audit.test.tssopackages/omo-nativeis recognized as a managed native package/typecheck target without requiring a rootworkspace:*devDependency.Manual QA / Evidence
bun install --frozen-lockfile --ignore-scripts: PASS, recorded in.omo/evidence/20260620-omo-native-wave-0/final-convention-fix-verification.txt.node packages/omo-native/build.mjs: PASS.bun run build:native: PASS, re-run after the package-registration CI fix in.omo/evidence/20260620-omo-native-wave-0/build-native-after-registration-fix.txt.node -e "import('./packages/omo-native/dist/index.js').then(m => console.log(typeof m.default))": PASS, printedfunction.bun run --cwd packages/omo-native typecheck: PASS, re-run after the package-registration CI fix in.omo/evidence/20260620-omo-native-wave-0/native-typecheck-after-registration-fix.txt.bun test script/package-registration-audit.test.ts: PASS afterac93763dd,5 pass, 0 fail, recorded in.omo/evidence/20260620-omo-native-wave-0/package-registration-audit-fix-verification.txt.bun test: PASS afterac93763dd,10072 pass, 2 skip, 0 fail, recorded in.omo/evidence/20260620-omo-native-wave-0/root-bun-test-after-package-registration-fix-summary.txt.bun run --cwd packages/omo-native test: expected RED; exit 1 is only the planned positive seam assertion requiring a real Senpi/pi type-layer import in Wave 1. The boundary audit itself passes.git diff --checkandgit diff --cached --check: PASS.ulw-qa-omo-native-wave0-terminaloromo-nativeQA session remains.CI Status
Current head:
ac93763dd(test(omo-native): register native package audit).draft-releaseandauto-commit-schemaare skipped by CI as draft/release-gated jobs, not failures.CI Fix Evidence
bun installbecause checkout does not initialize the newpackages/senpisubmodule and the initial lock/manifests linked file deps underpackages/senpi/packages/*..omo/evidence/20260620-omo-native-wave-0/ci-nosubmodule-install-repro-pushed.txtcloned this branch ate59250899, removedpackages/senpi, verified no install-time Senpi package links remain, then passed frozen install, native build, and native typecheck.bun testbecause the package registration audit did not yet classifypackages/omo-nativeas managed.ac93763ddaddsnativePackagePathsto the audit and preserves the no-root-devDependency expectation for native packages. Local full-suite verification passed before push, and current-head GitHub CI is now green.Evidence Files
.omo/evidence/20260620-omo-native-wave-0/terminal-tui.png.omo/evidence/20260620-omo-native-wave-0/terminal-tui-screenshot-receipt.txt.omo/evidence/20260620-omo-native-wave-0/terminal-tui-transcript.txt.omo/evidence/20260620-omo-native-wave-0/final-convention-fix-verification.txt.omo/evidence/20260620-omo-native-wave-0/ci-install-fix-verification-v2.txtand.omo/evidence/20260620-omo-native-wave-0/ci-nosubmodule-install-repro-pushed.txt.omo/evidence/20260620-omo-native-wave-0/package-registration-ci-fix-summary.md.omo/evidence/20260620-omo-native-wave-0/package-registration-audit-fix-verification.txt.omo/evidence/20260620-omo-native-wave-0/root-bun-test-after-package-registration-fix-summary.txt.omo/evidence/20260620-omo-native-wave-0/qa-matrix-final.md.omo/evidence/20260620-omo-native-wave-0/final-gate-review.mdplus.omo/evidence/20260620-omo-native-wave-0/post-patch-gate-addendum.mdKnown Intentional RED
The focused native test is not expected to go green in Wave 0. Its positive seam assertion is the guardrail that forces Wave 1 to replace
src/senpi/types.tswith a real Senpi/pi type-layer import.PR State