107 lines
4.1 KiB
Markdown
107 lines
4.1 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Company
|
|
|
|
**OmixLab LTD** - Package namespace: `com.omixlab`
|
|
|
|
## Git Commit Guidelines
|
|
|
|
**IMPORTANT**: When creating git commits:
|
|
- **DO NOT** add yourself as a co-author (no `Co-Authored-By` lines)
|
|
- **Commit messages must be a single line** - keep it concise and descriptive
|
|
|
|
## Project Overview
|
|
|
|
Mosis is a **virtual smartphone OS** for VR games and applications. It provides a phone-like device that users can interact with inside VR environments, with real smartphone functionality.
|
|
|
|
### Current Status
|
|
|
|
| Component | Status | Notes |
|
|
|-----------|--------|-------|
|
|
| MosisService | ✅ Working | RmlUi rendering, touch input, navigation |
|
|
| App Management | ✅ Working | Install/uninstall apps, sandbox integration |
|
|
| Lua Sandbox | ✅ Working | 149 security tests passing |
|
|
| Desktop Designer | ✅ Working | Hot-reload, hierarchy dump, recording |
|
|
| Designer Tests | ✅ 5/5 Passing | Navigation tests automated |
|
|
| MosisVR (Unity) | ✅ Building | OpenGL backend working, Vulkan in progress |
|
|
| MosisUnreal | ✅ Working | Vulkan texture import via UE5 RHI, phone actor with mesh |
|
|
|
|
### Project Components
|
|
|
|
| Component | Location | Purpose |
|
|
|-----------|----------|---------|
|
|
| Android Service | `src/main/` | Native service running RmlUi renderer |
|
|
| App Management | `src/main/cpp/apps/` | App install/uninstall/launch with sandbox |
|
|
| Lua Sandbox | `src/main/cpp/sandbox/` | Per-app Lua isolation (22 modules) |
|
|
| Desktop Designer | `designer/` | UI development with hot-reload |
|
|
| Designer Tests | `designer-test/` | Automated UI testing framework |
|
|
| Sandbox Tests | `sandbox-test/` | Lua sandbox security tests (149 tests) |
|
|
| UI Assets | `src/main/assets/` | Shared RML/RCSS/Lua assets |
|
|
|
|
## Detailed Documentation
|
|
|
|
All detailed documentation is in `docs/`:
|
|
|
|
| Document | Description |
|
|
|----------|-------------|
|
|
| [BUILD-COMMANDS.md](BUILD-COMMANDS.md) | Android, Desktop Designer, and test build commands |
|
|
| [ARCHITECTURE.md](ARCHITECTURE.md) | Native libraries, IPC flow, code structure |
|
|
| [DESKTOP-DESIGNER.md](DESKTOP-DESIGNER.md) | Hot-reload, recording, key files |
|
|
| [TESTING-FRAMEWORK.md](TESTING-FRAMEWORK.md) | Automated UI testing, writing tests |
|
|
| [UI-ASSETS.md](UI-ASSETS.md) | Asset structure, navigation system, element IDs |
|
|
| [MATERIAL-DESIGN.md](MATERIAL-DESIGN.md) | Icons, MDL components, usage guide |
|
|
| [ANDROID-TESTING.md](ANDROID-TESTING.md) | ADB commands, event injection, logs |
|
|
| [GAME-ENGINES.md](GAME-ENGINES.md) | Unreal & Unity integration, Vulkan import |
|
|
| [DEVELOPER-PORTAL.md](DEVELOPER-PORTAL.md) | Portal architecture, milestones |
|
|
| [APP-MANAGEMENT.md](APP-MANAGEMENT.md) | Package format, manifest, lifecycle |
|
|
| [LUA-SANDBOX.md](LUA-SANDBOX.md) | Security features, permissions, APIs |
|
|
|
|
## Quick Reference
|
|
|
|
### Environment Requirements
|
|
|
|
- `ANDROID_HOME` - Android SDK path
|
|
- `ANDROID_NDK_HOME` - Android NDK path (version 29.0.14206865)
|
|
- `VCPKG_ROOT` - vcpkg package manager root
|
|
|
|
### Common Build Commands
|
|
|
|
```bash
|
|
# Android APK
|
|
./gradlew assembleDebug
|
|
|
|
# Desktop Designer (from designer/)
|
|
cmake -B build -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake
|
|
cmake --build build --config Debug
|
|
|
|
# Sandbox Tests (from sandbox-test/)
|
|
./run_tests.bat
|
|
```
|
|
|
|
### Code Style
|
|
|
|
- C++23 standard with modern features (std::span, std::format)
|
|
- PascalCase for classes/functions, camelCase for variables
|
|
- RAII principles with smart pointers
|
|
- Kotlin code follows Android conventions
|
|
|
|
### Dependencies
|
|
|
|
- vcpkg: RmlUi, GLFW, Freetype, Lua, libpng, nlohmann-json, minizip, sqlite3
|
|
- Android: arm64-v8a only
|
|
- Desktop: Windows x64 (MSVC)
|
|
|
|
## Documentation Guidelines
|
|
|
|
**IMPORTANT**: Always document progress and new commands to avoid rediscovery.
|
|
|
|
| Content Type | Location |
|
|
|--------------|----------|
|
|
| General concepts, architecture | `MosisService/docs/CLAUDE.md` or `docs/` |
|
|
| Unreal plugin docs | `MosisUnreal/Plugins/MosisSDK/README.md` |
|
|
| Unity package docs | `MosisVR/Packages/com.omixlab.mosis_sdk/README.md` |
|
|
|
|
**DO NOT** put documentation in the root `D:\Dev\Mosis\` directory - it is not versioned.
|