Ajit/macos - #35
Draft
deadlyjack wants to merge 17 commits into
Draft
Conversation
biraj21
marked this pull request as draft
July 16, 2026 03:41
* feat: add HostQrSheet component for displaying connection QR codes in SavedHostItem * chore: update iOS project configuration for development build - Changed AUTH_CALLBACK_SCHEME for dev version in Info.plist to use a variable for flexibility. - Updated project.pbxproj to reflect new display name and bundle identifier for the dev version. - Modified auth.tsx to clarify handling of auth callback schemes for both Android and iOS development builds. * chore: add qr code generator * refactor: remove ConnectionStatus.scss and integrate styles directly into ConnectionStatus component - Deleted the ConnectionStatus.scss file. - Moved styles into the ConnectionStatus component using Tailwind CSS classes. - Enhanced the connection status UI to provide clearer messaging during reconnection attempts and CLI updates. - Added logic to manage reconnect attempts and host updating state. * fix(auth): enhance error handling and session recovery logic - Introduced AuthRequestError type to carry HTTP status in authentication errors. - Added logic to retain session on transient network/server failures, preventing unnecessary sign-outs. - Implemented retry mechanism for session refresh when the device comes back online. - Updated refresh logic to handle backoff for failed refresh attempts, improving user experience during connectivity issues. * chore: bump version to 0.0.37 for release
…pagination improve chat ui, add reverse pagination, fix login
Opening a new chat no longer spawns an agent session up front — it is created by the first send, so starting a chat and backing out costs nothing on the host. This also fixes the new chat hanging on its loading skeleton: the eager path set loading before an async create whose `.then` bailed on a cancelled closure, and the attach that followed `session/new` pushed the CLI down its cold-miss path, emitting `syncing: "messages"` and clearing it before the subscription existed. `session/new` returns everything needed to prompt, so no attach follows it — per ACP, `session/load` resumes a *previous* conversation, and a session created moments ago has no history to replay. A draft chat renders its composer from the agent's host-cached session config, since ACP only exposes models, modes, and slash commands once a session exists. Config picks made before the first send are held locally and replayed onto the real session once it is created.
* fix(chat): preserve draft config picks and pass them at session create A draft chat has no ACP session, so mode/model picks made before the first send were kept in local state and replayed afterwards. Two gaps made them get lost or apply late: - The draft effect reset configOptions from the host-cached agent config on every run, clobbering picks the user had already made. Skip the reset while pending changes exist. - Agent metadata is only loaded on connection, so a draft opened after another chat populated the CLI's config cache rendered a stale toolbar. Refresh agents once per draft. Also send configOptions with AI_SESSION_CREATE so the first turn starts with the chosen config instead of the agent default, and bump @shellular/protocol to 0.0.31 for the field. * fix: re-use ticket on re-connects for speed * fix: new chat prompt should not get cleared on reconnect * fix(chat): stop selection jumping and copy burying the answer Two issues reported on Android with a long OpenCode response: Selecting text and dragging down jumped the selection to the top of the conversation. A selection drag is auto-scrolled by the WebView, which fires `scroll` but not `wheel`/`touchmove` — the events wired to scroll-intent — so the top sentinel came into view, prepended ~30 older messages, and corrected scrollTop out from under the drag. Suppress load-more, auto-scroll, and stick-to-bottom while a selection is active in the transcript. Copying a response also copied the reasoning and every tool call with its full JSON input/output, burying the actual answer. The message copy button now emits only the answer; each folded section (reasoning, tool call, tool-call group, command) carries its own copy button, so nothing became unreachable.
* feat: git tree view for changes * chore: update diffs & increment version --------- Co-authored-by: Biraj <biraj.pub@gmail.com>
* feat(agent chat): prompt queueing * fix(cli): recover externally owned agent session * chore: update version
* feat(chat): add inline Git review workflow * fix(chat): prevent duplicate optimistic user messages --------- Co-authored-by: Biraj <biraj.pub@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change Analytics
pie showData title Changed Lines by Module "Desktop workbench" : 19747 "macOS native" : 12006 "Editor" : 3415 "Shared libraries" : 2644 "Context menus" : 1895 "Other pages" : 1559 "Shared components" : 1548 "Mobile tabs" : 1534 "Other" : 7925Changed lines = additions + deletions.