Skip to content

Support projectless sessions on iOS - #350

Open
jsgrrchg wants to merge 3 commits into
zeronsh:mainfrom
jsgrrchg:zeron/ios-projectless-chat-support
Open

jsgrrchg wants to merge 3 commits into
zeronsh:mainfrom
jsgrrchg:zeron/ios-projectless-chat-support

Conversation

@jsgrrchg

@jsgrrchg jsgrrchg commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

iOS currently requires a project to create a session and hides active projectless sessions synchronized from desktop. This change lets users choose + → Session without a project…, select an execution host, and send the first message even when their account has no projects.

Projectless chats omit spaceId, use the selected deviceId and cwd = "~", preserve the harness/model/reasoning/options configuration, and start with roomGen = 2. Creation and the first command use the existing local registry outbox and durable session command flow.

  • Introduce a typed new-session destination while retaining existing project routes and deep links.
  • Allow selecting and changing desktop hosts, including offline hosts; exclude iOS execution targets.
  • Resolve catalogs, attachment delivery, and host capabilities through the selected device without requiring a Space; hide Git/ref/worktree controls for projectless drafts.
  • Show active projectless sessions in Home's All list, including sessions synchronized from desktop. Keep them out of project lists and continue excluding active chats with dangling project references. Preserve archived-session behavior.
  • Add eight unit tests and four UI tests covering creation, persistence, destination selection, host capabilities, the first command, empty accounts, and the existing project flow.

Validation

  • cargo test --locked -p zeron-engine --test projectless --test workspace_sync: 10 passed; 1 ignored because it requires a live edge.
  • Tree-sitter syntax parsing of all 11 changed Swift files and git diff --check: passed. Syntax parsing does not replace Swift compilation.
  • Attempted the iOS unit and UI test runs with xcodebuild, but this Linux environment has no Xcode. The app and new iOS tests have not been compiled or executed here.

Manual testing required before marking ready

This PR is intentionally a draft and still requires manual testing on iOS with a real desktop host, plus compilation and automated test execution on an Xcode 26+ Mac.

  • Create, send, return to Home, and reopen a projectless session, including on an account with no projects.
  • Switch hosts before sending and verify the context, harness/model catalogs, reasoning/options, and attachment delivery use the selected host.
  • Send while offline, reconnect, and verify durable delivery and host wake-up; check attachments and queue behavior.
  • Confirm desktop-created projectless sessions appear in All, stay out of project filters, and retain archive/unarchive behavior.
  • Verify ordinary project sessions, Git/ref/worktree controls, and existing deep links still work.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@jsgrrchg
jsgrrchg marked this pull request as ready for review September 13, 2026 20:40
@jsgrrchg

Copy link
Copy Markdown
Contributor Author

@wingleeio this is redi

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