The lab question
MiniX is a public release-cut sample for applications that share intent across H5 and WeChat hosts. The useful question is not whether two interfaces can look similar. It is whether a feature can keep its contract, controller and verification story legible when each host has different lifecycle, navigation and runtime assumptions.
The public repository exposes apps, packages, specs and end-to-end checks as separate inspection points. That shape matters because it gives a reviewer a route from a user-facing host to the shared kernel, rather than asking them to infer portability from duplicated feature code. Inspect the MiniX source ↗.
A visible direction of responsibility
The following map is an architectural reading of the public artifact structure. It is not a claim that every runtime decision is identical; it makes the intended ownership route reviewable.
flowchart LR
Feature[Feature intent] --> Contract[Public contracts]
Contract --> Controller[Shared controller]
Controller --> Manifest[Host manifest]
Manifest --> H5[H5 adapter]
Manifest --> WeChat[WeChat adapter]
H5 --> Evidence[End-to-end evidence]
WeChat --> Evidence
Specs[specs/] -. boundary rules .-> ContractThe contract defines what a caller may rely on. A controller holds the application decision. The manifest declares how that decision is mounted in a host. Finally, an adapter translates host primitives without becoming the hidden owner of the feature. The end-to-end checks are important because they test the actual host path, not merely an in-memory version of the shared logic.
// Illustrative ownership split: the controller exposes intent,
// while each host maps that intent to its own runtime primitive.
export type HostRoute = { name: string; path: string };
export function createHostManifest(routes: HostRoute[]) {
return { routes, owner: "host-adapter" as const };
}
The example is deliberately small. Its purpose is to show the review boundary: shared intent receives a public contract, while the host manifest declares the runtime translation point.
Inspection board
| Public artifact | What it makes inspectable | Engineering question it answers |
|---|---|---|
apps/host-h5 | The H5 mounting surface | Which browser-facing primitives does this host own? |
apps/host-wechat | The WeChat mounting surface | Which platform-facing primitives must remain local? |
packages/ | Shared kernel and contracts | What can change once without creating a host fork? |
specs/ | Bounded rules and declared expectations | Where is a cross-host change supposed to begin? |
tests/e2e | Executable runtime evidence | Does the intended route survive in each real host? |
This arrangement discourages a common portability failure: a nominally shared package slowly learns host-specific switches until it becomes a second, less visible adapter layer. In MiniX, the public structure instead allows a maintainer to ask a direct question: _is this behavior part of the shared application decision, or part of one runtime?_
What the lab does not promise
MiniX should not be read as a universal abstraction over every H5 and WeChat feature. A lab record is more useful when it names its boundaries. The repository is presented as a v1.0.0 release-cut sample; its public source is evidence of one explicit kernel arrangement, not a guarantee that every platform concern can or should be homogenized.
That limitation is a design asset. A narrow kernel makes future additions visible: a new host capability should either extend a declared contract, remain an adapter concern, or be rejected as an accidental dependency. The alternative—smuggling it through a shared helper—has lower initial friction but leaves no stable place for review.
Review checklist for the next experiment
When a feature crosses hosts, the most valuable review path is short:
1. Start at the public contract and identify the application intent. 2. Inspect the controller for the shared decision. 3. Locate the manifest and both host adapters. 4. Read the end-to-end evidence before declaring the boundary stable.
The MiniX Lab record links those same artifacts directly from the [Birdor Labs page](/labs/minix-multi-host-kernel). That route is deliberate: the lab statement, the public source and the Engineering review should describe one continuous inspection surface.
Conclusion
MiniX turns a portability problem into a boundary problem. By preserving explicit contracts, controllers, manifests, adapters and evidence, it gives each runtime a visible responsibility without discarding shared application intent. That is a practical definition of a multi-host kernel worth examining in public.