feat(go): v0.2.1 — markdown tables, attachments, resizable input, icon polish#371
Merged
zomux merged 7 commits intoMay 7, 2026
Merged
Conversation
The thread list's selection binding silently dropped nil writes, but iPhone's compact NavigationSplitView writes nil to the binding when the detail is popped via Back. With currentSessionId still pinned to that thread, the row stayed 'selected' and re-tapping triggered no change — visible only with a single thread, since multiple threads let you break out by tapping a different row. selectSession now accepts String? and clears state on nil so the next tap re-pushes.
Universal-bundle validation (TARGETED_DEVICE_FAMILY=1,2) was failing on two pre-existing gaps: missing UISupportedInterfaceOrientations (iPad multitasking requires all four) and missing UILaunchScreen (iOS 14+ requires a launch storyboard or UILaunchScreen dict). Adding both to project.yml and Info.plist; bundling the Xcode-applied DEVELOPMENT_TEAM + .app product rename that came along during archiving.
…n polish - Markdown table rendering: GFM `| --- |` parsing in MarkdownSegmenter, Grid-based TableView with last-column flex so label/description tables fill the bubble width with proper wrap. - File attachments in chat input: paperclip → NSOpenPanel (macOS) / fileImporter (iOS); paste images/file URLs via .onPasteCommand on macOS; pending-attachment chip strip; multipart POST /v1/files in WorkspaceAPI; uploaded files spliced into the outgoing message as markdown links. - Resizable input box: drag handle adjusts inputHeight, clamped to ≤ 50% of chat height via GeometryReader + ChatHeightKey preference. - Shift+Enter newline: unified onKeyPress handler — plain Return sends, Shift+Return inserts newline, on macOS and iOS hardware keyboards. - Wide-content bubble layout: HStack uses fixed-width opposite-side spacer + GeometryReader-driven explicit bubble width when a message contains a table/code block, instead of relying on flex distribution that was splitting space with the Spacer. - Mac dock icon: regenerated all 10 sizes at 77% body / 22.5% radius for a Mac-style rounded squircle with breathing room. - Bump MARKETING_VERSION to 0.2.1.
|
@baryhuang is attempting to deploy a commit to the Raphael's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- iOS paperclip now presents `PhotosPicker` (images only, max 10) instead of `.fileImporter([.item])`. Documents/PDFs aren't a primary use case for chat-style attachment on phone — photos are the natural default. - Photo bytes are loaded via `loadTransferable(type: Data.self)` and fed into the same PendingAttachment pipeline as macOS pasted/picked files. - iOS-only minor version bump to 0.3.0 via platform-conditional build setting (`MARKETING_VERSION[sdk=iphone*]`). macOS stays at 0.2.1 — no point re-versioning the platform we just shipped.
….3.0 Per-platform version mismatch (iOS 0.3.0 vs macOS 0.2.1) is more confusing than useful — the codebase ships from one tag and one tree. Drop the `MARKETING_VERSION[sdk=iphone*]` conditional and let both platforms share 0.2.1 again. PhotosPicker change from the previous commit stays.
…ptions Tap paperclip on iPhone now opens a Menu with two choices: - Photo Library → PhotosPicker (images, max 10) - Files → fileImporter (any file via the Files app) Both options feed into the same PendingAttachment chip + multipart upload pipeline. macOS path is unchanged (single NSOpenPanel button). The paperclip itself is now factored into a `paperclipControl` view to keep the per-platform branching contained.
5cfe583 to
b1359df
Compare
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.
Brings the active
feat/go-ui-revampSwift line intodevelop, including the v0.2.0 polish commits that landed after PR #369 plus the new v0.2.1 features. Already released asgo-v0.2.1.v0.2.1 (new)
| --- |tables render inline in chat bubbles via SwiftUIGrid. Last column is flex so "label / description" tables fill the bubble width with proper text wrap.NSOpenPanelon macOS,.fileImporteron iOS), image/file paste on macOS via.onPasteCommand. Pending-attachment chips above the input; on send, files are uploaded multipart toPOST /v1/filesand spliced into the outgoing message as markdown links.GeometryReader+ preference key..onKeyPresshandler — plain Return sends, Shift+Return inserts a newline. macOS + iOS hardware keyboards.MARKETING_VERSION→0.2.1.v0.2.0 polish (already on
feat/go-ui-revamp)iPad orientations + UILaunchScreen for App Store upload, iPhone re-tap-to-reopen, encryption-exempt declaration, opaque app icons, original macOS Shift+Return fix, tertiary URL placeholder on iPhone, iPhone-target polish.
Test plan