Peter Steinberger
091584b197
chore(swift): restore compact conditional bodies ( #103832 )
...
* style(swift): restore compact conditional bodies
* fix(ios): remove redundant startup timeout await
* chore(swift): sync native i18n inventory
2026-07-10 18:12:00 +01:00
Peter Steinberger
62bd760c0e
chore(swift): enforce current formatting and lint rules ( #103313 )
...
* style: apply SwiftFormat 0.62.1 rules
Refs #103202
* ci: enforce deterministic Swift lint
Refs #103202
* refactor: keep gateway connect lint-clean
Refs #103202
* style: keep iOS typography checks warning-free
* ci: route MLX Swift changes through pre-push
* fix: preserve native i18n extraction after Swift cleanup
* refactor: keep rebased Swift surfaces lint-clean
* style: format latest Swift additions
* chore: refresh native i18n inventory
* style: keep generated Swift formatter-clean
* fix: preserve node route invalidation callbacks
* fix: keep native translation IDs stable
* fix: retain native translation identifiers
* fix: preserve translations across Swift source moves
2026-07-10 11:54:08 +01:00
John McChesney TenEyck Jr
ccdb60e5db
fix: show iOS chat activity after foreground refresh ( #102309 )
...
* Preserve iOS chat activity on foreground refresh
Show an activity indicator when foreground history reports session activity without a chat in-flight snapshot, while keeping unanswered turns blocked and clearing the fallback state on answers, terminal events, session changes, and timeout.
* fix(ios): preserve foreground run ownership
* chore(ios): sync native string inventory
* chore: keep release changelog owned
---------
Co-authored-by: Your Name <you@example.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 09:45:35 +01:00
Peter Steinberger
bb658d0a6d
feat(macos): redesign chat window as native shell with sessions sidebar, toolbar pickers, slash commands, and context usage ( #101103 )
...
* feat(chat-ui): native macOS chat window shell with sessions sidebar, context usage, and slash commands
* feat(macos): host redesigned chat window shell and complete gateway chat transport
* fix(chat-ui): gate slash panel on catalog support and register window shell shortcuts outside menus
* fix(chat-ui): make sidebar selection tags optional and sync programmatic composer text into the focused NSTextView
* fix(macos): track in-window session switches for chat window reuse
* fix(chat-ui): re-bootstrap in place when deleting the active main session
* docs(macos): describe the redesigned native chat window
* fix(macos): scope bare global session RPCs to the routing default agent
* style(chat-ui): restore blank line between rebased helpers
* fix(macos): scope selected global session actions
* fix(macos): refresh chat routing identity
* fix(chat-ui): hide delete for main sessions
* fix(macos): remove duplicate session patch path
* fix(chat-ui): resolve sidebar session aliases
* fix(chat-ui): isolate sidebar alias resolution
* fix(chat-ui): reconcile active session aliases
* fix(chat-ui): prefer selected session aliases
* chore(i18n): refresh chat window inventory
* fix(chat-ui): return sidebar filter result
* refactor(chat-ui): split session actions
2026-07-07 02:06:10 +01:00
Peter Steinberger
f95ca90378
fix(ios): persist voice notes through offline delivery ( #101236 )
...
* fix(ios): persist voice note delivery state
* fix(ios): pin chats during attachment staging
* fix(ios): keep voice notes on captured chat
* fix(ios): keep voice notes durable through staging
* fix(ios): harden voice note lifecycle
* test(ios): satisfy strict concurrency in voice note proof
* fix(ios): keep legacy attachment sends live
* fix(ios): retain legacy drafts during outbox restore
* fix(ios): pin voice note recipient presentation
* fix(ios): preserve confirmed voice note duration
* chore(i18n): refresh voice note source inventory
* chore: leave release notes to release automation
2026-07-07 01:21:16 +01:00
Peter Steinberger
b978dcc63b
feat(ios): record and send voice notes from the chat composer ( #100946 )
...
* feat(ios): record and send voice notes from the chat composer
Adds tap-to-record voice notes to the shared chat composer: m4a/AAC mono
capture with a 3-minute cap, lazy mic permission, cancel/finish controls,
audio attachment chips with duration, and a voice-note transcript row.
Voice-wake suppression becomes reason-scoped so recording and Talk cannot
clobber each other. Attachments stay online-only per the outbox contract.
Related: #100709
* fix(ios): harden voice note attachment staging
* chore(ios): keep voice note changelog release-owned
* fix(ios): gate voice notes with attachment availability
* chore(ios): refresh native localization inventory
2026-07-07 00:14:05 +01:00
Peter Steinberger
4babbb2f6f
feat(ios): context-window usage indicator in the chat composer ( #101183 )
2026-07-06 23:43:19 +01:00
Peter Steinberger
06789ca4c2
fix(ios): keep offline chat sends on their original route ( #100942 )
2026-07-06 17:53:05 +01:00
Peter Steinberger
538d4eeb77
feat(ios): hide thinking-level control for models without reasoning support ( #100875 )
2026-07-06 15:59:03 +01:00
Peter Steinberger
1f06b890a6
feat(ios): add model picker favorites and recents with working iOS model switching ( #100774 )
2026-07-06 11:44:13 +01:00
VicZhang
7acfb63535
feat: add slash command picker in chat composer ( #99426 )
...
* feat: add iOS slash command picker
* refine iOS slash command picker presentation
* Fix iOS slash picker scroll affordance build
* Preserve branded mono typography in slash picker
* Refresh native i18n inventory
* Remove slash picker row icons
* Refresh native i18n inventory
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-03 22:53:25 -04:00
Marvin Kaunda
5370f64cf0
improve: native iOS look with stock SwiftUI navigation, forms, chat, and talk visualizer ( #99231 )
...
* improve(ios): adopt native SwiftUI chrome across the app
* fix(ios): keep phone chat on the native navigation bar
* fix(ios): render licenses screen as native settings rows
* fix(ios): complete native interface polish
* fix(ios): preserve branded native interface
* test(ios): align gateway badge source guard
* fix(ios): center onboarding on iPad
* fix(ios): remove dead reskin symbols
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-03 18:17:09 -07:00
joshavant
37a9b9a91c
Audit iOS branded typography coverage
2026-07-03 18:45:45 -05:00
joshavant
ea3c6dc5f7
fix(ios): align branded typography licenses
2026-07-03 18:45:45 -05:00
Peter Steinberger
c4102f5d67
feat(ios): refine the chat experience ( #98953 )
...
* feat(ios): refine the chat experience
* feat(ios): refine the chat experience
2026-07-02 08:40:53 +01:00
Peter Steinberger
3e50f41dd6
improve(ios): simplify Talk controls and composer alignment ( #98736 )
...
* refactor(ios): streamline talk and composer controls
* test(ios): restore Talk control state
* chore(ios): refresh native i18n inventory
2026-07-02 00:48:37 +01:00
Peter Steinberger
8502ef6c59
feat(ios): modernize the app with iOS 26 Liquid Glass ( #98452 )
...
* feat(ios): adopt iOS 26 Liquid Glass design
* refactor(ios): refine Liquid Glass hierarchy
* docs(ios): require Xcode 26
* refactor(ios): remove obsolete design helpers
* fix(ios): keep agent tab navigation hidden
* fix(ios): compact chat composer at rest
* refactor(ios): reduce interface density
* fix(ios): keep native string inventory current
2026-07-01 19:06:04 +01:00
John McChesney TenEyck Jr
a54206f0f5
Fix iOS chat Dynamic Type text ( #97552 )
...
Co-authored-by: Your Name <you@example.com >
2026-06-28 14:52:37 -07:00
Sash Zats
5d9daea2b0
fix(ios): centralize app accent colors ( #94627 )
...
Move iOS accent and status colors through design tokens so raw SwiftUI color literals are blocked outside token definitions.
Set the app-wide tint in SwiftUI and UIKit from code, without relying on Assets.xcassets AccentColor.
2026-06-22 20:20:37 +00:00
joshavant
9942428df0
fix(ios): disable chat composer while offline
2026-06-06 04:41:33 -05:00
joshavant
748881e0a8
fix(ios): label chat attachment button
2026-06-04 22:52:52 -05:00
Colin Johnson
f6e51ff99a
feat(ios): refresh pro UI and gateway flows ( #87367 )
...
Summary:
- Replace the legacy iOS shell with Pro Command, Chat, Agents, and Settings tabs.
- Wire iOS chat/session/settings/diagnostics and realtime Talk flows through gateway-backed APIs.
- Add gateway/session and shared chat coverage for the new iOS flow.
Verification:
- git diff --check
- node scripts/run-vitest.mjs src/gateway/server.sessions.create.test.ts src/gateway/talk-realtime-relay.test.ts
- swift test --filter ChatViewModelTests (apps/shared/OpenClawKit)
- xcodebuild build for Nimrod's iPhone succeeded; install succeeded; launch was blocked because the phone was locked
Known follow-up:
- Preserve traceLevel in sessions.create parent runtime inheritance and keep the changelog credit in the follow-up patch.
2026-05-28 17:23:26 +03:00
Val Alexander
9ffe290a17
fix(chat): decode native thinking metadata
...
Decode gateway-provided thinking metadata for native iOS/macOS chat picker options, preserving extended and legacy thinking levels without leaking default-model options across sessions.\n\nVerification:\n- swift test --package-path apps/shared/OpenClawKit --filter ChatViewModelTests --no-parallel\n- swift test --package-path apps/macos --filter WebChatSwiftUISmokeTests --no-parallel\n- pnpm lint:swift\n- pnpm check:changed\n\nFollow-up maintainer fix for #40878 review feedback.
2026-05-07 02:39:01 -05:00
Peter Steinberger
b294f7c467
fix: harden ios app build hygiene
2026-04-28 01:42:10 +01:00
J. Tyler Bittner
00951dc9f9
fix(macOS): enable undo/redo in webchat composer text input ( #34962 )
...
* fix(macOS): enable undo/redo in webchat composer text input
Set `allowsUndo = true` on ChatComposerNSTextView in makeNSView().
NSTextView defaults allowsUndo to false, which prevented Cmd+Z and
the Edit menu Undo/Redo items from functioning.
Fixes #34898
* fix(macos): enable webchat composer undo/redo (#34962 ) (thanks @tylerbittner)
---------
Co-authored-by: Nimrod Gutman <nimrod.gutman@gmail.com >
2026-04-17 10:07:20 +03:00
Luke
061b8258bc
macOS: add chat model selector and persist thinking ( #42314 )
...
* feat(macos): add chat model selector and thinking persistence UX
* Chat UI: carry session model providers
* Docs: add macOS model selector changelog
* macOS: persist extended thinking levels
* Chat UI: keep model picker state in sync
* Chat UI tests: cover model selection races
---------
Co-authored-by: Ubuntu <ubuntu@vps-90352893.vps.ovh.ca >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-11 00:43:04 -04:00
Peter Steinberger
d15b6af77b
fix: land contributor PR #39516 from @Imhermes1
...
macOS app/chat/browser/cron/permissions fixes.
Co-authored-by: ImHermes1 <lukeforn@gmail.com >
2026-03-08 06:11:20 +00:00
Peter Steinberger
1970a1e9e5
fix(macos): keep Return for IME marked text commit ( #25178 )
...
Co-authored-by: jft0m <9837901+bottotl@users.noreply.github.com >
2026-02-25 00:14:00 +00:00
Mariano
9476dda9f6
iOS Chat: clean UI noise and format tool outputs ( #22122 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 34dd87b0c0
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-20 19:01:03 +00:00
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00