# Oficina Memoria for Apple platforms

Memoria provides permission-aware search, source passages and team note creation. Optional Apple Foundation Models generation runs on-device after a fresh server search, using up to five current passages. Search needs the team server; this is not an offline corpus. On unsupported devices search remains available.

The SwiftUI client supports macOS 14+, iOS 17+ and iPadOS 17+. Mac uses a split
window with a sidebar, toolbar and form sheets; iPhone collapses navigation into
native columns and sheets. iPad uses the wider split layout. Both appearances
use system typography and controls. Credentials stay in the per-app Keychain;
responses and generated answers are held in memory.

Build Mac with `native/scripts/build-mac.sh`; build the simulator app with
`native/scripts/build-iphone.sh`. For a physical device use
`OFICINA_DEVELOPMENT_TEAM=<team> native/scripts/build-iphone.sh device`. Generate
the iOS project with `xcodegen generate --spec native/ios/project.yml`, then build
`MemoriaPhone` in Xcode. Physical devices require your development team.
The generated projects and build products are ignored.

The Swift package and the Go server module (`go.mod`,
`amadan.net/rastrillo/native/server`) both pin Rastrillo Native main
`2a5d07b2c8d3dfb3fd8526dc7e1c802f97865c67` (`native/apple/Package.swift`).

Browser sign-in requires the new backend `/native/` routes. A server that has
not received this update reports that native support is unavailable.

`MemoriaReview` is a test-only executable: it accepts a loopback fixture
credential over stdin, renders the real workspace and captures its window.
Set NATIVE_REVIEW_BINARY and NATIVE_REVIEW_OUTPUT when running `go test
./internal/memoria -run TestNative` to exercise it against the app's real test
server. It is never included in the Mac or iOS app bundle.

For XCTest interaction checks against the isolated authenticated fixture, set
`NATIVE_REVIEW_SIMULATOR=<UDID> NATIVE_REVIEW_UI_TESTS=1` with a writable
`NATIVE_REVIEW_OUTPUT` PNG path when running the native Go fixture test. First
build/install the separate ReviewPhone target. The UI tests create and inspect
fixture notes and never connect to a real account. Xcode result bundles
are under `native/build/ios/Logs/Test`. Review credentials enter only the isolated
review app's Documents directory and are removed when the fixture exits.
