mirror of
https://github.com/mikeyobrien/ralph-orchestrator.git
synced 2026-04-25 07:05:57 +03:00
[PR #163] [CLOSED] feat(ios): RalphMobile full API coverage + SSE event stream fix #177
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ralph-orchestrator#177
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/mikeyobrien/ralph-orchestrator/pull/163
Author: @krzemienski
Created: 2/7/2026
Status: ❌ Closed
Base:
main← Head:feat/ios-api-coverage-clean📝 Commits (10+)
5c94386Ralph checkpoint 456e9df3efeat(ralph-mobile): Create Expo project structure with NativeWindc68224ffeat(ralph-mobile): add API client and secure storage utilities3464e62Ralph checkpoint 48722c3c1feat(ralph-mobile): add AuthContext with login/register/logout flow88f213cfeat(ralph-mobile): add authentication screens with login and register flow403fa72feat(ralph-mobile): add tab navigation with core screensa36bc70feat(ralph-mobile): add session detail view with controlse9d33dbfeat(ralph-mobile): add WebSocket client for real-time updates1a7355cfeat(ralph-mobile): add push notification service with TDD📊 Changes
100 files changed (+0 additions, -0 deletions)
View changed files
📝
.gitignore(+16 -0)➕
.prompts/001-rop-self-improvement-do/001-rop-self-improvement-do.md(+238 -0)➕
.prompts/001-rop-self-improvement-do/SUMMARY.md(+34 -0)➕
.prompts/002-orchestration-sdk-fix-plan/SUMMARY.md(+64 -0)➕
.prompts/002-orchestration-sdk-fix-plan/completed/002-orchestration-sdk-fix-plan.md(+329 -0)➕
.serena/.gitignore(+1 -0)➕
.serena/project.yml(+84 -0)➕
apps/mobile/.expo/README.md(+13 -0)➕
apps/mobile/.expo/devices.json(+3 -0)➕
apps/mobile/.expo/prebuild/cached-packages.json(+4 -0)➕
apps/mobile/.expo/types/router.d.ts(+14 -0)➕
apps/mobile/.expo/web/cache/production/images/android-adaptive-foreground/android-adaptive-foreground-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-transparent/icon_108.png(+0 -0)➕
apps/mobile/.expo/web/cache/production/images/android-adaptive-foreground/android-adaptive-foreground-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-transparent/icon_162.png(+0 -0)➕
apps/mobile/.expo/web/cache/production/images/android-adaptive-foreground/android-adaptive-foreground-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-transparent/icon_216.png(+0 -0)➕
apps/mobile/.expo/web/cache/production/images/android-adaptive-foreground/android-adaptive-foreground-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-transparent/icon_324.png(+0 -0)➕
apps/mobile/.expo/web/cache/production/images/android-adaptive-foreground/android-adaptive-foreground-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-transparent/icon_432.png(+0 -0)➕
apps/mobile/.expo/web/cache/production/images/android-standard-circle/android-standard-circle-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-#0a0a0a/icon_144.png(+0 -0)➕
apps/mobile/.expo/web/cache/production/images/android-standard-circle/android-standard-circle-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-#0a0a0a/icon_192.png(+0 -0)➕
apps/mobile/.expo/web/cache/production/images/android-standard-circle/android-standard-circle-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-#0a0a0a/icon_48.png(+0 -0)➕
apps/mobile/.expo/web/cache/production/images/android-standard-circle/android-standard-circle-5f4c0a732b6325bf4071d9124d2ae67e037cb24fcc9c482ef82bea742109a3b8-cover-#0a0a0a/icon_72.png(+0 -0)...and 80 more files
📄 Description
Summary
isSessionActivenow checks backendmode("live") instead of always-nilstatusfield.omc/ephemeral filesKey Changes
SSE Event Stream Fix (P0)
Root cause:
isSessionActivecheckedsession.status(alwaysnil— never populated from API) instead ofsession.mode("live"/"complete"from backend). SSE stream was never started for any session.Fix (
SessionViewModel.swift):Backend (ralph-mobile-server)
New API handlers: iterations, merge-queue, config-export/import, robot, tasks, memories, loops management — completing the full 40-route API surface.
iOS App
Test plan
cargo test -p ralph-mobile-server— 179 tests passxcodebuild build— BUILD SUCCEEDED (zero errors)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.