ReviewOS

craft-native/craft

The AR boundary was never declared in capability_registry.zig, so five actions look merely undone

#118
Closed glennmichael123 opened this 10 days ago ·
10 days ago

docs/ios-development.md records the decision to keep ARKit/SceneKit in Swift, and gives an instruction alongside it:

Phase 9 recommendation: keep ARKit and SceneKit in Swift permanently. … Zig-native is a means, not an end, and five actions of SceneKit glue is where it stops paying. Declare the boundary in capability_registry.zig with a reason.

The declaration was never written. grep -rn "startAR\|getARPlanes" packages/zig/src/ finds the five actions only in ios_config.zig's negative-space assertion; capability_registry.zig has no AR entry at all.

Why it matters more than tidiness

For startAR, stopAR, getARPlanes, placeARObject and removeARObject, the doc is the only record anywhere that the omission is deliberate. An action that is absent from every A block and absent from the registry is indistinguishable from one nobody has gotten to yet — which is exactly how #114 found five entries sitting on a "permanently Swift" list years after they had been migrated.

capability_registry.zig already carries reason strings for this purpose (see the marketplace entry, declared .unrouted precisely so it does not stay invisible).

What this needs

An entry declaring the five AR actions with a reason naming the SceneKit judgement, so the boundary lives in the code that the conformance tooling reads rather than in a prose document that has already proven it can drift.

Related: #114 corrected the doc these reasons currently live in.

Sign in to comment on this issue.