Commit Graph
265 Commits
Author SHA1 Message Date
ff918f030d fix(release): bundle sharun AppImage loader
## Summary

- Bundles the glibc dynamic linker that `sharun` needs inside the Linux AppImage when the post-build AppImage cleanup runs.
- Repackages and re-signs AppImage artifacts when the only mutation is adding the missing loader, not just when graphics libraries were stripped.
- Keeps the existing Mesa/libdrm/libva stripping behavior intact and adds a release smoke item for the Ubuntu 24.04 `Interpreter not found!` regression.

## Problem

- `OpenHuman_0.54.0_amd64.AppImage` can exit immediately on Ubuntu 24.04 with `Interpreter not found!` because the AppImage contains a `sharun` launcher but no `lib/ld-linux-x86-64.so.2`.
- The existing post-processing script only repacked when graphics libraries were removed, so it had no guard for a missing `sharun` interpreter.

## Solution

- Detect `sharun`-style launchers by checking the extracted AppDir launcher binaries for the `Interpreter not found!` marker.
- Resolve the expected loader from the build target architecture and copy it into `squashfs-root/lib/` when missing.
- Fail the post-processing step if the AppImage uses `sharun` but the build host cannot provide the required loader.
- Track all modified AppImages, whether modified by stripping graphics libs or by adding the loader, so updater tarballs and signatures stay in sync.

## Submission Checklist

- [x] Tests added or updated (happy path + at least one failure / edge case) per [Testing Strategy](../gitbooks/developing/testing-strategy.md#failure-path-requirement) — release smoke checklist updated; local function smoke covers loader injection path.
- [x] **Diff coverage >= 80%** — N/A: shell release packaging script and docs are not covered by Vitest/cargo diff coverage.
- [x] Coverage matrix updated — N/A: release packaging behavior, not a product feature row.
- [x] All affected feature IDs from the matrix are listed in the PR description under `## Related` — N/A: no feature matrix row.
- [x] No new external network dependencies introduced (mock backend used per [Testing Strategy](../gitbooks/developing/testing-strategy.md#mock-policy))
- [x] Manual smoke checklist updated if this touches release-cut surfaces ([`docs/RELEASE-MANUAL-SMOKE.md`](../docs/RELEASE-MANUAL-SMOKE.md))
- [x] Linked issue closed via `Closes #NNN` in the `## Related` section

## Impact

- Linux AppImage release artifacts should launch on clean Ubuntu 24.04 hosts without requiring users to extract the AppImage and manually copy `ld-linux-x86-64.so.2`.
- Packaging fails earlier if a future build cannot locate the required loader, preventing a known-broken AppImage from shipping.

## Related

- Closes #2297
- Follow-up PR(s)/TODOs: N/A

---

## AI Authored PR Metadata (required for Codex/Linear PRs)

### Linear Issue
- Key: N/A
- URL: N/A

### Commit & Branch
- Branch: `codex/2297-appimage-sharun-loader`
- Commit SHA: `4260df24f5355a63df02e748e276586ebed0c53a`

### Validation Run
- [x] `pnpm --filter openhuman-app format:check` — N/A: no frontend files changed.
- [x] `pnpm typecheck` — N/A: no TypeScript files changed.
- [x] Focused tests: Git Bash smoke test for `ensure_sharun_interpreter` copies `ld-linux-x86-64.so.2` into a synthetic sharun AppDir.
- [x] Rust fmt/check (if changed): N/A: no Rust files changed.
- [x] Tauri fmt/check (if changed): N/A: no Tauri Rust files changed.
- [x] Shell syntax/check: `C:\Program Files\Git\bin\bash.exe -n scripts/release/strip-appimage-graphics-libs.sh`; `git diff --check`.

### Validation Blocked
- `command:` Full AppImage rebuild and launch on Ubuntu 24.04.
- `error:` No produced Linux AppImage artifact is available in this local Windows workspace.
- `impact:` CI release packaging will exercise the changed script; manual release smoke checklist now covers the Ubuntu 24.04 launch regression.

### Behavior Changes
- Intended behavior change: AppImage post-processing now bundles the missing `sharun` dynamic linker when needed.
- User-visible effect: Linux users should no longer hit `Interpreter not found!` on affected AppImages.

### Parity Contract
- Legacy behavior preserved: existing graphics-library stripping, re-signing, and updater tarball rebuild behavior remain intact.
- Guard/fallback/dispatch parity checks: AppImages unchanged by stripping or loader injection are still left untouched; missing host loader now fails packaging instead of shipping a broken artifact.

### Duplicate / Superseded PR Handling
- Duplicate PR(s): N/A
- Canonical PR: this PR
- Resolution (closed/superseded/updated): N/A


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **Bug Fixes**
  * AppImages now remove incompatible host graphics libraries and auto-include a missing bundled dynamic loader when needed, preventing "Interpreter not found" failures on clean Ubuntu 24.04 hosts.

* **Chores**
  * Added a smoke-test checklist item to validate AppImage launches on Ubuntu 24.04.
  * Release tooling now only repacks and re-signs AppImages that were actually modified.

<!-- review_stack_entry_start -->

[![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/tinyhumansai/openhuman/pull/2307?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: aqilaziz <gonzes7@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-20 16:53:09 -07:00
f82a302d38 feat(mcp): add SearXNG search tool (#1988)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-19 21:10:15 -07:00
Aqil AzizandGitHub b0fe42b0af fix(composio): request Gmail read scope for triggers (#2191) 2026-05-19 20:02:23 -07:00
Steven EnamakelandGitHub ddc33a58eb fix(workflow): auto-assign issues and prs (#2271) 2026-05-19 19:56:44 -07:00
rmgyandGitHub cce5d50dc9 Fix Windows development setup: correct line endings and Rust PATH (#2066) 2026-05-19 16:17:31 -07:00
ba38e72419 fix(appimage): unbreak Linux launch on modern GPUs / glibc (#2052)
Co-authored-by: mechmyday <mechmyday@fogninja.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-19 13:34:35 -07:00
fd657e94c6 fix(docker): chown workspace volume before dropping privileges so core can start (#2065) (#2235)
Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-05-20 02:04:19 +05:30
Steven EnamakelandGitHub d5cef57cfd feat(i18n): translate ~3,900 strings across 9 locales + add Italian (#2070) 2026-05-18 03:32:14 -07:00
Zavian WangandGitHub 8896aa14d6 feat(core): add global tool registry (#2003) 2026-05-17 18:21:55 -07:00
paulpanwangandGitHub 8bec23a44c fix: handle missing installer channel value (#2015) 2026-05-17 18:11:04 -07:00
Steven EnamakelandGitHub b43bba7dac test: expand and stabilize settings e2e coverage (#2024) 2026-05-17 15:15:21 -07:00
Steven EnamakelandGitHub 95f1f5f063 Refactor inference around external Ollama routing (#1975) 2026-05-17 02:37:42 -07:00
chiehwangsandGitHub f0690aa981 fix: Fix installer retries for HTTP/2 download failures (#1910) 2026-05-16 20:17:52 -07:00
Steven EnamakelandGitHub 0354a6c9e7 feat(audio): add podcast generation and delivery toolkit (#1970) 2026-05-16 16:08:56 -07:00
Steven EnamakelandGitHub 32d09e7877 test(mock-api): add fuzzy socket-aware harness (#1963) 2026-05-16 14:33:21 -07:00
Steven EnamakelandGitHub 30a4a0706f Harden Rust custom provider routing and mock coverage (#1958) 2026-05-16 13:18:10 -07:00
Steven EnamakelandGitHub dbbd33ea2c test(e2e): deep chat-harness coverage + streaming mock LLM + rust-e2e Linux lane (#1892) 2026-05-15 23:28:56 -07:00
f90a337bc0 Add agent task orchestration (#1768)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 21:36:08 -07:00
32485b6b8b fix: quote APT_SIGNING_KEY_ID in gpg export (#1738)
Co-authored-by: Test User <test@example.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 19:59:50 -07:00
98b579e6c7 feat: add deep-work automation system (#1644)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
2026-05-15 19:55:46 -07:00
ibstellarandGitHub 3dfd2b28be chore(scripts): sweep remaining yarn references to pnpm (post-#886 migration) (#1872) 2026-05-15 16:10:29 -07:00
ibstellarandGitHub e538152d12 fix(scripts): codesign setup pops keychain dialog on every build + dr… (#1786) 2026-05-15 13:52:55 -07:00
5411f19e47 Add LM Studio as a local model provider (#1750)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 11:54:17 -07:00
268400843b test: guard RPC alias catalog freshness (#1705)
Co-authored-by: honor2030 <19909783+honor2030@users.noreply.github.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 09:09:17 -07:00
Steven EnamakelandGitHub 2702e25d52 chore: gitignore tmp/ (#1780) 2026-05-14 21:33:02 -07:00
Zavian WangandGitHub 915a41da18 feat(mcp): add stdio memory server (#1760) 2026-05-14 21:21:23 -07:00
CodeGhost21andGitHub b2d45a9e85 feat(agent-workflows): Cursor Cloud Agents parallel workflow (#1480) (#1759) 2026-05-14 21:19:15 -07:00
Steven EnamakelGitHubRafael Figuereodependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
4d5e0d5aad fix(orchestrator): prefer live integrations over memory_tree for inbox/doc queries (#1731)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Rafael Figuereo <rafaelfiguereod@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-05-14 05:37:00 -07:00
Steven EnamakelandGitHub 1c58d478c5 test(harness): smart mock LLM provider + fake Composio backend + 21 new tests (#1729) 2026-05-14 05:11:06 -07:00
Steven EnamakelandGitHub 6b2a90c788 chore(review): inline review/fix prompts and add ws-reset workflow helper (#1695) 2026-05-14 04:19:24 -07:00
Cyrus GrayandGitHub c5ec811f6d feat(scripts): add 8-check pre-merge gate to merge.sh (#1665) 2026-05-13 09:49:54 -07:00
256f004c36 feat(local_ai): unify memory embeddings — cloud Voyage default + live local toggle + dev infra (#1640)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 09:16:59 -07:00
Steven EnamakelandGitHub 9694dbee3c refactor(mock-api): domain split + OAuth + Composio + e2e workflow + macOS mega-spec scaffold (#1532) 2026-05-13 08:43:03 -07:00
70f1275ed3 fix(release): publish linux-x86_64 AppImage asset and validate latest.json (#1582)
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 20:02:47 -07:00
7ce319362b fix(windows): wire CEF keyboard input routing on cold launch (#1528)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 17:07:00 +05:30
Steven EnamakelandGitHub 887e483790 Send client app version headers on backend requests (#1456) 2026-05-09 23:46:01 -07:00
Steven EnamakelandGitHub 310ebedfd1 Expand CONTRIBUTING setup guide and Codex workflow helpers (#1455) 2026-05-09 20:20:39 -07:00
Steven EnamakelandGitHub 2928476e71 fix(sentry): resolve verifier path correctly on Windows (#1452) 2026-05-09 19:53:44 -07:00
Steven EnamakelandGitHub 67c06ea9bd fix(sentry): accept _sentryDebugIds runtime map as proof of source-map upload (#1448) 2026-05-09 16:46:06 -07:00
Steven EnamakelandGitHub 87b4903ac8 docs(core): simplify remote core RPC token setup (#1438) (#1444) 2026-05-09 16:44:49 -07:00
Steven EnamakelandGitHub 29fabb234a fix(rabbit): handle CR action acks + edited rate-limit comments; schedule via GH Action (#1425) 2026-05-09 14:18:13 -07:00
Steven EnamakelandGitHub c75aa86279 feat(scripts): add pnpm rabbit to retrigger CodeRabbit after rate limits (#1421) 2026-05-09 13:53:23 -07:00
Steven EnamakelandGitHub 3f86bcd69d fix(sentry): restore OS context + guard source-map upload (#1403) (#1405) 2026-05-09 13:06:37 -07:00
Steven EnamakelandGitHub 84a1f68b91 feat(mascot): switch runtime assets from APNG to animated WebP (#1349) 2026-05-07 19:58:50 -07:00
Steven EnamakelandGitHub 9a158cba19 feat(memory_tree): scale summariser for cloud — bigger batches, parallel workers, prose output (#1348) 2026-05-07 16:53:57 -07:00
ebd8c1685c SYM-206: fix Vitest mock API port collisions (#1271)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-05-07 12:03:53 -07:00
333f60694e SYM-208: add PR checklist local preflight (#1270)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-05-07 10:52:41 -07:00
sanil-23andGitHub 0c546fcffe feat(dev): Windows dev environment for pnpm dev:app:win (#1302) 2026-05-06 13:10:45 -07:00
073c46d3c6 fix(installer): harden release asset resolution (#1258)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-05-05 16:38:22 -07:00
oxoxDevandGitHub 91555caba3 feat(cef-build): proprietary-codec build infra for Gmeet dynamic backgrounds (#1223) (#1251) 2026-05-05 15:34:49 -07:00