Skip to content

Add services: list, log viewer, and stop action#54

Closed
mcintyre94 wants to merge 1 commit intomainfrom
feature-planning-services-in-wisp-54939835
Closed

Add services: list, log viewer, and stop action#54
mcintyre94 wants to merge 1 commit intomainfrom
feature-planning-services-in-wisp-54939835

Conversation

@mcintyre94
Copy link
Owner

Summary

  • iPhone: inline "Services" section at the bottom of the Overview tab — lists running services with status dots, tap to view live logs and stop
  • iPad/Mac: dedicated "Services" entry in the sidebar nav (below Checkpoints), showing a full ServicesView panel
  • Live log streaming via streamServiceLogs with stdout (white) / stderr (orange) colour-coding and auto-scroll
  • Stop service from swipe action, context menu (synced), or detail view toolbar — all with confirmation dialogs
  • Chat service names cross-referenced with SwiftData for friendly display names (e.g. "Chat 1" instead of wisp-claude-abc123ef)

Model changes

  • ServiceInfo enriched with cmd, args, httpPort, needs, pid, startedAt to match the full list/get API response
  • Added Identifiable + Hashable conformance for navigationDestination

New files

  • ServicesViewModel — loads service list, tracks display names, handles stop
  • ServicesView — full list for iPad/Mac sidebar
  • ServiceDetailView — live log stream + stop
  • ServiceRowView — reusable row with status dot and cmd/port info

Test plan

  • iPhone simulator: Overview tab shows "Services" section at the bottom; tapping a service pushes log view; Stop toolbar button shows confirmation then removes from list
  • iPad simulator: "Services" sidebar item appears below Checkpoints; selecting it shows ServicesView; tapping a row navigates to logs; swipe-to-stop and right-click context menu both work
  • Chat service names display as "Chat N" rather than the raw service name
  • Log view auto-scrolls as new lines arrive; stderr lines appear in orange
  • Pull-to-refresh updates the service list
  • Unit tests pass (ServiceTypesTests — 5 new ServiceInfo decode tests)

🤖 Generated with Claude Code

- List services per sprite via GET /v1/sprites/{name}/services
- iPhone: inline "Services" section at the bottom of Overview tab
- iPad/Mac: dedicated "Services" sidebar entry with full ServicesView
- Tap any service to stream its logs live (stdout/stderr, color-coded)
- Stop service with confirmation dialog, from list swipe/context menu or detail toolbar
- Cross-references chat service names for friendly display names
- Enriched ServiceInfo model with cmd, args, httpPort, needs, pid, startedAt
- 5 new unit tests for ServiceInfo decoding

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mcintyre94
Copy link
Owner Author

Closing for now — the underlying API methods (listServices, streamServiceLogs, deleteService) were removed in #102 when Claude execution switched from services to exec sessions. Services are less relevant now that Wisp doesn't create them. Can be revisited if a services UI becomes a priority again.

@mcintyre94 mcintyre94 closed this Mar 18, 2026
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