Skip to content

Remove iOS target and implementation - #136

Merged
adrielGGmotion merged 1 commit into
mainfrom
remove-ios
Sep 17, 2026
Merged

adrielGGmotion merged 1 commit into
mainfrom
remove-ios

Conversation

@adrielGGmotion

@adrielGGmotion adrielGGmotion commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • remove the iOS Kotlin Multiplatform targets and 20 iOS source files
  • remove iOS-only dependencies, IDE run configuration, platform enum value, and unused icon
  • remove current iOS support claims from documentation, badges, and issue templates

Verification

  • ./gradlew :composeApp:compileKotlinDesktop --no-daemon --console=plain
    • passed successfully
  • The current build runtime has no Android SDK or javac, so an Android assemble task could not be run here.

Historical changelog entries remain unchanged.

Summary by CodeRabbit

  • Changes
    • iOS is no longer a supported Oak platform.
    • iOS-specific app functionality, including local inference, conversation storage, email, permissions, notifications, SMS, sandbox access, and daemon controls, is no longer available.
    • Documentation, platform listings, and issue-reporting options now reflect support for Android, Windows, macOS, Linux, and Web.
    • Desktop and web behavior descriptions have been updated where applicable.

@coderabbitai

coderabbitai Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: b8e3bab8-769e-4102-8cb9-77f239e8c539

📥 Commits

Reviewing files that changed from the base of the PR and between 136a5b6 and e382785.

📒 Files selected for processing (44)
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .run/iosApp.run.xml
  • README.md
  • composeApp/build.gradle.kts
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/App.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/Platform.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/inference/LocalModelCatalog.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/notifications/NotificationReader.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsReader.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsSender.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/ui/icons/OakIcons.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/BuildKonfig.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/DaemonController.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/MainViewController.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/OakBuildController.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/Platform.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/SandboxController.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/build/TerminalKeyboard.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/data/ConversationPersistence.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/data/ConversationStorage.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/email/EmailConnection.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/inference/InferencePlatform.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/inference/IosLiteRTInferenceEngine.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/inference/LiteRTSwiftBridge.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/inference/LocalInferenceEngineProvider.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/notifications/NotificationReader.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/sms/SmsReader.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/sms/SmsSender.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/tools/NotificationListenerController.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/tools/PermissionController.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/ui/components/DesktopScrollbar.ios.kt
  • docs/features/appearance.md
  • docs/features/chat.md
  • docs/features/daemon.md
  • docs/features/encryption.md
  • docs/features/heartbeat.md
  • docs/features/notifications.md
  • docs/features/oak-build.md
  • docs/features/on-device-inference.md
  • docs/features/sandbox.md
  • docs/features/sms.md
  • docs/features/tools.md
  • docs/index.md
  • gradle/libs.versions.toml
💤 Files with no reviewable changes (27)
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/OakBuildController.ios.kt
  • .run/iosApp.run.xml
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/tools/NotificationListenerController.ios.kt
  • gradle/libs.versions.toml
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/MainViewController.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/data/ConversationPersistence.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/inference/LocalInferenceEngineProvider.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/inference/IosLiteRTInferenceEngine.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/BuildKonfig.kt
  • composeApp/build.gradle.kts
  • docs/features/appearance.md
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/SandboxController.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/ui/components/DesktopScrollbar.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/build/TerminalKeyboard.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/Platform.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/tools/PermissionController.ios.kt
  • docs/features/tools.md
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/data/ConversationStorage.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/sms/SmsSender.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/inference/InferencePlatform.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/inference/LiteRTSwiftBridge.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/sms/SmsReader.ios.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/ui/icons/OakIcons.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/email/EmailConnection.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/notifications/NotificationReader.ios.kt
  • composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/DaemonController.ios.kt

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⚠️ CI failures not shown inline (2)

GitHub Actions: Unit Tests / 0_Run Unit Tests.txt: Remove iOS target and implementation

Conclusion: failure

View job details

 If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
 4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.
 4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
 4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
 4.7 This software enables the execution of intellectual property owned by Arm Limited. You agree that your use of the software, that allows execution of ARM Instruction Set Architecture (“ISA”) compliant executables for application development and debug only on x86 desktop, laptop, customer on-premise servers, and customer-procured cloud-based environments.
 5. Your Developer Credentials
 5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or whic...

GitHub Actions: Unit Tests / Run Unit Tests: Remove iOS target and implementation

Conclusion: failure

View job details

by the terms of that open source software license and not the License Agreement.
 3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
 3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
 3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
 4. Use of the SDK by You
 4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
 4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) the License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
 4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive ...
🧰 Additional context used
📓 Path-based instructions (3)
Maintain the architecture flow of UI → ViewModel → DataRepository → platform `expect`/`actual` implementations, with dependency injection configured through `AppModule.kt`.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsReader.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/App.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/inference/LocalModelCatalog.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsSender.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/notifications/NotificationReader.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/Platform.kt
Do not hardcode user-facing strings; define them in `composeResources/values/strings.xml` for Weblate localization.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsReader.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/App.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/inference/LocalModelCatalog.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsSender.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/notifications/NotificationReader.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/Platform.kt
Follow Kotlin best practices: use idiomatic Kotlin, consistent style, and avoid wildcard or duplicate imports.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsReader.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/App.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/inference/LocalModelCatalog.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsSender.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/notifications/NotificationReader.kt
  • composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/Platform.kt
🪛 LanguageTool
docs/features/heartbeat.md

[uncategorized] ~52-~52: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...ion body is the heartbeat response with markdown formatting stripped and truncated to 24...

(MARKDOWN_NNP)


[uncategorized] ~52-~52: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...view never breaks mid-word or shows raw markdown syntax). Desktop and web are banner-onl...

(MARKDOWN_NNP)

🪛 markdownlint-cli2 (0.23.2)
README.md

[warning] 7-7: Images should have alternate text (alt text)

(MD045, no-alt-text)

🔇 Additional comments (17)
composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/Platform.kt (1)

86-86: LGTM!

composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/App.kt (1)

92-92: LGTM!

composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/inference/LocalModelCatalog.kt (1)

121-121: LGTM!

composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/notifications/NotificationReader.kt (1)

8-8: LGTM!

composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsReader.kt (1)

8-8: LGTM!

docs/features/on-device-inference.md (1)

5-5: LGTM!

Also applies to: 56-56, 91-97, 102-102

docs/features/sandbox.md (1)

7-7: LGTM!

Also applies to: 90-90, 116-116

docs/features/sms.md (1)

13-13: LGTM!

docs/index.md (1)

3-3: LGTM!

Also applies to: 99-99

composeApp/src/commonMain/kotlin/com/inspiredandroid/oak/sms/SmsSender.kt (1)

6-6: LGTM!

README.md (1)

3-3: LGTM!

Also applies to: 11-11

docs/features/chat.md (1)

106-106: LGTM!

docs/features/daemon.md (1)

5-5: LGTM!

docs/features/encryption.md (1)

13-13: LGTM!

docs/features/heartbeat.md (1)

52-52: LGTM!

docs/features/notifications.md (1)

15-15: LGTM!

docs/features/oak-build.md (1)

103-103: LGTM!


📝 Walkthrough

Walkthrough

Oak removes iOS support from the Kotlin Multiplatform build, native implementations, configuration, public platform declarations, and documentation. Android, desktop, WASM, and web references remain.

Changes

Build and shared platform cleanup

Layer / File(s) Summary
Build and shared platform cleanup
composeApp/build.gradle.kts, gradle/libs.versions.toml, composeApp/src/commonMain/...
The iOS targets, dependencies, platform object, iOS icon, and iOS-specific documentation references are removed or updated.

iOS implementation removal

Layer / File(s) Summary
iOS app and platform implementations
composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/...
The iOS application entry point, platform services, controllers, permission handlers, and UI stubs are deleted.
iOS data and feature integrations
composeApp/src/iosMain/kotlin/com/inspiredandroid/oak/data/..., .../email/..., .../inference/..., .../notifications/..., .../sms/...
iOS persistence, email, inference, notification, and SMS implementations are deleted.

Project surface and documentation

Layer / File(s) Summary
Project surface and documentation updates
.github/..., .run/..., README.md, docs/features/*, docs/index.md
The issue template, run configuration, README, and feature documentation no longer list iOS as a supported platform.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~60 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to e3827

The iOS removal is internally consistent across the remaining supported targets and project surfaces, with no actionable merge-blocking risk identified.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 6 files. (11 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: removal of the iOS target and its implementation.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 6 files. (11 skipped: 11 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch remove-ios

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

iOS paths fade from the build
Native stubs rest, quiet and still
Docs align with targets anew
Android and desktop carry through
Web and WASM remain in view

Comment @coderabbitai help to get the list of available commands.

@adrielGGmotion
adrielGGmotion merged commit f06ff62 into main Sep 17, 2026
1 of 2 checks passed
@adrielGGmotion
adrielGGmotion deleted the remove-ios branch September 17, 2026 09:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant