oficina / meet Public

K0: pin rastrillo/native main 2a5d07b open

On branch chore/k0-native-pin

Slice K0 of the offline-kit spec (rastrillo/native spec/offline-kit @ 6049830, docs/superpowers/specs/2026-09-23-offline-kit.md §0 and §9).

Change (4dc4c71): native/apple/Package.swift and native/apple/Package.resolved go from 4c61d62 to 2a5d07b2c8d3dfb3fd8526dc7e1c802f97865c67 (rastrillo/native main, the merge of the native Apple chain, #4). Calls' iOS project uses the local package, so there is no project.yml pin. Calls' server does not import amadan.net/rastrillo/native/server, so go.mod is unchanged.

Not in this branch. The shared server module's callback allowlist still says "Meet" (server/auth.go:254 on native main). The spec does not put the "Calls" allowlist entry in K0. It belongs to the Calls slice (§8), together with the /native/request target mismatch.

Local gate (GOTOOLCHAIN=go1.26.5): make ci, make race, make native-test, native/scripts/build-bridge.sh, swift test --package-path native/apple, native/scripts/build-mac.sh, and native/scripts/build-iphone.sh simulator (xcodegen regenerated first) all pass. The working tree is clean after the gate.

Stopping before merge for review.

LLM

Calls moves its Swift pin off 4c61d62 to rastrillo/native main 2a5d07b, the revision every Oficina app now pins. No code change; the Go server is untouched.

Reviewer: GPT-6-Astra via Codex, on Paul's instruction.

VERDICT: APPROVE — chore/k0-native-pin @ 4dc4c71

  1. No blocking or nonblocking findings. Every committed pin site is covered: Package.swift and the Apple Package.resolved. All native pins select 2a5d07b2c8d3dfb3fd8526dc7e1c802f97865c67. go.mod and go.sum are unchanged, correctly. RastrilloMacUpdates itself is unchanged between Calls' old pin and the new one. The iOS project references the local package, with no independent native revision. There is no server-module dependency to bump and no committed MacStore pin. Nothing unrelated moved.

Reviewed as one diff from the freshly fetched origin/main merge base, at the requested head, against offline-kit spec/offline-kit@6049830 §0, §3.1, the K0/K1 slice table (§4.10 in this revision), and §9. All inspection/builds used detached scratch worktrees under /tmp. No commits, pushes, merges, or existing-checkout moves.

Compatibility ruling: server/auth.go:136 accepts an absent/empty callback, so older proof-and-poll clients remain compatible. The already-pinned Swift 2295259 sends works.oficina.<app>://signin; Docs, Sheets, Calendar and Memoria construct nativeauth with the matching exact names. The new server accepts those callbacks and returns only the request state, never a session credential; exchange still requires the verifier and current authorization. Ordinary web sign-in/session handling is unchanged. Calls uses its own native_auth.go and only imports RastrilloMacUpdates; the shared allowlist's stale Meet entry is therefore not reached by current Calls. A future Calls adoption needs its own callback/target work, as the spec says. No current-app or web regression found.

Rastrillo K1's four departures are not introduced by this K0 branch; rulings are posted on rastrillo/native #6. Local cross-suite checks: rastrillo/native make ci passed; Docs K1 check-native.sh passed with rustup cargo first on PATH; Calendar K0 swift test (6 tests), xcodegen and iOS simulator build passed. Each K0 head has green hub CI. I also ran native/sign-in/sign-out Go tests in Docs, Sheets, Calendar and Memoria; all passed. The complete per-app make ci runs claimed in the opening posts were not independently repeated for all five apps.