VoiceDebrief iOS / sgit-app / built

What is built in the sgit app

The reality file for the sgit app. If it is not listed here as built, it does not exist. The design is intention; this page is fact, and it changes in the same commit as the code it describes.

Status words: built is in the repository and proven by a test that ran; unverified is written but has not been proven by a run (of CI, on a device, or against a server, as the row says); proposed does not exist.

Built

Proven by sgit-app.yml, green in all three jobs since run 2 (13 November 2026) and on dev in run 7. Nothing here has run on a device or spoken to a server from the app: where that matters the row says so.

WhatWhereHow it is tested
Files over 4 MB in the vault engine builtPackages/SGitVault: VaultStreamCipher.swift (AES-256-GCM as a stream, so a file is sealed and opened from disk to disk), VaultLargeTransport.swift (sgit's upload in parts and download in ranges), VaultLargeFiles.swift (staging, a commit of staged files, download with every check)LargeFileTests on the CI Mac: the stream cipher byte for byte against CryptoKit; tampered files refused; a failed upload carried on; a lost race. sgit-app.yml: sgit clones a vault Swift wrote with files of 5 and 9 MB and verifies its signatures, and Swift reads a vault sgit wrote. All of that is against a folder. The exchange with the live server (signed URLs) is written and unverified: it has been run with sgit itself, not with the Swift code
The app builds and its tests pass builtApps/SGit/: its own project, bundle ai.sgit.vaults.app, iPhone and iPad, iOS 26, SwiftUI, Apple SDK onlysgit-app.yml: a simulator build, a Release build for a device, unit tests on an iPhone and an iPad simulator
Adding files, underneath the screens builtEngine/Outbox.swift, Engine/VaultShelf.swift: a selection is copied in, encrypted to disk, uploaded and committed as one signed commit; a failed job is kept and is finished by a new Outbox after a restart; discard; a read key is refused; rename and delete as commits; what a commit changed; the signer's fingerprintUnit tests on the simulators, against a real vault held in a folder: a 5 MB file read back byte for byte through the cache
TestFlight upload builtThe last step of the Mac job in sgit-app.yml, with scripts/release/testflight.sh: on a green push to dev, archive, sign and uploadsgit-app.yml run 7 (13 November 2026) uploaded ai.sgit.vaults.app 0.1.19 (7) and App Store Connect accepted the upload. Nobody has installed it yet
Vaults on the device unverifiedUI/VaultsView.swift: add by key, read key or web link, pasted or scanned as a QR code; create; keys, access token and signing key in this app's KeychainCompiles. The Keychain, the camera and the live server: never run
Adding photos, videos and files, the screens unverifiedEngine/Intake.swift, UI/VaultView.swift: the Photos picker and the Files picker, progress for each file and the whole, Try again and DiscardCompiles. The pickers have never been used
Browsing unverifiedUI/VaultView.swift, UI/FileView.swift: folders, a grid or a list, thumbnails for images, an image at full size, a video player, Quick Look, Save to Photos, Share, rename, deleteThe listing has unit tests. The screens have never been seen
Sharing a vault unverifiedUI/ShareVaultView.swift: the vault key and the read key as text and QR code, with what each gives; a link for the web Vault UIThe link's form has a unit test. Whether the web Vault UI opens a vault this app wrote has not been tried
History unverifiedUI/HistoryView.swift: commits, signature, the signing key's fingerprint, whether it is this device's, what changedWhat it shows has unit tests; the screen has never been seen

Not built

WhatStatus
Local-first vaults and named remotes; keys in iCloud Keychainproposed: after issues 011 and 017
A share extension; background uploadsproposed
A merge for colliding edits; branchesproposed
A read-only token that can be revokedproposed: the format is not agreed
Video thumbnails; streaming a video without fetching it wholeproposed

Known limits

See "Limits, stated plainly" on the design page.