Commit Graph

96 Commits

Author SHA1 Message Date
8cf24d8c2a fix files directory handling: use internal storage and add exception handling
- Use internal files dir instead of external (fixes scoped storage permissions)
- Pass files directory from Android context via JNI instead of hardcoding
- Add exception handling in ScanAppsDirectory to prevent crashes on permission errors
- Use std::error_code overload of fs::exists() to avoid throwing on access denial

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 21:49:58 +01:00
76d97e202b fix settings layout for RmlUi 6.2: toggle positioning and flexbox sizing 2026-01-19 19:53:29 +01:00
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