feat: set up openhuman-skills git submodule

- Add openhuman-skills submodule pointing to tinyhumansai/openhuman-skills
- Remove openhuman-skills from .gitignore so the submodule is tracked
- Update skill discovery paths in qjs_engine.rs from skills/skills to
  openhuman-skills/skills (dev cwd, parent, and bundled resource paths)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
M3gA-Mind
2026-03-31 19:22:37 +05:30
co-authored by Claude Sonnet 4.6
parent c273d60f9d
commit 649c381f3d
5 changed files with 24 additions and 6 deletions
-1
View File
@@ -53,5 +53,4 @@ tauri.key.pub
/target/
src-tauri/target/
openhuman-skills
workflow
+3
View File
@@ -0,0 +1,3 @@
[submodule "openhuman-skills"]
path = openhuman-skills
url = https://github.com/tinyhumansai/openhuman-skills
+15
View File
@@ -35,11 +35,26 @@ This project adheres to the [Contributor Covenant Code of Conduct](CODE_OF_CONDU
```bash
git clone https://github.com/YOUR_USERNAME/openhuman.git
cd openhuman
git submodule update --init --recursive # pulls openhuman-skills
yarn install
```
Use your own fork in place of `YOUR_USERNAME` when cloning.
The `openhuman-skills` submodule contains the built skill bundles used by the runtime. After cloning you must initialise it (the command above does this). If you forget, the runtime will fall back to fetching skills from the remote registry, which is slower and requires network access.
### Updating Skills
When the `openhuman-skills` submodule is updated upstream, run:
```bash
git submodule update --remote openhuman-skills
cd openhuman-skills && yarn install && yarn build
cd ..
git add openhuman-skills
git commit -m "chore: update openhuman-skills submodule"
```
### Run the App
- **Web only**: `yarn dev` (Vite dev server, typically port 1420)
+1
Submodule openhuman-skills added at 52d58295c0
+5 -5
View File
@@ -165,16 +165,16 @@ impl RuntimeEngine {
let current =
std::env::current_dir().map_err(|e| format!("Failed to get current dir: {e}"))?;
// 2. Dev: cwd/skills/skills
let dev_skills = current.join("skills").join("skills");
// 2. Dev: cwd/openhuman-skills/skills
let dev_skills = current.join("openhuman-skills").join("skills");
if dev_skills.exists() {
log::info!("[runtime] Using dev skills dir: {:?}", dev_skills);
return Ok(dev_skills);
}
// 3. Dev: ../skills/skills
// 3. Dev: ../openhuman-skills/skills
if let Some(parent) = current.parent() {
let parent_skills = parent.join("skills").join("skills");
let parent_skills = parent.join("openhuman-skills").join("skills");
if parent_skills.exists() {
log::info!("[runtime] Using parent dev skills dir: {:?}", parent_skills);
return Ok(parent_skills);
@@ -183,7 +183,7 @@ impl RuntimeEngine {
// 4. Production: bundled resources
if let Some(resource_dir) = self.resource_dir.read().as_ref() {
let bundled_skills = resource_dir.join("_up_").join("skills").join("skills");
let bundled_skills = resource_dir.join("_up_").join("openhuman-skills").join("skills");
if bundled_skills.exists() {
log::info!(
"[runtime] Using bundled skills from resources: {:?}",