Skip to content

Conversation

@athal7
Copy link
Contributor

@athal7 athal7 commented Jan 7, 2026

Summary

  • PWA support with service worker caching and web manifest
  • Mobile UI improvements for iOS/Android browsers
  • Touch-friendly controls and keyboard handling

Features

  • Service worker with intelligent caching (stale-while-revalidate)
  • Web app manifest for installable PWA experience
  • iOS meta tags and safe area inset support for notched devices
  • Virtual keyboard detection for proper layout adjustments
  • Project reordering via move up/down menu options on mobile
  • Scroll-to-bottom button when not at conversation end

Related Issues

Demo

Before

trim.3D3639B6-5A06-4CEC-A581-2E71E71D836D.MOV

After

trim.DC05A0D8-1C92-40CB-8646-1D8C25C2CC2D.MOV

@athal7 athal7 requested a review from adamdotdevin as a code owner January 7, 2026 21:52
@github-actions
Copy link
Contributor

github-actions bot commented Jan 7, 2026

The following comment was made by an LLM, it may be inaccurate:

No duplicate PRs found

@athal7 athal7 marked this pull request as draft January 7, 2026 22:03
@athal7 athal7 force-pushed the opencode/hidden-forest branch 3 times, most recently from 8e14998 to 1f1089e Compare January 7, 2026 22:15
@athal7 athal7 marked this pull request as ready for review January 7, 2026 22:17
@athal7 athal7 force-pushed the opencode/hidden-forest branch 3 times, most recently from 70a44b5 to e016d06 Compare January 7, 2026 22:51
@athal7 athal7 marked this pull request as draft January 7, 2026 22:55
@athal7 athal7 force-pushed the opencode/hidden-forest branch from e016d06 to 67cc211 Compare January 7, 2026 22:58
@athal7 athal7 marked this pull request as ready for review January 7, 2026 23:18
@athal7 athal7 changed the title feat(app): add mobile-friendly web UI feat(app): add PWA support and mobile UI improvements Jan 7, 2026
@athal7 athal7 changed the title feat(app): add PWA support and mobile UI improvements feat: add PWA support and mobile UI improvements Jan 8, 2026
@athal7 athal7 force-pushed the opencode/hidden-forest branch from d72695d to 0da9180 Compare January 9, 2026 15:09
@athal7 athal7 marked this pull request as draft January 10, 2026 23:37
@athal7 athal7 force-pushed the opencode/hidden-forest branch 2 times, most recently from e359812 to 085ad3d Compare January 11, 2026 21:37
@athal7 athal7 marked this pull request as ready for review January 11, 2026 23:36
@Jovines
Copy link

Jovines commented Jan 13, 2026

Great work on this PWA support PR, this is really valuable! ✨
Quick small thought: adding Web Push support would let users get notifications with the PWA closed, which would be a nice little enhancement.
Fyi, https://github.com/tiann/hapi already has this Web Push capability implemented for reference.
Just a suggestion, no obligations at all!

@athal7 athal7 force-pushed the opencode/hidden-forest branch 4 times, most recently from 22c516f to a18e38b Compare January 13, 2026 13:20
@athal7
Copy link
Contributor Author

athal7 commented Jan 13, 2026

Thanks for the suggestion! I've added Web Push notification support in the latest commit:

  • Service worker now handles push events and shows notifications
  • Added notificationclick handler to focus/open the app when tapped
  • Server endpoints for push subscription management (/push/subscribe, /push/unsubscribe)
  • Auto-subscribes when notification permission is granted

This allows notifications to be delivered even when the PWA is closed.

PWA Support:
- Service worker with intelligent caching (stale-while-revalidate for HTML)
- Web app manifest for installable PWA experience
- iOS meta tags and safe area inset support

Mobile UI:
- Virtual keyboard detection for proper layout adjustments
- Responsive layout improvements
- Mobile-friendly server URL detection for remote access

Web Push Notifications:
- Push event handler in service worker
- Notification click handler to focus/open app
- Server endpoints for push subscription management
- Auto-subscribe when notification permission granted
@athal7 athal7 force-pushed the opencode/hidden-forest branch from a18e38b to 7556808 Compare January 13, 2026 13:21
Resolved conflict in prompt-input.tsx by combining mobile-friendly
styling with new provider icons and model variant selector features.
@Jovines
Copy link

Jovines commented Jan 13, 2026

Haha thanks for the quick implementation! Looks awesome!

- Add SyncGate to wait for data before rendering child components
- Fix defensive checks for SolidJS store proxy arrays
- Add missing /agent and /find proxy routes for Vite dev server
- Use same origin for remote dev access to leverage Vite proxy
- Add scroll-to-bottom button that appears when user scrolls up
- Fix toast notification centering on mobile (center on mobile, right on desktop)
- Make archive button always visible on mobile (left of status indicator)
- Make project menu button always visible on mobile
- Add move up/down options in project dropdown for mobile reordering
- Extract directory search utilities for better testability
- Add swipe gesture utility for future mobile interactions
- Add comprehensive test coverage for all mobile features
- Restore notAtBottom tracking in auto-scroll hook for scroll button visibility
- Restore question tool registration and CSS in message-part
- Restore iOS Safari clipboard fallback for mobile copy
- Restore overflow-x: hidden in session-turn to prevent side scroll
- Fix scroll button to use notAtBottom() instead of userScrolled()
- Reduce mobile padding in prompt-input for better model name display
- Add 178 regression tests covering all restored features
The question tool UI was restored but the handlers to actually
respond to or reject questions were not connected to the DataProvider.
…ctivity

The question tool needs sessionID and callID during the 'running' state to
look up pending requests. Previously these were only available in metadata
after tool completion, making the question tool non-interactive.

- Add sessionID and callID to ToolProps interface
- Pass message.sessionID and part.callID to Dynamic component
- Update question tool to use props directly instead of metadata
- Add comprehensive tests for question tool features
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.

[FEATURE]: Mobile-friendly web UI

2 participants