Commit Graph

94 Commits

Author SHA1 Message Date
90b0a19a4d Fix Settings app layout for RmlUi flex rendering
Add explicit width and flex container properties to fix elements
collapsing to zero width in RmlUi:
- .settings-list: Add width: 100%, display: flex, flex-direction: column
- .settings-section: Add width: 100%, display: flex, flex-direction: column
- .settings-item: Add width: 100%, box-sizing: border-box
- .user-card: Add width: 100%, box-sizing: border-box

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:33:42 +01:00
56dc8337af Fix RmlUi CSS compatibility issues in store, settings, and music apps
- Replace linear-gradient with solid colors (not supported in RmlUi)
- Replace border shorthand with border-width/border-color properties
- Replace display:grid with flexbox in music quick-access cards
- Remove unsupported transition property
- Fix border-radius: 50% to use 9999px in theme.rcss
- Fix third-party app icon/label sizes to match system apps (72x72px, 16px)
- Replace data-model bindings with static values in settings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:27:08 +01:00
6b611b1d09 Fix icon loading for third-party apps with file:// URL scheme
- Add file:// URL handling to AssetFilesInterface in kernel.cpp
- Update home.lua to use file:// prefix for absolute filesystem paths
- Add file:// URL handling to desktop file interface for consistency

This fixes RmlUi stripping the leading slash from absolute paths
when resolving img src URLs relative to the document base.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:01:31 +01:00
cb86d52705 Add sandbox API integration for RmlUi Lua state
- Register sandbox APIs (timer, JSON, crypto, VFS) into RmlUi's Lua state
- Add switchAppSandbox() function for context switching between apps
- Update goHome() to reset sandbox context when returning home
- Fix icon loading for third-party apps (handle full paths vs relative)
- Mirror changes between Android service (kernel.cpp) and desktop designer

This enables third-party apps to use sandbox APIs when running in RmlUi.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 15:49:35 +01:00
ea44f0bba4 Add simulator mode with app discovery and mosis.apps API
Simulator mode (--simulator flag):
- Starts from main home.rml instead of separate simulator home
- Discovers apps from test-apps folder automatically
- Shows discovered apps in home screen grid

mosis.apps API for Lua:
- getInstalled() returns array of discovered apps
- launch(package_id) starts an app with its own sandbox

goHome improvements:
- Uses g_main_assets_path to find home.rml correctly
- Works when running test apps directly
- Properly clears current app state

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 15:01:40 +01:00
984e8715d7 Fix desktop designer click handling and add goHome API
Designer click handling:
- Fix DPI scaling in MouseButtonCallback and CursorPosCallback
- Scale coordinates from window space to framebuffer/RmlUi context
- Remove window resizing in ResizeToPhone (caused DPI mismatches)

Test framework:
- Fix SendMouseDown to use MOUSEEVENTF_MOVE before button down
- Remove double-scaling in ScaleToPhysical (WindowController handles it)
- All 5 UI navigation tests now pass

Kernel API:
- Add goHome() Lua function to return to home screen
- Stops any running third-party apps before navigating

Test app:
- Update sandbox-test to use goHome() instead of goBack()

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 14:52:15 +01:00
d6b7504408 implement third-party app launching from home screen 2026-01-19 13:50:05 +01:00
ad28cf2360 add local app discovery: scan apps folder, render on home screen 2026-01-19 13:20:21 +01:00
bb31dcee00 fix remaining logger includes in Android source
Update kernel.cpp and apps/*.cpp to use core library logger.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:30:55 +01:00
58251e21cc add test output files to gitignore
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:15:00 +01:00
486c194f08 update Android to use shared mosis-core library
- Remove duplicate sandbox sources from Android (now in core/)
- Update Android CMakeLists to link mosis-core
- Add OpenSSL crypto support for Android
- Update all includes to use core library headers
- Remove duplicate logger from Android (use core logger)
- Add openssl to Android vcpkg dependencies

This removes ~5,500 lines of duplicate code by sharing
the sandbox implementation between desktop and Android.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:14:34 +01:00
33841516f1 extract shared mosis-core library from sandbox APIs
Create core/ directory with platform-agnostic sandbox components:
- Timer manager, JSON API, Crypto API, Virtual FS
- Lua sandbox, Permission gate, Audit log, Rate limiter
- Platform abstraction interfaces (IAssetInterface, IFilesystemInterface)
- Platform-agnostic logger with Android/Desktop implementations

Update designer to link against mosis-core library instead of
including sandbox sources directly.

This is the foundation for unifying the Android service and
desktop designer to share the same codebase.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:57:10 +01:00
f41eda6f62 add simulator mode to desktop designer for testing apps
- Add --simulator flag to launch home screen showing discovered apps
- Create app discovery system to scan test-apps/ directory
- Build simulator home screen with dark phone-like UI
- Add Lua API: simulator.launchApp, simulator.goHome, simulator.getApps
- ESC key returns to home when inside an app
- Apps displayed with icons in grid layout

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:16:01 +01:00
02db0d849c add --screenshot-after option and fix test app document access
- Add --screenshot-after CLI option to capture screenshot after playback
- Fix sandbox test app to cache document reference for onclick handlers
- Add getDocument() helper that works with RmlUi Lua proxy objects

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:36:14 +01:00
a583ef64a1 fix action player wait actions to properly delay playback finish
Wait actions now extend the minimum finish time based on their
timestamp + duration, ensuring timers and other async operations
have time to complete before playback ends and screenshot is taken.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:35:44 +01:00
8432bbb986 add sandbox support to desktop designer, fix mouse coordinates and UI issues
- Add DesktopSandbox class that integrates timer, JSON, crypto, and VirtualFS APIs
- Fix mouse coordinate handling: GLFW reports window coordinates, not physical pixels
- Fix font path resolution to search multiple locations for test apps
- Fix screenshot capture timing (capture before buffer swap)
- Fix test app CSS: use border-width instead of border:none, add display:block
- Fix test app Lua: add document nil checks, use HTML entities for symbols
- Update hot_reload to reset sandbox state on reload

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:22:32 +01:00
d40ea1e537 add generated icon for sandbox test app 2026-01-19 09:17:56 +01:00
d88bddbf75 fix sandbox test app: replace os.date, add goBack, remove missing icon ref 2026-01-19 09:15:30 +01:00
bbf1638f20 update roadmap with completed milestones, trim SANDBOX.md to reference milestone files 2026-01-19 09:07:31 +01:00
010e11cf6b move docs to docs/ folder, merge architecture files, update references 2026-01-19 09:02:11 +01:00
1b34b0e974 update docs with app management and sandbox system documentation 2026-01-18 23:14:56 +01:00
2364d0d327 integrate sandbox manager with app lifecycle (LaunchApp, StopApp, IsAppRunning) 2026-01-18 23:11:24 +01:00
0278acc0fc fix build errors: add missing include, LOG_* macros, stub sandbox integration 2026-01-18 22:55:20 +01:00
60d1a75838 integrate AppManager and UpdateService into kernel with Lua API registration 2026-01-18 22:38:02 +01:00
3ab586956e add app management sources and dependencies to build system 2026-01-18 22:36:14 +01:00
5ea0cdde63 add device-side app management with AppManager, UpdateService and App Store UI (M10) 2026-01-18 22:33:15 +01:00
03556ff1d4 update go.sum with CLI dependencies 2026-01-18 22:25:44 +01:00
9ccdf846f0 remove and ignore test results 2026-01-18 22:18:13 +01:00
8cb3cf769d add documentation site with markdown rendering (M12) 2026-01-18 22:07:35 +01:00
94a573f218 change module path from github.com/omixlab to omixlab.com 2026-01-18 21:55:47 +01:00
a5aa3cc9d7 add telemetry system with analytics and crash reporting (M08) 2026-01-18 21:53:06 +01:00
fbcb5c9543 add app review system with validation pipeline and admin htmx UI 2026-01-18 21:35:43 +01:00
cf9f42b66d add developer CLI tool with Cobra for app workflow 2026-01-18 21:24:50 +01:00
149736108e add local filesystem storage for packages and assets with upload handlers 2026-01-18 21:16:42 +01:00
01a0ac68a4 add htmx web frontend with templates and session auth 2026-01-18 21:11:23 +01:00
1bc112047d add app CRUD and public store API endpoints 2026-01-18 21:05:41 +01:00
8601bb5ba3 add OAuth authentication with JWT tokens and API key support 2026-01-18 21:00:03 +01:00
2eb6292dc2 add mosis-portal Go project with package signing and validation 2026-01-18 20:56:06 +01:00
d76627ebc3 add Developer Portal architecture summary to docs 2026-01-18 20:49:03 +01:00
a76724a3d5 finalize M06-M12 with Go/SQLite/Synology NAS implementation decisions 2026-01-18 20:29:13 +01:00
b86ee54934 update M05 frontend with htmx + Go templates for NAS deployment 2026-01-18 20:18:51 +01:00
366cc94d86 update M04 auth with Go implementation details 2026-01-18 18:53:15 +01:00
416c447ad8 finalize Go + SQLite stack decisions for Synology NAS deployment 2026-01-18 18:52:08 +01:00
30a7146929 add comprehensive app specifications document 2026-01-18 17:31:16 +01:00
5cfee2aa66 add developer portal planning documentation (M01-M12) 2026-01-18 17:20:51 +01:00
9805bdf175 implement Milestone 20: Kernel Integration with LuaSandboxManager (149 tests) 2026-01-18 16:54:02 +01:00
1b163891e0 implement Milestone 19: Security Testing Suite with fuzzer (141 tests pass) 2026-01-18 16:45:09 +01:00
372a293bd0 implement Milestone 18: inter-app MessageBus with intent system 2026-01-18 16:36:08 +01:00
72a06f542b implement Milestone 17: Contacts interface with read/write permissions 2026-01-18 16:29:07 +01:00
00b9ceb467 implement Milestone 16: Bluetooth interface with user consent 2026-01-18 16:21:06 +01:00