Skip to content

fix: repair CI installer jobs for arm64, macOS#44

Merged
ApiliumDevTeam merged 11 commits intodevfrom
fix/ci-installers
Mar 25, 2026
Merged

fix: repair CI installer jobs for arm64, macOS#44
ApiliumDevTeam merged 11 commits intodevfrom
fix/ci-installers

Conversation

@ApiliumDevTeam
Copy link
Copy Markdown
Collaborator

Summary

  • linux-arm64: Use native ubuntu-24.04-arm runner instead of x64 + qemu (fixes Exec format error on appimagetool)
  • macos-arm64/x64: Install sharp with --no-package-lock --ignore-scripts + npm rebuild sharp to avoid oxlint peer dep conflict
  • macos-x64: Change runner from deprecated macos-13 to macos-14
  • Add icon generation step for linux-arm64 (was missing)

Test plan

  • Re-run Build Desktop Installers workflow after merge to main

ApiliumDevTeam and others added 11 commits March 12, 2026 23:23
## Summary
- Bump `node:25-bookworm` Docker image digest in the `docker-images`
group
- `c4bfed3` → `2e45682`

## Test plan
- [ ] Verify Docker build passes with updated base image
## Summary
- Prevent command injection in setup-claude (host/port validation,
execFileSync)
- CORS default-deny when allowedOrigins is empty
- Cap SSE sessions at 50 to prevent connection exhaustion
- Require Content-Type application/json on POST endpoints
- Timing-safe bearer token comparison in HTTP transport
- Graceful shutdown with cached promise, skipSignalHandlers for sidecar
- Wrap all fetch .json() calls in try/catch for non-JSON responses
- Validate tags with Array.isArray, cap limit/k to prevent resource
exhaustion
- Word-boundary regex in governance to avoid substring false positives
- Host validation in config parser for all code paths
- 20 hardening tests covering all fixes

## Test plan
- [x] `npx vitest run extensions/mcp-server/` — 112 tests pass (9 files)
- [x] `npx vitest run extensions/memory-semantic/` — 185 tests pass (10
files)
- [x] `pnpm build` — compiles without errors
- [x] Manual SSE shutdown test — server exits cleanly
## Summary
- Bump Mayros version from 0.1.15 to 0.1.16 across 55 package.json files
- Bump REQUIRED_CORTEX_VERSION from 0.4.3 to 0.5.0

## Test plan
- [x] No code changes, version bump only
## Summary

- **Semantic DAG**: full audit trail, time-travel, and verifiable
history for the knowledge graph
- **10 MCP tools + 2 resources + dag-audit prompt** — enabled by
default, opt-out via config
- **10 CLI subcommands** (`mayros dag`) with interactive prune
confirmation
- **12 CortexClient DAG methods** with typed DTOs
- **Production hardening**: authToken consistency across all MCP tools,
30s request timeouts, client lifecycle cleanup in all CLI modules
- **Default port fix**: 8080 → 19090 across 12 CLI modules
- **postinstall binary rename**: handles platform-suffixed binaries from
GitHub Releases
- **Requires AIngle Cortex >= 0.6.1**

## Test plan

- [x] 149/149 MCP server tests passing
- [x] 11855 total tests, 0 failures
- [x] All 10 DAG CLI commands verified against live Cortex v0.6.1
- [x] Verified postinstall binary rename with real GitHub Release
tarball
- [x] Prune confirmation flow verified (interactive + --yes)
## Summary

- **ZK Proofs**: Migrate from Ed25519 to Ristretto255 to match Cortex's
curve25519-dalek format. Align Schnorr protocol with
`aingle_zk::verify_knowledge_proof`. Add length-prefixed encoding to
prevent concatenation collisions
- **Security**: Double external content marker entropy (64 → 128 bits),
replace `Math.random()` with CSPRNG for retry jitter, add timing
side-channel mitigation in Schnorr proof generation
- **Dependencies**: Update undici (7.22→7.24.2) and file-type
(21.3.1→21.3.2) resolving 13 GitHub security advisories (WebSocket
memory exhaustion, CRLF injection, HTTP smuggling, ZIP decompression
bomb)
- **Resilience**: Cap retry delay at 60s, move `clearTimeout` to
`finally` block, add upper bounds to resilience config (300s/20 max),
validate config with `clampPositive()`
- **Bash sandbox**: Detect `<(...)` and `>(...)` process substitution
outside quotes
- **DAG**: Switch `dagVerify` from GET query string to POST body,
extract `fetchDag()` helper to reduce duplication across 10 MCP tools
- **Memory health**: Extract conflict detection and digest tools to
dedicated module, scope conflict scanner to namespace for
cross-namespace isolation
- **Error handling**: Wrap `engine.publish()` and
`proofClient.requestZkProof()` in try/catch to prevent MCP tool handler
crashes when Cortex is unavailable
- **Docs**: Update MCP tools table to 21 tools, add Gemini CLI and
GitHub Copilot CLI roadmap
- **Cortex**: Require AIngle Cortex >= 0.6.2

## Test plan

- [ ] 11,921 tests pass (`npx vitest run`)
- [ ] ZK E2E: JS-generated Schnorr proof verified `valid: true` by live
Cortex
- [ ] Cortex health check passes on port 19090
- [ ] MCP server connects via stdio (`claude mcp list` shows `mayros:
Connected`)
- [ ] WhatsApp channel connects and responds to inbound messages
- [ ] No security advisories remaining on GitHub
Re-export CortexError from cortex-resolution.ts so CLI modules
import it from within src/ instead of crossing into extensions/.
Widen plugin-sdk tsconfig rootDir from src to project root to
allow transitive extension imports in declaration generation.
## Release v0.3.0

Kaneru transforms Mayros into a full AI venture management platform
where agents learn, coordinate, and improve over time.

### What's new

**Kaneru Venture System**
- Ventures, missions (atomic claims), projects, directives, chain of
command
- Pulse scheduler with coalescing, fuel controller (event-sourced costs)
- Mission comments, cost analytics (time-series, provider breakdown,
forecast)
- 24 MCP tools, 18 CLI subcommand groups under `mayros kaneru`

**The Memory Moat**
- Agent learning profiles (EMA expertise tracking per domain/taskType)
- Cross-agent knowledge transfer via namespace fusion
- Decision history with full reasoning (queryable, explainable)
- Semantic routing: Q-learning blended with expertise (60% Q + 40%
expertise)

**Beyond the Competition**
- Kaneru Dojo: 3 venture templates + Skill Hub marketplace integration
- Channel-native operations (notifications via
WhatsApp/Telegram/Discord/Slack)
- Agent terminal service (remote command execution with audit trail)
- Distributed ventures (P2P DAG sync with mDNS auto-discovery)

**Portal UI**
- Setup Wizard: 4-step guided venture creation
- Canvas tab: A2UI venture-aware surfaces (overview, missions, chain,
fuel)
- Command Bar: Ctrl+/ Spotlight overlay with venture context + voice
input
- Chat compose: redesigned with inline mic button (Web Speech API)
- Chain visualizer, squad builder, mission detail panel

**Infrastructure**
- Cortex v0.6.3 required (installer handles Windows binary rename
correctly)
- Version-aware postinstall (checks version before skipping)
- Uninstall: `--cortex` option with explicit data loss warning
- Cross-platform: 17 Windows path failures fixed (0 test failures)
- Security: RDF triple sanitization, hub template validation
- Shared modules: rdf-utils.ts, task-classification.ts (deduplicated)

### Stats

- 108 files changed, +25,124 lines
- 12,484 tests pass, 0 failures
- 45+ MCP tools total
- Cortex v0.6.3 required
- Platforms: macOS, Linux, Windows

### Test plan

- [x] pnpm build — zero errors
- [x] npx vitest run — 12,484 pass, 0 fail
- [x] Cortex v0.6.3 healthy
- [x] Full Kaneru lifecycle (venture/mission/fuel/learn/decisions)
- [x] Portal (Ventures/Kaneru/Canvas tabs, Setup Wizard, Command Bar)
- [x] Cross-platform (Windows 0 failures)
- [x] Uninstall dry-run shows data loss warning
Bumps the docker-images group with 2 updates: node and debian.


Updates `node` from `2e45682` to `f0dfc48`

Updates `debian` from `74d56e3` to `f065376`

---
updated-dependencies:
- dependency-name: node
  dependency-version: 25-bookworm
  dependency-type: direct:production
  dependency-group: docker-images
- dependency-name: debian
  dependency-version: bookworm-slim
  dependency-type: direct:production
  dependency-group: docker-images
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the docker-images group with 2 updates: node and debian.

Updates `node` from `2e45682` to `f0dfc48`

Updates `debian` from `74d56e3` to `f065376`


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>
## Summary

Production release of v0.3.1 from `dev` to `main`.

- **Desktop installers**: Windows (.exe), macOS (.dmg arm64+x64), Linux
(.AppImage + .deb) — zero prerequisites, bundled Node.js + Cortex
- **Mamoru security layer**: Kernel-level sandbox, inference proxy,
egress gate, secrets vault, API keys, 50+ local model catalog with GPU
detection
- **Onboarding wizard**: GPU-aware model recommendations for
NVIDIA/AMD/Intel/Apple Silicon/Raspberry Pi
- **Mayrito rebrand**: New 3D mascot across 88 platform icons (iOS,
Android, macOS, watchOS, Chrome, VSCode, JetBrains, installer, favicon,
README)
- **CI/CD**: GitHub Actions builds 7 installer artifacts on tag push
- **Docker images**: Bumped node + debian base images (Dependabot)

## After merge

1. `git tag v0.3.1 && git push --tags` — triggers installer CI + GitHub
Release
2. `npm publish` — publish to npm

## Test plan

- [x] Windows installer tested — correct icons, shortcuts, PATH
- [x] Portal favicon + dashboard sidebar with Mayrito
- [x] Onboarding wizard with GPU detection
- [x] 99 Mamoru tests passing
- [ ] macOS/Linux installers (CI on tag push)
@ApiliumDevTeam ApiliumDevTeam merged commit cc1d080 into dev Mar 25, 2026
2 of 3 checks passed
@ApiliumDevTeam ApiliumDevTeam deleted the fix/ci-installers branch March 25, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant