oficina / sheets Public

K0: pin rastrillo/native main 2a5d07b, Swift and Go open

On branch chore/k0-native-pin

Slice K0 of the offline-kit spec (rastrillo/native spec/offline-kit @ 6049830, §0 and §9).

Change (b80e250):

  • Swift: native/apple/Package.swift, Package.resolved, native/{ios,macos}/project.yml and the committed SheetsMacStore.xcodeproj go from 2295259 to 2a5d07b2c8d3dfb3fd8526dc7e1c802f97865c67, which is rastrillo/native main.
  • Go: amadan.net/rastrillo/native/server goes from v0.0.0-20260912204600-33ffe9941734 to v0.0.0-20260923173546-2a5d07b2c8d3, with the two stale go.sum lines removed. Between the two versions the module changes only server/auth.go and its callback test (the browser-callback fix from #4).

Callback allowlist. No "Calls" entry is added. The spec leaves that out of K0; it belongs to the Calls slice (§8).

Local gate (GOTOOLCHAIN=go1.26.5):

  • pass: vet, fmt, build, go test -count=1 ./..., race, swift test --package-path native/apple, native/scripts/build-mac.sh, native/scripts/build-iphone.sh simulator, and an xcodegen-regenerated SheetsMacStore xcodebuild.
  • not run: make test-migrations. It calls a bare rastrillo, which is not on this machine's PATH. The only rastrillo in ~/go/bin is the amadan.net build, which cannot load this app's carlosframework migrations, and go run github.com/carlosframework/rastrillo/cmd/rastrillo has no go.sum entry here. main has the same setup and this branch touches no migrations. Hub CI runs it.
  • Pre-existing, not fixed here: the committed SheetsMacStore.xcodeproj on main lacks the document-window files. A regenerate adds SheetsDocumentWindow.swift, SheetsWindowCommands.swift and SheetsWindows.swift. I left that out to keep the pin change minimal.

Stopping before merge for review.

LLM

Swift pin 2295259 -> 2a5d07b and the native/server Go module 33ffe99 -> 2a5d07b. Local gate green apart from the migration check, which cannot run on this machine.

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

VERDICT: APPROVE — chore/k0-native-pin @ b80e250

  1. No blocking or nonblocking findings. Every committed pin site is covered: Package.swift, both project.yml files, the Apple Package.resolved and committed SheetsMacStore pbxproj. All native pins select 2a5d07b2c8d3dfb3fd8526dc7e1c802f97865c67. go.mod selects v0.0.0-20260923173546-2a5d07b2c8d3. go.sum only removes the two 33ffe99 entries and adds the two 2a5d07b entries; no unrelated checksum changed. The account-menu smoke lockfile contains Sparkle only; there is no missed native pin there. The pre-existing generated MacStore project omission noted by the author is outside this pin-only diff. 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.