Skip to content

Add mobile ritual discovery and daily pane controls - #192

Draft
BunsDev wants to merge 20 commits into
mainfrom
feat/mobile-ritual-discovery
Draft

Add mobile ritual discovery and daily pane controls#192
BunsDev wants to merge 20 commits into
mainfrom
feat/mobile-ritual-discovery

Conversation

@BunsDev

@BunsDev BunsDev commented Aug 20, 2026

Copy link
Copy Markdown
Member

Summary

  • publish bounded, sanitized project ritual metadata through protocol v3 with backward-compatible iOS decoding
  • add focused-pane ritual discovery and launch controls with authoritative refresh and partial-success messaging
  • extend deterministic fixtures and iPhone/iPad UI coverage, including compact split collapse, pane promotion, and restoration fixes

Test Plan

  • Vitest: 203 passed
  • pnpm typecheck
  • pnpm ios:project:check
  • git diff --check
  • iPhone full PsycheApp scheme before final metadata-only rebase: 452 passed, 8 skipped, 0 failed
  • iPad 26.5 full PsycheApp scheme after rebase: 454 passed, 6 skipped, 0 failed
  • post-rebase focused iPhone ritual launch test
  • post-rebase focused iPhone compact collapsed-pane promotion test

The post-rebase combined iPhone run hit two UI-runner failures; both tests passed when rerun independently on the same simulator.

BunsDev and others added 18 commits August 20, 2026 17:27
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 20, 2026 23:00
@vercel

vercel Bot commented Aug 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
psyche-build-docs Ready Ready Preview Aug 27, 2026 8:25pm

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds protocol v3 ritual metadata and iOS pane controls for discovering and launching project rituals.

Changes:

  • Publishes bounded ritual metadata with backward-compatible decoding.
  • Adds focused-pane ritual menus, launch handling, and split restoration.
  • Extends fixtures, protocol tests, unit tests, UI tests, and documentation.

Reviewed changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 3 comments.

Show a summary per file
File Summary
src/workspace/snapshot.ts Adds ritual snapshot metadata.
src/daemon/workspace.ts Publishes bounded ritual metadata.
protocol-fixtures/workspace-snapshot.json Updates snapshot fixtures.
protocol-fixtures/mobile-control.json Updates mobile control fixtures.
protocol-fixtures/fixtures.ts Adds ritual fixture data.
native/ios/PsycheCore/Tests/PsycheCoreTests/WorkspaceFixturesTests.swift Tests ritual fixture preservation.
native/ios/PsycheCore/Tests/PsycheCoreTests/WireProtocolContractTests.swift Tests ritual decoding compatibility.
native/ios/PsycheCore/Tests/PsycheCoreTests/FixtureControlRequestsTests.swift Tests fixture ritual launches.
native/ios/PsycheCore/Sources/PsycheCore/Protocol/BridgeMessages.swift Adds Swift ritual protocol models.
native/ios/PsycheCore/Sources/PsycheCore/Fixtures/WorkspaceFixtures.swift Adds deterministic ritual data.
native/ios/PsycheCore/Sources/PsycheCore/Fixtures/FixtureControlRequests.swift Simulates ritual launches and refreshes.
native/ios/PsycheApp/UnitTests/PaneControlsTests.swift Tests pane ritual targeting and errors.
native/ios/PsycheApp/Tests/PsycheAppUITests/PsycheAppUITests.swift Adds ritual and pane restoration coverage.
native/ios/PsycheApp/Sources/PsycheApp/Views/PaneWorkspaceView.swift Integrates focused-pane controls and split state.
native/ios/PsycheApp/Sources/PsycheApp/Views/PaneSwitcher.swift Supports pane promotion selections.
native/ios/PsycheApp/Sources/PsycheApp/Views/PaneControls.swift Adds ritual menus and launch handling.
native/ios/Psyche.xcodeproj/project.pbxproj Registers new test files.
docs/superpowers/specs/2026-08-17-mobile-ritual-discovery-design.md Documents the ritual discovery design.
docs/superpowers/plans/2026-08-17-mobile-ritual-discovery.md Documents implementation and verification.
__tests__/workspaceSnapshot.test.ts Tests bounded metadata sanitization.
__tests__/daemon/workspaceProtocolContract.test.ts Tests ritual protocol contracts.
__tests__/daemon/daemonConnection.test.ts Updates snapshot expectations.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +159 to +162
private func launch(_ ritual: WorkspaceRitualSnapshot, inProject projectID: String) {
run {
try await store.launchRitual(ritual.id, inProject: projectID)
do {
Comment thread src/daemon/workspace.ts
Comment on lines +58 to +61
const listRituals = deps.listRituals ?? listAvailableRituals;
const rituals = listRituals(normalizedProjectRoot)
.slice(0, MAX_PUBLISHED_RITUALS)
.map(projectRitualSnapshot);
Comment thread src/workspace/snapshot.ts
id: project.id,
root: project.root,
title: project.title,
rituals: project.rituals ?? [],
@BunsDev

BunsDev commented Aug 22, 2026

Copy link
Copy Markdown
Member Author

Release-first disposition: independent.

This is an iOS/mobile feature track and does not block the macOS v0.0.1 outcome. Its current CI is green, but review identified unregistered production launch executors and a live workspace-provider path that publishes no ritual metadata; resolve those findings within this PR before merge. Roadmap ownership is tracked in #195.

BunsDev commented Aug 23, 2026

Copy link
Copy Markdown
Member Author

Roadmap disposition — blocked iOS live path

This PR belongs to the independent iOS companion outcome in #200 and is not a macOS v0.0.1 blocker. Its delivery position is documented in #202.

It should remain blocked until the unresolved production-path findings are fixed:

  • register the real mobile ritual executor or route through the authoritative registered launcher;
  • publish bounded ritual metadata through the actual live TUI/bridge workspace provider rather than only a bypassed helper path;
  • prove a real iOS client receives the ritual menu from a live host and a launch returns an authoritative refreshed workspace;
  • rerun the combined final iPhone/iPad suites and required repository checks after the production wiring changes.

Fixture, decoder, or isolated UI success does not establish support when the live host path still returns command_not_supported or serializes rituals: [].

BunsDev commented Aug 24, 2026

Copy link
Copy Markdown
Member Author

2026-08-24 iOS train disposition

This remains a #200 capability slice, but it must follow an accepted #193 host/readiness contract and is not merge-ready in its current form.

Current blockers are production-composition failures, not test-count gaps:

  • no production registration of setMobilePaneExecutors means live ritual launch reaches requireMobileExecutors().launchRitual and returns command_not_supported;
  • the live createTuiWorkspaceProvider path does not publish bounded ritual metadata, so real iOS clients receive rituals: [] even though isolated helpers and fixtures contain data;
  • three current unresolved review threads cover those two seams;
  • the branch is non-mergeable, 18 commits, 22 files, and roughly 1,580 additions.

Required decomposition and order

  1. Host publication slice: publish bounded, sanitized ritual metadata through the actual production TUI/bridge workspace provider. Prove a live snapshot contains only the selected project’s allowed rituals.
  2. Host execution slice: register or route through the authoritative ritual launcher. Preserve authentication, project/pane scope, idempotency, receipts, and refreshed authoritative state.
  3. Protocol contract: cover unavailable executor, stale scope, partial success, duplicate retry, and refresh failure without optimistic UI success.
  4. Mobile UI slice: expose the menu only after the production capability is advertised; launch against a live host and render authoritative outcome/partial failure.
  5. Physical acceptance: run on the accepted Complete iOS Bonjour host connection flow #193 connection path from a real device, then rerun after reconnect and host restart.

Please keep this pull request draft. It should not be rebased as one opaque unit; extract the host publication/executor contracts first, then reapply the mobile UI against those accepted seams.

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.

3 participants