Skip to content

Rebuild the app around chat: consumer shell, chat correctness, workflow templates - #15

Open
Siddhesh2377 wants to merge 25 commits into
mainfrom
siddhesh/ui-work-v1
Open

Rebuild the app around chat: consumer shell, chat correctness, workflow templates#15
Siddhesh2377 wants to merge 25 commits into
mainfrom
siddhesh/ui-work-v1

Conversation

@Siddhesh2377

@Siddhesh2377 Siddhesh2377 commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Rebuilds the app around chat as the product, and fixes the chat correctness bugs
that surfaced once it was usable.

Consumer shell

The sidebar carries conversations and a Chat/Workflow switcher; Manage Models and
Settings moved to the footer. More is hidden entirely outside developer mode, and
Settings hides the default-model pickers there too, since in user mode the
recommendation engine chooses per device and those screens fall back on their own
when nothing is set.

Model names lose their quantisation suffixes, browsing is grouped by publisher and
category with the grouping under the reader's control, and chat is gated behind
having a model to talk to rather than failing at the first message.

Chat correctness

Four separate faults, all of them the app calling the SDK with options that meant
the opposite of what the screen intended.

ReasoningOptions was left unset when the thinking toggle was off. Unset is not
off: with a thinking-capable model commons reads it as "reasoning might be
coming" and withholds the whole answer waiting for a closing tag that a plainly
answering model never sends. Nothing streamed and the turn landed in one lump.

includeInOutput was never set, and thought tokens are dropped at the ABI
boundary without it, so the Thinking disclosure could not fill while streaming
and a turn routed to the reasoning channel came back empty.

There was no system prompt at all. There is one now, composed rather than
substituted: the assistant instruction always, a scoped reasoning clause when
thinking is on, and the tool contract appended when tools are on. The tool path
used to pass ChatTools.skill as the entire prompt, which replaced the model's
identity with a page about web_research.

Tool-enabled turns dropped the conversation. generateWithTools takes a
history parameter that was never passed, so with web search on every turn was a
cold start and a follow-up had nothing to resolve "it" against.

Measured on the same turn and model, before and after: one delta became 82 with
thinking off and 242 with it on; a 7,837-character reply that was the model
arguing with itself became "Hello! How can I help you?" with 943 characters of
reasoning in its own channel.

Apple's built-in model

HardwareTierResolver collapsed the SDK's precise reason to a Bool, so a row
that could not run said nothing about why. The reason now travels with the
verdict and appears on the model row and in the picker, where the row is disabled
rather than failing on tap. Separately, the recommendation back-fill ignored the
availability gate and could hand back Apple's model as an ordinary local LLM, and
its ordering was unstable because it sorted a Dictionary's values by size alone.

Workflow

Adds a template library, a node reference describing every node and its ports,
and Calendar and Reminders tools with the entitlement the sandbox needs. Workflow
LLM nodes now send the IDL defaults: commons stamps the node's system prompt onto
the same options message, which makes has_options true, and an unset
temperature then reads back as an explicit request for greedy decoding. Every
stock template set a system prompt and none set a temperature, so all of them
generated flat.

Testing

RunAnywhereAIUnitTests runs real models off disk rather than mocking the SDK:
catalog and load, streaming with reasoning on and off, the greeting turn that
used to loop, text-only and image VLM turns, transcription and synthesis, plus
the chat prompt composition rules and every workflow template.

Added after review

A read-only audit of every RunAnywhere.* call site in the app, looking for one
specific shape: options the screen clearly intends but never sets, or sets to
something meaning the opposite. Six held up; five are fixed here and one belongs
to the SDK.

Tool-enabled turns dropped the conversation, which is described above. The image
path set no system prompt, so a photo produced "The image you have shared appears
to be a photograph…" and then hit the 320-token cap mid-answer. Document
questions left ReasoningOptions unset, so with a thinking model the chain of
thought streamed into the answer bubble for the whole turn and half the RAG
budget went to reasoning nobody saw. Computer Use asked for a strict <tool_call>
schema at the SDK's default temperature of 0.7, while every other structured call
site in the app pins sampling; it is greedy now. Workflow LLM nodes sent a bare
options message, and because commons stamps the node's system prompt onto that
same message, has_options was true and an unset temperature read back as an
explicit 0: every stock template generated flat and a re-run of a "rewrite this"
node returned byte-identical text. They send the IDL defaults now.

The sixth is the thinking toggle on a vision model. Reasoning has no carrier
through the VLM component at all, so the toggle was a control that did nothing;
it is hidden there until the SDK can carry it.

Transcription is worth a correction. An earlier note here said speech recognition
was broken. It is not: the test took the first installed speech model, which
happened to be the one that fails. Per model, sherpa-onnx-whisper-tiny.en and
sherpa-nemo-canary-180m-flash-int8 both transcribe accurately, and
mlx-qwen3-asr-0.6b-8bit does not. test07 now runs every installed speech
model and names the ones that fail, so it cannot be misread that way again.

Still open

  • The image path is capped at 320 tokens because an unbounded vision decode has
    taken the process down before.
  • Three of the four installed models that show a Thinking badge do not honour the
    toggle. That is per-model, not plumbing.
  • Transcription reaches the model and fails inside it with "Inference failed".

Package.swift and project.pbxproj still carry the local SDK path override and
are deliberately not in this branch.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 278 files, which is 178 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a5f94a08-24c4-41d9-b48f-1b0ac07107ff

📥 Commits

Reviewing files that changed from the base of the PR and between 009892e and a0487f4.

📒 Files selected for processing (278)
  • .gitignore
  • RunAnywhereAI/App/AppCommands.swift
  • RunAnywhereAI/App/ConsumerAdvancedHubView.swift
  • RunAnywhereAI/App/ContentView.swift
  • RunAnywhereAI/App/InitializationViews.swift
  • RunAnywhereAI/App/MacSidebar.swift
  • RunAnywhereAI/App/RootView.swift
  • RunAnywhereAI/App/RunAnywhereAIApp.swift
  • RunAnywhereAI/App/SDKBootstrap.swift
  • RunAnywhereAI/Core/DesignSystem/AppColors.swift
  • RunAnywhereAI/Core/DesignSystem/AppControls.swift
  • RunAnywhereAI/Core/DesignSystem/AppMode.swift
  • RunAnywhereAI/Core/DesignSystem/AppMotion.swift
  • RunAnywhereAI/Core/DesignSystem/AppSpacing.swift
  • RunAnywhereAI/Core/DesignSystem/AudioActivityBars.swift
  • RunAnywhereAI/Core/DesignSystem/EmptyState.swift
  • RunAnywhereAI/Core/DesignSystem/EmptyStateMark.swift
  • RunAnywhereAI/Core/DesignSystem/Haptics.swift
  • RunAnywhereAI/Core/DesignSystem/Layout.swift
  • RunAnywhereAI/Core/DesignSystem/LegacyTokens.swift
  • RunAnywhereAI/Core/DesignSystem/Motion.swift
  • RunAnywhereAI/Core/DesignSystem/Surface.swift
  • RunAnywhereAI/Core/DesignSystem/Typography.swift
  • RunAnywhereAI/Core/DesignSystem/ViewCompatibility.swift
  • RunAnywhereAI/Core/Models/AppTypes.swift
  • RunAnywhereAI/Core/Scaffold/Scaffold.swift
  • RunAnywhereAI/Core/Scaffold/SideNav.swift
  • RunAnywhereAI/Core/Services/ConversationStore.swift
  • RunAnywhereAI/Core/Services/DeviceInfoService.swift
  • RunAnywhereAI/Core/Services/HardwareTier.swift
  • RunAnywhereAI/Core/Services/HuggingFaceHubClient.swift
  • RunAnywhereAI/Core/Services/KeychainService.swift
  • RunAnywhereAI/Core/Services/ModelCatalogBootstrap.swift
  • RunAnywhereAI/Extensions/ModelInfo+Logo.swift
  • RunAnywhereAI/Extensions/RunAnywhere+ExampleShims.swift
  • RunAnywhereAI/Extensions/String+Markdown.swift
  • RunAnywhereAI/Features/Benchmarks/BenchmarkEngine.swift
  • RunAnywhereAI/Features/Benchmarks/BenchmarkHistory.swift
  • RunAnywhereAI/Features/Benchmarks/BenchmarkReport.swift
  • RunAnywhereAI/Features/Benchmarks/BenchmarkRunDetail.swift
  • RunAnywhereAI/Features/Benchmarks/BenchmarkTypes.swift
  • RunAnywhereAI/Features/Benchmarks/BenchmarksModel.swift
  • RunAnywhereAI/Features/Benchmarks/BenchmarksScreen.swift
  • RunAnywhereAI/Features/Benchmarks/Models/BenchmarkStore.swift
  • RunAnywhereAI/Features/Benchmarks/Models/BenchmarkTypes.swift
  • RunAnywhereAI/Features/Benchmarks/Services/BenchmarkRunner.swift
  • RunAnywhereAI/Features/Benchmarks/Services/LLMBenchmarkProvider.swift
  • RunAnywhereAI/Features/Benchmarks/Services/STTBenchmarkProvider.swift
  • RunAnywhereAI/Features/Benchmarks/Services/TTSBenchmarkProvider.swift
  • RunAnywhereAI/Features/Benchmarks/Services/VLMBenchmarkProvider.swift
  • RunAnywhereAI/Features/Benchmarks/Utilities/BenchmarkReportFormatter.swift
  • RunAnywhereAI/Features/Benchmarks/Utilities/BenchmarkShareCardData.swift
  • RunAnywhereAI/Features/Benchmarks/Utilities/SyntheticInputGenerator.swift
  • RunAnywhereAI/Features/Benchmarks/ViewModels/BenchmarkShareViewModel.swift
  • RunAnywhereAI/Features/Benchmarks/ViewModels/BenchmarkViewModel.swift
  • RunAnywhereAI/Features/Benchmarks/Views/BenchmarkDashboardView.swift
  • RunAnywhereAI/Features/Benchmarks/Views/BenchmarkDetailView.swift
  • RunAnywhereAI/Features/Benchmarks/Views/BenchmarkProgressView.swift
  • RunAnywhereAI/Features/Benchmarks/Views/BenchmarkShareCardView.swift
  • RunAnywhereAI/Features/Chat/AttachmentModelSwitch.swift
  • RunAnywhereAI/Features/Chat/ChatAttachment.swift
  • RunAnywhereAI/Features/Chat/ChatBindings.swift
  • RunAnywhereAI/Features/Chat/ChatComposer.swift
  • RunAnywhereAI/Features/Chat/ChatComposerModel.swift
  • RunAnywhereAI/Features/Chat/ChatFirstRun.swift
  • RunAnywhereAI/Features/Chat/ChatTools.swift
  • RunAnywhereAI/Features/Chat/ChatTranscript.swift
  • RunAnywhereAI/Features/Chat/ChatTurn.swift
  • RunAnywhereAI/Features/Chat/ChatViewModel.swift
  • RunAnywhereAI/Features/Chat/ChatWelcome.swift
  • RunAnywhereAI/Features/Chat/ComposerStrips.swift
  • RunAnywhereAI/Features/Chat/DictationController.swift
  • RunAnywhereAI/Features/Chat/MarkdownView.swift
  • RunAnywhereAI/Features/Chat/ModelBadge.swift
  • RunAnywhereAI/Features/Chat/Models/ChatAttachmentLoader.swift
  • RunAnywhereAI/Features/Chat/Models/ChatDocumentAttachment.swift
  • RunAnywhereAI/Features/Chat/Models/ChatImageAttachment.swift
  • RunAnywhereAI/Features/Chat/Models/ChatNotificationNames.swift
  • RunAnywhereAI/Features/Chat/Models/LoraExamplePrompts.swift
  • RunAnywhereAI/Features/Chat/Models/Message.swift
  • RunAnywhereAI/Features/Chat/Models/MessageAnalytics.swift
  • RunAnywhereAI/Features/Chat/RecordingBar.swift
  • RunAnywhereAI/Features/Chat/ResearchProgressCard.swift
  • RunAnywhereAI/Features/Chat/ResearchStageCollector.swift
  • RunAnywhereAI/Features/Chat/StarterPrompt.swift
  • RunAnywhereAI/Features/Chat/ToolCallCard.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel+Analytics.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel+Documents.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel+Events.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel+Generation.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel+MessageActions.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel+ModelManagement.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel+ToolCalling.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel+Vision.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModel.swift
  • RunAnywhereAI/Features/Chat/ViewModels/LLMViewModelTypes.swift
  • RunAnywhereAI/Features/Chat/ViewModels/ToolCallingModelPolicy.swift
  • RunAnywhereAI/Features/Chat/Views/ChatComposerBar.swift
  • RunAnywhereAI/Features/Chat/Views/ChatDetailsView.swift
  • RunAnywhereAI/Features/Chat/Views/ChatInterfaceView.swift
  • RunAnywhereAI/Features/Chat/Views/ChatLoRASheets.swift
  • RunAnywhereAI/Features/Chat/Views/ChatMessageAttachmentViews.swift
  • RunAnywhereAI/Features/Chat/Views/ChatMessageComponents.swift
  • RunAnywhereAI/Features/Chat/Views/ChatMessageListView.swift
  • RunAnywhereAI/Features/Chat/Views/ChatTopBar.swift
  • RunAnywhereAI/Features/Chat/Views/ConversationDrawerView.swift
  • RunAnywhereAI/Features/Chat/Views/ModelLoadedToast.swift
  • RunAnywhereAI/Features/Chat/Views/StreamingTextView.swift
  • RunAnywhereAI/Features/Chat/Views/ToolCallViews.swift
  • RunAnywhereAI/Features/ComputerUse/ComputerUseAgentView.swift
  • RunAnywhereAI/Features/ComputerUse/ComputerUseAgentViewModel.swift
  • RunAnywhereAI/Features/ComputerUse/ComputerUseModelCard.swift
  • RunAnywhereAI/Features/ComputerUse/ComputerUseScreen.swift
  • RunAnywhereAI/Features/ComputerUse/ComputerUseViewModel.swift
  • RunAnywhereAI/Features/Connect/ConnectClientController.swift
  • RunAnywhereAI/Features/Connect/ConnectHostManagementView.swift
  • RunAnywhereAI/Features/Connect/ConnectHostModel.swift
  • RunAnywhereAI/Features/Connect/ConnectScreen.swift
  • RunAnywhereAI/Features/Connect/ConnectStatusBanner.swift
  • RunAnywhereAI/Features/Connectors/Connector.swift
  • RunAnywhereAI/Features/Connectors/ConnectorCatalog.swift
  • RunAnywhereAI/Features/Connectors/ConnectorSecrets.swift
  • RunAnywhereAI/Features/Connectors/ConnectorStore.swift
  • RunAnywhereAI/Features/Connectors/ConnectorsSheet.swift
  • RunAnywhereAI/Features/Diarization/DiarizationModelCard.swift
  • RunAnywhereAI/Features/Diarization/DiarizationScreen.swift
  • RunAnywhereAI/Features/Diarization/DiarizationView.swift
  • RunAnywhereAI/Features/Diarization/DiarizationViewModel.swift
  • RunAnywhereAI/Features/Home/HomeScreen.swift
  • RunAnywhereAI/Features/Intro/IntroScreen.swift
  • RunAnywhereAI/Features/Models/AddFromHuggingFaceView.swift
  • RunAnywhereAI/Features/Models/AddModelFromURLView.swift
  • RunAnywhereAI/Features/Models/ConsumerModelName.swift
  • RunAnywhereAI/Features/Models/CuratedModelsView.swift
  • RunAnywhereAI/Features/Models/DefaultModels.swift
  • RunAnywhereAI/Features/Models/DownloadIndicator.swift
  • RunAnywhereAI/Features/Models/ManageModelsView.swift
  • RunAnywhereAI/Features/Models/ModelBrowseGroups.swift
  • RunAnywhereAI/Features/Models/ModelBrowseOptions.swift
  • RunAnywhereAI/Features/Models/ModelComponents.swift
  • RunAnywhereAI/Features/Models/ModelCuration.swift
  • RunAnywhereAI/Features/Models/ModelDownloadProgressView.swift
  • RunAnywhereAI/Features/Models/ModelDownloadTracker.swift
  • RunAnywhereAI/Features/Models/ModelListViewModel.swift
  • RunAnywhereAI/Features/Models/ModelOrgViews.swift
  • RunAnywhereAI/Features/Models/ModelPicker.swift
  • RunAnywhereAI/Features/Models/ModelPresentation.swift
  • RunAnywhereAI/Features/Models/ModelPurpose.swift
  • RunAnywhereAI/Features/Models/ModelRecommendation.swift
  • RunAnywhereAI/Features/Models/ModelRows.swift
  • RunAnywhereAI/Features/Models/ModelSelectionRows.swift
  • RunAnywhereAI/Features/Models/ModelSelectionSheet.swift
  • RunAnywhereAI/Features/Models/ModelStatusComponents.swift
  • RunAnywhereAI/Features/Models/ModelStore.swift
  • RunAnywhereAI/Features/Models/ModelsSupportingSections.swift
  • RunAnywhereAI/Features/Models/RecommendedModelViews.swift
  • RunAnywhereAI/Features/Models/ShippedModels.swift
  • RunAnywhereAI/Features/Models/SimplifiedModelsView.swift
  • RunAnywhereAI/Features/Models/ToolCapability.swift
  • RunAnywhereAI/Features/More/MoreDestination.swift
  • RunAnywhereAI/Features/More/MoreHost.swift
  • RunAnywhereAI/Features/More/MoreScreen.swift
  • RunAnywhereAI/Features/RAG/Services/DocumentService.swift
  • RunAnywhereAI/Features/Segmentation/SegmentationScreen.swift
  • RunAnywhereAI/Features/Segmentation/SegmentationView.swift
  • RunAnywhereAI/Features/Segmentation/SegmentationViewModel.swift
  • RunAnywhereAI/Features/Settings/AppSettings.swift
  • RunAnywhereAI/Features/Settings/CalendarTool.swift
  • RunAnywhereAI/Features/Settings/CombinedSettingsView.swift
  • RunAnywhereAI/Features/Settings/HealthKitTool.swift
  • RunAnywhereAI/Features/Settings/SettingsScreen.swift
  • RunAnywhereAI/Features/Settings/SettingsViewModel.swift
  • RunAnywhereAI/Features/Settings/ToolSettingsView.swift
  • RunAnywhereAI/Features/Setup/SetupPlan.swift
  • RunAnywhereAI/Features/Setup/SetupScreen.swift
  • RunAnywhereAI/Features/Storage/StorageScreen.swift
  • RunAnywhereAI/Features/Storage/StorageViewModel.swift
  • RunAnywhereAI/Features/Tools/AppTools.swift
  • RunAnywhereAI/Features/Tools/CalculateTool.swift
  • RunAnywhereAI/Features/Tools/CalendarTools.swift
  • RunAnywhereAI/Features/Tools/ClipboardTools.swift
  • RunAnywhereAI/Features/Tools/DateTimeTools.swift
  • RunAnywhereAI/Features/Tools/NotificationTool.swift
  • RunAnywhereAI/Features/Tools/OpenURLTool.swift
  • RunAnywhereAI/Features/Tools/ReminderTools.swift
  • RunAnywhereAI/Features/Tools/RunningAppsTool.swift
  • RunAnywhereAI/Features/Tools/ToolSupport.swift
  • RunAnywhereAI/Features/Vision/VLMCameraPreview.swift
  • RunAnywhereAI/Features/Vision/VLMCameraView.swift
  • RunAnywhereAI/Features/Vision/VLMViewModel.swift
  • RunAnywhereAI/Features/Vision/VisionCameraPreview.swift
  • RunAnywhereAI/Features/Vision/VisionScreen.swift
  • RunAnywhereAI/Features/Vision/VisionViewModel.swift
  • RunAnywhereAI/Features/Voice/AudioCapturePump.swift
  • RunAnywhereAI/Features/Voice/AudioRouteRow.swift
  • RunAnywhereAI/Features/Voice/ReadAloudScreen.swift
  • RunAnywhereAI/Features/Voice/ReadAloudViewModel.swift
  • RunAnywhereAI/Features/Voice/STTViewModel.swift
  • RunAnywhereAI/Features/Voice/SpeechToTextView.swift
  • RunAnywhereAI/Features/Voice/TTSViewModel.swift
  • RunAnywhereAI/Features/Voice/TalkScreen.swift
  • RunAnywhereAI/Features/Voice/TalkViewModel.swift
  • RunAnywhereAI/Features/Voice/TextToSpeechView.swift
  • RunAnywhereAI/Features/Voice/TranscribeScreen.swift
  • RunAnywhereAI/Features/Voice/TranscribeViewModel.swift
  • RunAnywhereAI/Features/Voice/VADViewModel.swift
  • RunAnywhereAI/Features/Voice/VoiceAISetupView.swift
  • RunAnywhereAI/Features/Voice/VoiceActivityDetectionView.swift
  • RunAnywhereAI/Features/Voice/VoiceActivityScreen.swift
  • RunAnywhereAI/Features/Voice/VoiceActivityViewModel.swift
  • RunAnywhereAI/Features/Voice/VoiceAgentTypes.swift
  • RunAnywhereAI/Features/Voice/VoiceAgentViewModel.swift
  • RunAnywhereAI/Features/Voice/VoiceAssistantComponents.swift
  • RunAnywhereAI/Features/Voice/VoiceAssistantParticleView.swift
  • RunAnywhereAI/Features/Voice/VoiceAssistantView.swift
  • RunAnywhereAI/Features/Voice/VoiceComponentViewModelBase.swift
  • RunAnywhereAI/Features/Voice/VoiceControls.swift
  • RunAnywhereAI/Features/Voice/VoiceModeSheet.swift
  • RunAnywhereAI/Features/Voice/VoiceModelSlot.swift
  • RunAnywhereAI/Features/VoiceKeyboard/FlowActivationView.swift
  • RunAnywhereAI/Features/VoiceKeyboard/FlowSessionManager.swift
  • RunAnywhereAI/Features/VoiceKeyboard/VoiceDictationManagementView.swift
  • RunAnywhereAI/Features/VoiceKeyboard/VoiceDictationManagementViewModel.swift
  • RunAnywhereAI/Features/Workflow/WorkflowBundleDocument.swift
  • RunAnywhereAI/Features/Workflow/WorkflowBundleSheets.swift
  • RunAnywhereAI/Features/Workflow/WorkflowCanvasOverlays.swift
  • RunAnywhereAI/Features/Workflow/WorkflowCanvasSurface.swift
  • RunAnywhereAI/Features/Workflow/WorkflowCodeEditor.swift
  • RunAnywhereAI/Features/Workflow/WorkflowDocumentMapping.swift
  • RunAnywhereAI/Features/Workflow/WorkflowEditorViewModel+Packs.swift
  • RunAnywhereAI/Features/Workflow/WorkflowEditorViewModel+Selection.swift
  • RunAnywhereAI/Features/Workflow/WorkflowEditorViewModel.swift
  • RunAnywhereAI/Features/Workflow/WorkflowGraph.swift
  • RunAnywhereAI/Features/Workflow/WorkflowIconWell.swift
  • RunAnywhereAI/Features/Workflow/WorkflowIssueRow.swift
  • RunAnywhereAI/Features/Workflow/WorkflowNodeCard.swift
  • RunAnywhereAI/Features/Workflow/WorkflowNodeCatalog.swift
  • RunAnywhereAI/Features/Workflow/WorkflowNodeInspector.swift
  • RunAnywhereAI/Features/Workflow/WorkflowNodeInspectorSections.swift
  • RunAnywhereAI/Features/Workflow/WorkflowNodeReference.swift
  • RunAnywhereAI/Features/Workflow/WorkflowNodeReferenceContent.swift
  • RunAnywhereAI/Features/Workflow/WorkflowNodeReferenceSheet.swift
  • RunAnywhereAI/Features/Workflow/WorkflowNodeSettings.swift
  • RunAnywhereAI/Features/Workflow/WorkflowPackCatalog.swift
  • RunAnywhereAI/Features/Workflow/WorkflowPackDraft.swift
  • RunAnywhereAI/Features/Workflow/WorkflowPackEditorSheet.swift
  • RunAnywhereAI/Features/Workflow/WorkflowPackInspectorSections.swift
  • RunAnywhereAI/Features/Workflow/WorkflowPackStore.swift
  • RunAnywhereAI/Features/Workflow/WorkflowPalette.swift
  • RunAnywhereAI/Features/Workflow/WorkflowRemoveButton.swift
  • RunAnywhereAI/Features/Workflow/WorkflowScheduler.swift
  • RunAnywhereAI/Features/Workflow/WorkflowScreen.swift
  • RunAnywhereAI/Features/Workflow/WorkflowTemplate.swift
  • RunAnywhereAI/Features/Workflow/WorkflowTemplateLibrary.swift
  • RunAnywhereAI/Features/Workflow/WorkflowTemplatePicker.swift
  • RunAnywhereAI/Helpers/AdaptiveLayout.swift
  • RunAnywhereAI/Helpers/InlineMarkdownRenderer.swift
  • RunAnywhereAI/Helpers/SmartMarkdownRenderer.swift
  • RunAnywhereAI/Info.plist
  • RunAnywhereAI/Resources/Skill.md
  • RunAnywhereAI/RunAnywhereAI.entitlements
  • RunAnywhereAI/Utilities/ModelLogoHelper.swift
  • RunAnywhereAIUITests/RunAnywhereAIUITestsLaunchTests.swift
  • RunAnywhereAIUnitTests/AppleFoundationModelsTests.swift
  • RunAnywhereAIUnitTests/ChatSystemPromptTests.swift
  • RunAnywhereAIUnitTests/ConsumerModelNameTests.swift
  • RunAnywhereAIUnitTests/EndToEndTests.swift
  • RunAnywhereAIUnitTests/FirstGenerationTests.swift
  • RunAnywhereAIUnitTests/HardwareTierTests.swift
  • RunAnywhereAIUnitTests/ModelDownloadHelper.swift
  • RunAnywhereAIUnitTests/ModelOrgCatalogTests.swift
  • RunAnywhereAIUnitTests/ModelRecommendationEngineTests.swift
  • RunAnywhereAIUnitTests/ModelSelectionContextTests.swift
  • RunAnywhereAIUnitTests/WorkflowTemplateExecutionTests.swift
  • RunAnywhereAIUnitTests/WorkflowTemplateFixture.swift
  • RunAnywhereAIUnitTests/WorkflowTemplateValidationTests.swift
  • RunAnywhereAIUnitTests/WorkflowToolPickerTests.swift
  • thoughts/shared/plans/workflows-out-of-commons.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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

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

@Siddhesh2377 Siddhesh2377 changed the title Rebuild the app: scaffold shell, new design system, chat with web research Rebuild the app around chat: consumer shell, chat correctness, workflow templates Aug 25, 2026
@Siddhesh2377

Copy link
Copy Markdown
Collaborator Author

Build (iOS Simulator) cannot pass on this branch yet, and that is expected.

CI resolves the published runanywhere-swift package, currently 0.20.24. This
branch uses SDK surface that only exists on the unreleased side:
ToolProgress, RAWorkflowBundle, RAWorkflowDocument, RAWorkflowNode,
RAManualTriggerConfig, RABundleImportIssue and the rest of the workflow and
tool-progress types, plus the text-only vlm.generateStream(prompt:options:)
added in runanywhere-sdks#773.

It is not a regression from any commit here: the same job has failed on every run
since 2026-08-24, including 0b4a6c4, e34042e and 1ba2b8f, all of which
predate the current work.

Locally it builds and runs, because Package.swift and project.pbxproj carry a
path override onto the monorepo checkout. That override is deliberately not
committed: Package.resolved has to pin a real tag for a build to count as a
release build, and committing the path would break every other consumer.

Unblocking it needs runanywhere-sdks#773 released and the pin here bumped to that
version. Nothing in this PR can fix it.

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