infinity-v1
.agents/skills/amadan/SKILL.md
+301 −0
.agents/skills/amadan/SKILL.mdLoading diff…
.agents/skills/building-carlos-apps/SKILL.md
+235 −0
.agents/skills/building-carlos-apps/SKILL.mdLoading diff…
.agents/skills/building-carlos-apps/references/blueprint.md
+267 −0
.agents/skills/building-carlos-apps/references/blueprint.mdLoading diff…
.agents/skills/building-carlos-apps/references/decisions.md
+211 −0
.agents/skills/building-carlos-apps/references/decisions.mdLoading diff…
.agents/skills/building-carlos-apps/references/platform.md
+459 −0
.agents/skills/building-carlos-apps/references/platform.mdLoading diff…
.agents/skills/building-carlos-apps/references/process.md
+190 −0
.agents/skills/building-carlos-apps/references/process.mdLoading diff…
.agents/skills/building-carlos-apps/references/rastrillo.md
+156 −0
.agents/skills/building-carlos-apps/references/rastrillo.mdLoading diff…
.claude/settings.json
+28 −8
.claude/settings.jsonLoading diff…
.github/workflows/infinity.yml
+23 −0
.github/workflows/infinity.ymlLoading diff…
.gitignore
+15 −0
.gitignoreLoading diff…
AGENTS.md
+30 −0
AGENTS.mdLoading diff…
DESIGN.md
+25 −0
DESIGN.mdLoading diff…
PLAN.md
+10 −0
PLAN.mdLoading diff…
README.md
+20 −364
README.mdLoading diff…
android/README.md
+28 −0
android/README.mdLoading diff…
android/app/build.gradle.kts
+34 −0
android/app/build.gradle.ktsLoading diff…
android/app/src/androidTest/java/chat/ocho/app/NativeChatTest.kt
+55 −0
android/app/src/androidTest/java/chat/ocho/app/NativeChatTest.ktLoading diff…
android/app/src/main/AndroidManifest.xml
+15 −0
android/app/src/main/AndroidManifest.xmlLoading diff…
android/app/src/main/java/chat/ocho/app/AccountDialogs.kt
+62 −0
android/app/src/main/java/chat/ocho/app/AccountDialogs.ktLoading diff…
android/app/src/main/java/chat/ocho/app/AccountModel.kt
+94 −0
android/app/src/main/java/chat/ocho/app/AccountModel.ktLoading diff…
android/app/src/main/java/chat/ocho/app/ActivityNotifications.kt
+61 −0
android/app/src/main/java/chat/ocho/app/ActivityNotifications.ktLoading diff…
android/app/src/main/java/chat/ocho/app/MainActivity.kt
+46 −0
android/app/src/main/java/chat/ocho/app/MainActivity.ktLoading diff…
android/app/src/main/java/chat/ocho/app/OchoMessagingService.kt
+27 −0
android/app/src/main/java/chat/ocho/app/OchoMessagingService.ktLoading diff…
android/app/src/main/java/chat/ocho/app/OchoScreen.kt
+148 −0
android/app/src/main/java/chat/ocho/app/OchoScreen.ktLoading diff…
android/app/src/main/java/chat/ocho/app/Passkeys.kt
+72 −0
android/app/src/main/java/chat/ocho/app/Passkeys.ktLoading diff…
android/app/src/main/java/chat/ocho/app/ProfileAvatar.kt
+46 −0
android/app/src/main/java/chat/ocho/app/ProfileAvatar.ktLoading diff…
android/app/src/main/java/chat/ocho/app/SecureStore.kt
+38 −0
android/app/src/main/java/chat/ocho/app/SecureStore.ktLoading diff…
android/app/src/main/res/drawable/ocho_icon.png
binary
android/app/src/main/res/drawable/ocho_icon.pngLoading diff…
android/app/src/main/res/values/styles.xml
+1 −0
android/app/src/main/res/values/styles.xmlLoading diff…
android/app/src/main/res/xml/data_extraction_rules.xml
+17 −0
android/app/src/main/res/xml/data_extraction_rules.xmlLoading diff…
android/build.gradle.kts
+5 −0
android/build.gradle.ktsLoading diff…
android/gradle.properties
+3 −0
android/gradle.propertiesLoading diff…
android/gradle/wrapper/gradle-wrapper.jar
binary
android/gradle/wrapper/gradle-wrapper.jarLoading diff…
android/gradle/wrapper/gradle-wrapper.properties
+8 −0
android/gradle/wrapper/gradle-wrapper.propertiesLoading diff…
android/gradlew
+252 −0
android/gradlewLoading diff…
android/settings.gradle.kts
+5 −0
android/settings.gradle.ktsLoading diff…
apple/.gitignore
+3 −0
apple/.gitignoreLoading diff…
apple/Infinity/AccountSheets.swift
+32 −0
apple/Infinity/AccountSheets.swiftLoading diff…
apple/Infinity/AccountStore.swift
+182 −0
apple/Infinity/AccountStore.swiftLoading diff…
apple/Infinity/Assets.xcassets/AppIcon.appiconset/Contents.json
+14 −0
apple/Infinity/Assets.xcassets/AppIcon.appiconset/Contents.jsonLoading diff…
apple/Infinity/Assets.xcassets/AppIcon.appiconset/icon_1024.png
binary
apple/Infinity/Assets.xcassets/AppIcon.appiconset/icon_1024.pngLoading diff…
apple/Infinity/AttachmentDocument.swift
+10 −0
apple/Infinity/AttachmentDocument.swiftLoading diff…
apple/Infinity/ConversationStorage.swift
+27 −0
apple/Infinity/ConversationStorage.swiftLoading diff…
apple/Infinity/Infinity.entitlements
+12 −0
apple/Infinity/Infinity.entitlementsLoading diff…
apple/Infinity/InfinityApp.swift
+22 −0
apple/Infinity/InfinityApp.swiftLoading diff…
apple/Infinity/MacMessageField.swift
+73 −0
apple/Infinity/MacMessageField.swiftLoading diff…
apple/Infinity/NativeConversationView.swift
+125 −0
apple/Infinity/NativeConversationView.swiftLoading diff…
apple/Infinity/NativeNotifications.swift
+152 −0
apple/Infinity/NativeNotifications.swiftLoading diff…
apple/Infinity/NativePasskeys.swift
+89 −0
apple/Infinity/NativePasskeys.swiftLoading diff…
apple/Infinity/OchoRootView.swift
+117 −0
apple/Infinity/OchoRootView.swiftLoading diff…
apple/Infinity/OutgoingMessages.swift
+99 −0
apple/Infinity/OutgoingMessages.swiftLoading diff…
apple/Infinity/ProfileSheet.swift
+43 −0
apple/Infinity/ProfileSheet.swiftLoading diff…
apple/Infinity/SetupProgressView.swift
+29 −0
apple/Infinity/SetupProgressView.swiftLoading diff…
apple/Infinity/WelcomeView.swift
+33 −0
apple/Infinity/WelcomeView.swiftLoading diff…
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/Contents.json
+68 −0
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/Contents.jsonLoading diff…
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_1024.png
binary
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_1024.pngLoading diff…
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_128.png
binary
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_128.pngLoading diff…
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_16.png
binary
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_16.pngLoading diff…
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_256.png
binary
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_256.pngLoading diff…
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_32.png
binary
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_32.pngLoading diff…
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_512.png
binary
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_512.pngLoading diff…
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_64.png
binary
apple/InfinityMac/Assets.xcassets/AppIcon.appiconset/icon_64.pngLoading diff…
apple/InfinityMac/InfinityMac.entitlements
+18 −0
apple/InfinityMac/InfinityMac.entitlementsLoading diff…
apple/InfinityMacUITests/NativeChatTests.swift
+70 −0
apple/InfinityMacUITests/NativeChatTests.swiftLoading diff…
apple/InfinityUITests/NativeChatTests.swift
+48 −0
apple/InfinityUITests/NativeChatTests.swiftLoading diff…
apple/OchoCore/Package.swift
+4 −0
apple/OchoCore/Package.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/API.swift
+31 −0
apple/OchoCore/Sources/OchoCore/API.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/Attachment.swift
+6 −0
apple/OchoCore/Sources/OchoCore/Attachment.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/Client.swift
+34 −0
apple/OchoCore/Sources/OchoCore/Client.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/ConversationCache.swift
+33 −0
apple/OchoCore/Sources/OchoCore/ConversationCache.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/Crypto.swift
+75 −0
apple/OchoCore/Sources/OchoCore/Crypto.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/Engine.swift
+11 −0
apple/OchoCore/Sources/OchoCore/Engine.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/LegacyIdentity.swift
+42 −0
apple/OchoCore/Sources/OchoCore/LegacyIdentity.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/MessageLinks.swift
+12 −0
apple/OchoCore/Sources/OchoCore/MessageLinks.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/Models.swift
+41 −0
apple/OchoCore/Sources/OchoCore/Models.swiftLoading diff…
apple/OchoCore/Sources/OchoCore/Registration.swift
+16 −0
apple/OchoCore/Sources/OchoCore/Registration.swiftLoading diff…
apple/OchoCore/Tests/OchoCoreTests/ClientTests.swift
+61 −0
apple/OchoCore/Tests/OchoCoreTests/ClientTests.swiftLoading diff…
apple/OchoCore/Tests/OchoCoreTests/ConversationCacheTests.swift
+33 −0
apple/OchoCore/Tests/OchoCoreTests/ConversationCacheTests.swiftLoading diff…
apple/OchoCore/Tests/OchoCoreTests/CryptoTests.swift
+39 −0
apple/OchoCore/Tests/OchoCoreTests/CryptoTests.swiftLoading diff…
apple/OchoCore/Tests/OchoCoreTests/LegacyTests.swift
+24 −0
apple/OchoCore/Tests/OchoCoreTests/LegacyTests.swiftLoading diff…
apple/OchoCore/Tests/OchoCoreTests/ProjectionTests.swift
+34 −0
apple/OchoCore/Tests/OchoCoreTests/ProjectionTests.swiftLoading diff…
apple/README.md
+37 −0
apple/README.mdLoading diff…
apple/project.yml
+119 −0
apple/project.ymlLoading diff…
cmd/infinity-home/main.go
+59 −0
cmd/infinity-home/main.goLoading diff…
cmd/infinity/main.go
+46 −0
cmd/infinity/main.goLoading diff…
docs/infinity/android-handoff.md
+34 −0
docs/infinity/android-handoff.mdLoading diff…
CLAUDE.md => docs/infinity/eleven-upstream-instructions.md
+0 −0
CLAUDE.md => docs/infinity/eleven-upstream-instructions.mdLoading diff…
docs/infinity/eleven-upstream-readme.md
+382 −0
docs/infinity/eleven-upstream-readme.mdLoading diff…
docs/infinity/local-sending.md
+13 −0
docs/infinity/local-sending.mdLoading diff…
docs/infinity/native-passkeys.md
+23 −0
docs/infinity/native-passkeys.mdLoading diff…
docs/infinity/prompts.md
+29 −0
docs/infinity/prompts.mdLoading diff…
docs/infinity/push.md
+47 −0
docs/infinity/push.mdLoading diff…
docs/infinity/rastrillo-authoring.md
+422 −0
docs/infinity/rastrillo-authoring.mdLoading diff…
docs/infinity/release-completion.md
+91 −0
docs/infinity/release-completion.mdLoading diff…
docs/infinity/simple-onboarding.md
+19 −0
docs/infinity/simple-onboarding.mdLoading diff…
docs/infinity/status.md
+202 −0
docs/infinity/status.mdLoading diff…
docs/infinity/tester-release.md
+104 −0
docs/infinity/tester-release.mdLoading diff…
go.mod
+8 −4
go.modLoading diff…
go.sum
+34 −18
go.sumLoading diff…
internal/apns/apns.go
+12 −1
internal/apns/apns.goLoading diff…
internal/apns/apns_test.go
+24 −0
internal/apns/apns_test.goLoading diff…
internal/infinity/app.go
+259 −0
internal/infinity/app.goLoading diff…
internal/infinity/app_test.go
+234 −0
internal/infinity/app_test.goLoading diff…
internal/infinity/blobs.go
+139 −0
internal/infinity/blobs.goLoading diff…
internal/infinity/blobs_test.go
+72 −0
internal/infinity/blobs_test.goLoading diff…
internal/infinity/client_test.go
+38 −0
internal/infinity/client_test.goLoading diff…
internal/infinity/envelope.go
+58 −0
internal/infinity/envelope.goLoading diff…
internal/infinity/inbox.go
+146 −0
internal/infinity/inbox.goLoading diff…
internal/infinity/migrations/0001_init.sql
+6 −0
internal/infinity/migrations/0001_init.sqlLoading diff…
internal/infinity/migrations/0002_push.sql
+6 −0
internal/infinity/migrations/0002_push.sqlLoading diff…
internal/infinity/migrations/0003_invite_consent.sql
+4 −0
internal/infinity/migrations/0003_invite_consent.sqlLoading diff…
internal/infinity/migrations/0004_vault_format.sql
+2 −0
internal/infinity/migrations/0004_vault_format.sqlLoading diff…
internal/infinity/migrations/0005_attachments.sql
+3 −0
internal/infinity/migrations/0005_attachments.sqlLoading diff…
internal/infinity/network.go
+71 −0
internal/infinity/network.goLoading diff…
internal/infinity/outbox.go
+235 −0
internal/infinity/outbox.goLoading diff…
internal/infinity/push.go
+109 −0
internal/infinity/push.goLoading diff…
internal/infinity/push_test.go
+88 −0
internal/infinity/push_test.goLoading diff…
internal/infinity/simple_test.go
+53 −0
internal/infinity/simple_test.goLoading diff…
internal/infinity/static/api.js
+34 −0
internal/infinity/static/api.jsLoading diff…
internal/infinity/static/app.js
+53 −0
internal/infinity/static/app.jsLoading diff…
internal/infinity/static/attachments.js
+32 −0
internal/infinity/static/attachments.jsLoading diff…
internal/infinity/static/avatars.js
+23 −0
internal/infinity/static/avatars.jsLoading diff…
internal/infinity/static/chat.js
+98 −0
internal/infinity/static/chat.jsLoading diff…
internal/infinity/static/client.js
+168 −0
internal/infinity/static/client.jsLoading diff…
internal/infinity/static/crypto.js
+75 −0
internal/infinity/static/crypto.jsLoading diff…
internal/infinity/static/dialogs.js
+57 −0
internal/infinity/static/dialogs.jsLoading diff…
internal/infinity/static/dom.js
+28 −0
internal/infinity/static/dom.jsLoading diff…
internal/infinity/static/index.html
+1 −0
internal/infinity/static/index.htmlLoading diff…
internal/infinity/static/invitations.js
+64 −0
internal/infinity/static/invitations.jsLoading diff…
internal/infinity/static/link-cards.js
+18 −0
internal/infinity/static/link-cards.jsLoading diff…
internal/infinity/static/mark.svg
+1 −0
internal/infinity/static/mark.svgLoading diff…
internal/infinity/static/onboarding.js
+114 −0
internal/infinity/static/onboarding.jsLoading diff…
internal/infinity/static/outgoing.js
+78 −0
internal/infinity/static/outgoing.jsLoading diff…
internal/infinity/static/passkeys.js
+52 −0
internal/infinity/static/passkeys.jsLoading diff…
internal/infinity/static/profile.js
+20 −0
internal/infinity/static/profile.jsLoading diff…
internal/infinity/static/protocol.js
+67 −0
internal/infinity/static/protocol.jsLoading diff…
internal/infinity/static/registration.js
+20 −0
internal/infinity/static/registration.jsLoading diff…
internal/infinity/static/setup-progress.js
+53 −0
internal/infinity/static/setup-progress.jsLoading diff…
internal/infinity/static/style.css
+33 −0
internal/infinity/static/style.cssLoading diff…
internal/infinity/vault.go
+97 −0
internal/infinity/vault.goLoading diff…
internal/infinitydiag/storage.go
+30 −0
internal/infinitydiag/storage.goLoading diff…
internal/infinitydiag/storage_other.go
+8 −0
internal/infinitydiag/storage_other.goLoading diff…
internal/infinitydiag/storage_unix.go
+21 −0
internal/infinitydiag/storage_unix.goLoading diff…
internal/infinityhome/android.go
+42 −0
internal/infinityhome/android.goLoading diff…
internal/infinityhome/apple.go
+12 −0
internal/infinityhome/apple.goLoading diff…
internal/infinityhome/browser_test.go
+85 −0
internal/infinityhome/browser_test.goLoading diff…
internal/infinityhome/fcm.go
+144 −0
internal/infinityhome/fcm.goLoading diff…
internal/infinityhome/fcm_test.go
+88 −0
internal/infinityhome/fcm_test.goLoading diff…
internal/infinityhome/home.go
+263 −0
internal/infinityhome/home.goLoading diff…
internal/infinityhome/home_test.go
+169 −0
internal/infinityhome/home_test.goLoading diff…
internal/infinityhome/invites.go
+133 −0
internal/infinityhome/invites.goLoading diff…
internal/infinityhome/migrations/0001_init.sql
+3 −0
internal/infinityhome/migrations/0001_init.sqlLoading diff…
internal/infinityhome/migrations/0002_provisioned.sql
+2 −0
internal/infinityhome/migrations/0002_provisioned.sqlLoading diff…
internal/infinityhome/migrations/0003_passkeys.sql
+20 −0
internal/infinityhome/migrations/0003_passkeys.sqlLoading diff…
internal/infinityhome/migrations/0004_push.sql
+7 −0
internal/infinityhome/migrations/0004_push.sqlLoading diff…
internal/infinityhome/migrations/0005_simple_signup.sql
+8 −0
internal/infinityhome/migrations/0005_simple_signup.sqlLoading diff…
internal/infinityhome/passkeys.go
+229 −0
internal/infinityhome/passkeys.goLoading diff…
internal/infinityhome/passkeys_test.go
+119 −0
internal/infinityhome/passkeys_test.goLoading diff…
internal/infinityhome/proof.go
+48 −0
internal/infinityhome/proof.goLoading diff…
internal/infinityhome/proof_test.go
+86 −0
internal/infinityhome/proof_test.goLoading diff…
internal/infinityhome/push.go
+155 −0
internal/infinityhome/push.goLoading diff…
internal/infinityhome/push_test.go
+93 −0
internal/infinityhome/push_test.goLoading diff…
internal/infinityhome/relay.go
+87 −0
internal/infinityhome/relay.goLoading diff…
internal/infinityhome/relay_test.go
+89 −0
internal/infinityhome/relay_test.goLoading diff…
internal/infinityhome/signup.go
+103 −0
internal/infinityhome/signup.goLoading diff…
internal/infinityhome/simple_test.go
+139 −0
internal/infinityhome/simple_test.goLoading diff…
internal/infinityinvite/claim.go
+43 −0
internal/infinityinvite/claim.goLoading diff…
mobile/attachments.go
+113 −0
mobile/attachments.goLoading diff…
mobile/attachments_test.go
+103 −0
mobile/attachments_test.goLoading diff…
mobile/client.go
+219 −0
mobile/client.goLoading diff…
mobile/consent.go
+71 −0
mobile/consent.goLoading diff…
mobile/consent_test.go
+94 −0
mobile/consent_test.goLoading diff…
mobile/conversations.go
+209 −0
mobile/conversations.goLoading diff…
mobile/crypto.go
+187 −0
mobile/crypto.goLoading diff…
mobile/crypto_test.go
+124 −0
mobile/crypto_test.goLoading diff…
mobile/go.mod
+15 −0
mobile/go.modLoading diff…
mobile/go.sum
+14 −0
mobile/go.sumLoading diff…
mobile/handshake_test.go
+69 −0
mobile/handshake_test.goLoading diff…
mobile/identity.go
+130 −0
mobile/identity.goLoading diff…
mobile/invite.go
+83 −0
mobile/invite.goLoading diff…
mobile/network.go
+102 −0
mobile/network.goLoading diff…
mobile/network_test.go
+55 −0
mobile/network_test.goLoading diff…
mobile/outgoing.go
+80 −0
mobile/outgoing.goLoading diff…
mobile/outgoing_test.go
+92 −0
mobile/outgoing_test.goLoading diff…
mobile/profile.go
+114 −0
mobile/profile.goLoading diff…
mobile/projection.go
+279 −0
mobile/projection.goLoading diff…
mobile/recovery.go
+117 −0
mobile/recovery.goLoading diff…
mobile/registration.go
+103 −0
mobile/registration.goLoading diff…
mobile/short_invite.go
+213 −0
mobile/short_invite.goLoading diff…
test/infinity/attachments.test.mjs
+18 −0
test/infinity/attachments.test.mjsLoading diff…
test/infinity/browser.mjs
+73 −0
test/infinity/browser.mjsLoading diff…
test/infinity/composer-layout.mjs
+39 −0
test/infinity/composer-layout.mjsLoading diff…
test/infinity/crypto.test.mjs
+30 −0
test/infinity/crypto.test.mjsLoading diff…
test/infinity/handshake.test.mjs
+14 −0
test/infinity/handshake.test.mjsLoading diff…
test/infinity/home-browser.mjs
+45 −0
test/infinity/home-browser.mjsLoading diff…
test/infinity/live.mjs
+58 −0
test/infinity/live.mjsLoading diff…
test/infinity/native-send-proxy.py
+48 −0
test/infinity/native-send-proxy.pyLoading diff…
test/infinity/outgoing-browser.mjs
+35 −0
test/infinity/outgoing-browser.mjsLoading diff…
test/infinity/outgoing.test.mjs
+22 −0
test/infinity/outgoing.test.mjsLoading diff…
test/infinity/package-lock.json
+42 −0
test/infinity/package-lock.jsonLoading diff…
test/infinity/package.json
+8 −0
test/infinity/package.jsonLoading diff…
test/infinity/protocol.test.mjs
+36 −0
test/infinity/protocol.test.mjsLoading diff…
test/infinity/registration.mjs
+20 −0
test/infinity/registration.mjsLoading diff…
tools/infinity/archive-apple
+15 −0
tools/infinity/archive-appleLoading diff…
tools/infinity/build-mobile
+15 −0
tools/infinity/build-mobileLoading diff…
tools/infinity/check
+37 −0
tools/infinity/checkLoading diff…
tools/infinity/check-android
+20 −0
tools/infinity/check-androidLoading diff…
tools/infinity/check-home-browser
+7 −0
tools/infinity/check-home-browserLoading diff…
tools/infinity/check-native
+13 −0
tools/infinity/check-nativeLoading diff…
tools/infinity/check-native-crypto
+41 −0
tools/infinity/check-native-cryptoLoading diff…
tools/infinity/check-native-mac-ui
+17 −0
tools/infinity/check-native-mac-uiLoading diff…
tools/infinity/check-native-ui
+16 −0
tools/infinity/check-native-uiLoading diff…
tools/infinity/deploy
+18 −0
tools/infinity/deployLoading diff…
tools/infinity/make-mark.swift
+30 −0
tools/infinity/make-mark.swiftLoading diff…
tools/infinity/render-icons.mjs
+17 −0
tools/infinity/render-icons.mjsLoading diff…