fix: repair CI installer jobs for arm64, macOS#44
Merged
ApiliumDevTeam merged 11 commits intodevfrom Mar 25, 2026
Merged
Conversation
## 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)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ubuntu-24.04-armrunner instead of x64 + qemu (fixesExec format erroron appimagetool)--no-package-lock --ignore-scripts+npm rebuild sharpto avoid oxlint peer dep conflictmacos-13tomacos-14Test plan
Build Desktop Installersworkflow after merge to main