OConnector v1.3.0
What's New in v1.3.0
Added
- Multi-server management — new Server List home screen. Add, connect, and manage multiple OpenCode servers. Each server stores its own name, host, port, credentials, and TLS settings.
- Scroll-to-bottom button — the previously unused left piano key in the chat input bar is now a "scroll to bottom" button. Taps re-enable auto-scroll and jump to the latest message.
- Keyboard-aware auto-scroll — when the soft keyboard opens, the chat automatically scrolls to keep the latest messages visible above the input bar.
- Per-project memo panel — swipe left on the project session list to open a slide-in memo panel. Create, edit, and delete memos scoped to each project. Collapsed memos show a checkbox for marking done; expanded memos have editable title and content fields. Long-press to delete with confirmation. Persisted locally via DataStore.
Changed
- Language toggle & help button moved to Server List — removed from the Add Server / Connection screen to avoid duplication.
- Tips card moved to Server List — connection tips now shown at the bottom of the Server List screen.
- Update check moved to Server List — download button now shows on the Server List home screen on app launch.
Fixed
- Auto-scroll root cause (frame race) — initial scroll used
isLoading(Composition phase) as trigger, butLazyColumn.totalItemsCountonly updates in Layout phase. Replaced withsnapshotFlowthat only fires when layout catches up to data. - AI output scroll stuck at agent name — added forward
scrollBy(100_000f)afterscrollToItemto ensure the absolute bottom is visible. - Streaming output auto-scroll failure — re-designed the entire scroll pipeline.
- APK download proxied for China — downloads automatically routed through
gh-proxy.commirror. - Question/Permission bubble lost after app kill — Q/P blocking state now persisted to
SharedPreferences(disk) alongside memory cache. Survives app kill, device restart, and force stop. - Streaming output lost after app kill — streaming segments, pending message ID, and agent name now persisted to disk. Re-entering a session after process death restores the AI output progress.
- RecoveryBubble "Check Status" button not working — added dedicated
recheckBlockingState()method that clears heuristic state first, then tries cache (memory to disk), then falls back to a fresh server query. - Connection form scroll & password visibility — Add Server form now scrolls when keyboard pushes content off-screen. Password field has a visibility toggle.
Full Changelog: v1.2.0...v1.3.0