Commit Graph
74 Commits
Author SHA1 Message Date
Steven EnamakelandGitHub 46812db44b feat(ui): hide dev-only features in production, clean up homepage (#3157) 2026-06-01 08:49:08 -07:00
a40cd7e64d test: fix flaky/stale tests blocking Rust E2E + coverage CI on main (#3147)
Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-06-01 18:41:51 +05:30
ceb769aecc feat(memory): redesign sync flow with ingest_summary, graph improvements, audit log (#3113)
Co-authored-by: Steven Enamakel <stevent95@gmail.com>
2026-05-31 21:39:02 -07:00
Steven EnamakelandGitHub 36a3f3fa65 feat: Memory subtabs + WebGL memory graph; drop Knowledge Vaults (#3040) 2026-05-30 20:21:58 -07:00
acb12adf80 feat(model-council): multi-model deliberation — parallel members + chair synthesis (#2890)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 10:59:31 -07:00
597290822a feat(intelligence): add Graph Cohesion (#2978)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 10:14:15 -07:00
6c3ad6388d feat(intelligence): add Namespace Overview (#2964)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 09:45:58 -07:00
b37bab7134 feat(vault): expose approved markdown writes (#2936)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 09:19:34 -07:00
2baf6b8ab4 feat(intelligence): add Connection Path finder (#2946)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 09:17:55 -07:00
52a72fb311 feat(intelligence): add Entity Associations (#2942)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 09:14:20 -07:00
HarinayanandGitHub a388a10c57 fix: add Open button to knowledge vault rows with Obsidian deep link fallback (#2909) (#3014) 2026-05-30 08:40:29 -07:00
dd1439e2dc feat(intelligence): add Memory Timeline (#2950)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 08:16:11 -07:00
26f418af2d feat(intelligence): add Knowledge Freshness (#2932)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 07:43:01 -07:00
Steven EnamakelandGitHub b008a0e93e feat: Agent Tasks board + Settings > Agents registry panel (#2998) 2026-05-29 18:11:19 -07:00
Steven EnamakelandGitHub 97808f6560 Revert gameplay-specific review workflows (#2962) 2026-05-29 10:59:32 -07:00
ec382ad732 feat(intelligence): add Knowledge Graph Centrality (#2931)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 19:46:58 +05:30
Steven EnamakelGitHubcyrus@tinyhumans.ai <cyrus@tinyhumans.ai>
b72877445b feat(memory_sources): add Memory Sources domain — user-configurable data connectors (#2893)
Co-authored-by: cyrus@tinyhumans.ai <cyrus@tinyhumans.ai>
2026-05-29 19:18:00 +05:30
cd6acd557d refactor(memory): route Obsidian deep link through workspace-link layer (#2492) (#2702)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
2026-05-28 20:30:57 -07:00
b1b919a92a feat(meet-agent): Flow A second brain — orchestrator + tools + pre-roll + cache + barge-in
Co-authored-by: M3gA-Mind <megamind@mahadao.com>
2026-05-29 07:10:50 +05:30
0019789fb0 feat(gameplay): AI gameplay review and highlight workflows for streamers (#1674) (#2856)
Co-authored-by: Ayush Raj Chourasia <iter.student.alpha@gmail.com>
Co-authored-by: Srinivas Vaddi <38348871+vaddisrinivas@users.noreply.github.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 05:01:12 +05:30
f407065635 feat(intelligence): add architecture diagram viewer (#2687)
Signed-off-by: sunilkumarvalmiki <g.sunilkumarvalmiki@gmail.com>
Co-authored-by: sanil-23 <sanil@vezures.xyz>
2026-05-29 04:12:32 +05:30
2d68c81f68 fix(memory): dedupe Composio sources to the latest authorization per identity (#2843)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 18:30:36 +05:30
21ab20f105 feat(memory-tree): status panel + on/off toggle (#1856 Part 1) (#2719)
Co-authored-by: Claude <noreply@anthropic.com>
2026-05-27 20:09:59 +05:30
YellowSnnowmannandGitHub fae16082d3 fix(memory-workspace): show all native Composio memory-sync sources (not Gmail-only) (#2685) 2026-05-27 15:54:10 +05:30
e05cab9bb2 fix(memory-workspace): detect Obsidian vault registration before deep link (#2638)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 02:25:21 +05:30
8ba259ce6b feat(memory): route summaries through workspace paths (#2527)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-24 21:40:53 -07:00
Steven EnamakelandGitHub b08998d5b0 i18nize remaining React UI strings (#2577) 2026-05-24 13:36:25 -07:00
JAYcodrGitHubagent:skill-master <skill-master@openclaw>Steven Enamakel
27f8d7776e Fix/channels i18n hardcoded text (#2509)
Co-authored-by: agent:skill-master <skill-master@openclaw>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-23 01:53:54 -07:00
ca31ed1c55 fix(subconscious): pause when provider unavailable
## Summary
- Skip Subconscious ticks before writing per-task activity rows when no OpenHuman session/local provider path is available.
- Add provider availability fields to `subconscious_status` and show a paused/configuration banner in Intelligence > Subconscious.
- Route the tick evaluator through `subconscious_provider` while reusing the existing memory-tree chat provider plumbing.

Closes #1374

## Testing
- [x] `cargo fmt --all --check`
- [x] `pnpm --filter openhuman-app test -- src/components/intelligence/__tests__/IntelligenceSubconsciousTab.test.tsx`
- [x] `pnpm --filter openhuman-app compile`
- [x] `pnpm i18n:check`
- [x] `git diff --check`
- [x] `cargo test -p openhuman subconscious::engine::tests --lib` attempted locally, blocked before tests by `whisper-rs-sys` missing `libclang` (`LIBCLANG_PATH` unset).

## PR Checklist
- [x] I linked the relevant issue(s) above.
- [x] I added or updated tests for the changed behavior, or explained why this is not needed.
- [x] I ran the relevant local checks, or documented why they could not be run.
- [x] I kept the change scoped to the issue.


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

* **New Features**
  * Show an amber warning when the AI provider is unavailable, display the unavailable reason, provide a quick link to AI settings, disable the "Run Now" button, and show a translated tooltip explaining the unavailable status.

* **Internationalization**
  * Added provider-unavailable title and settings label translations across multiple languages.

* **Tests**
  * Added tests covering the provider-unavailable UI, disabled Run Now behavior, and settings navigation.

<!-- 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/2314?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:57:21 -07:00
a472d6fd7d fix(memory-workspace): toast + Reveal Folder fallback for View Vault (#2281)
## Summary

- Wire a toast on every click of **View Vault** so users always see a result; surface the vault path in the toast.
- Add a **Reveal Folder** fallback action so users without Obsidian still have an OS-native escape hatch to inspect the vault.
- Add a `revealPath` helper (wraps `tauri-plugin-opener`'s `revealItemInDir`) + `opener:allow-reveal-item-in-dir` capability so the renderer can drive a Finder/Explorer reveal.
- 6 new Vitest cases cover the success-toast, reveal-fallback, error-toast, and reveal-error branches.

## Problem

`MemoryWorkspace.tsx` View Vault sent `obsidian://open?path=...` through `openUrl` and relied on the host OS to launch Obsidian. When Obsidian is not installed, the OS shell (LaunchServices on macOS, xdg-open on Linux, ShellExecute on Windows) accepts the URL handoff but launches nothing. No toast, no error, no fallback — the button looks broken to non-technical users.

## Solution

- New `revealPath(path)` helper in `app/src/utils/openUrl.ts` wraps `revealItemInDir` from `@tauri-apps/plugin-opener`. No-op outside Tauri.
- Capability `app/src-tauri/capabilities/default.json` adds `opener:allow-reveal-item-in-dir`.
- `MemoryWorkspace.tsx` replaces the silent module helper with a `handleViewVault` callback. On click:
  - Try `openUrl(obsidian://...)`.
  - On success: emit an `info` toast that names the vault path and exposes a **Reveal Folder** action.
  - On error: emit an `error` toast with the same **Reveal Folder** action.
  - **Reveal Folder** calls `revealPath(content_root_abs)`; if that fails too, surface a final error toast with the underlying message.
- New i18n keys (`workspace.openingVault*`, `workspace.openVaultFailed*`, `workspace.revealFolder`, `workspace.revealVaultFailed`) added to `en.ts` + `en-3.ts`, with English fallback into all 11 non-en `-3` chunks so `pnpm i18n:check` exits 0.

## Submission Checklist

- [x] Tests added or updated (happy path + at least one failure / edge case) per Testing Strategy — 6 new Vitest cases across `MemoryWorkspace.test.tsx` and `openUrl.test.ts`.
- [x] **Diff coverage ≥ 80%** — every new branch in `handleViewVault` and `revealPath` has a dedicated test.
- [x] Coverage matrix updated — N/A: behaviour-only fix for an existing UI affordance; no new feature row needed.
- [x] All affected feature IDs from the matrix are listed in the PR description under `## Related` — N/A: no matrix row affected.
- [x] No new external network dependencies introduced — no network calls added.
- [x] Manual smoke checklist updated if this touches release-cut surfaces — N/A: not on the release-cut surface list.
- [x] Linked issue closed via `Closes #NNN` in the `## Related` section.

## Impact

- **Runtime/platform**: desktop (mac/win/linux). No mobile/web/CLI surfaces touched.
- **Performance**: zero — a single extra toast emit + (optional, user-driven) `revealItemInDir` IPC call.
- **Security**: new capability permission is read-only filesystem-reveal scoped to the host file manager; no path escape.
- **Migration / compatibility**: backward-compatible. Existing `obsidian://` deep-link behaviour preserved for users with Obsidian installed.

## Related

- Closes: #2281
- Follow-up PR(s)/TODOs: maintainer-side translations of the new keys (English fallback shipped so `i18n:check` passes).

---

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

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

### Commit & Branch
- Branch: `fix/2281-view-vault-no-feedback`
- Commit SHA: 964c122b3b

### Validation Run
- [x] `pnpm --filter openhuman-app format:check`
- [x] `pnpm typecheck`
- [x] Focused tests: `pnpm test src/utils/openUrl.test.ts src/components/intelligence/__tests__/MemoryWorkspace.test.tsx` (23/23 pass); full `pnpm test` (2880 pass, 3 skipped).
- [x] Rust fmt/check (if changed): N/A — no Rust changes.
- [x] Tauri fmt/check (if changed): N/A — Tauri capability JSON only.

### Validation Blocked
- `command:` N/A
- `error:` N/A
- `impact:` N/A

### Behavior Changes
- Intended behavior change: Clicking **View Vault** now always emits a toast with the vault path and a **Reveal Folder** fallback, instead of silently no-op-ing when Obsidian is not installed.
- User-visible effect: visible toast + working fallback on every click.

### Parity Contract
- Legacy behavior preserved: `obsidian://` deep link still dispatched first; users with Obsidian installed see Obsidian launch as before.
- Guard/fallback/dispatch parity checks: `openUrl` reject path still propagates non-http scheme errors; new error branch in `handleViewVault` surfaces those as user-facing toasts.

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


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

## Summary by CodeRabbit

* **New Features**
  * Users can now open Obsidian vaults directly from the MemoryWorkspace with improved error handling.
  * Added "Reveal Folder" action to vault operations for quick file system access when issues occur.
  * Enhanced feedback with toast notifications for success and failure states.

* **Documentation**
  * Added translations for vault-opening workflows in 12+ languages.

<!-- 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/2289?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: obchain <riteshnikhoriya94@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-20 15:16:08 -07:00
df01f083e1 Fix/vault sync timeout 2230
## Summary

- `vault_sync` RPC now returns immediately with `{ status: "started" }` instead of blocking the HTTP connection for up to 50+ seconds
- New `vault_sync_status` RPC endpoint lets the frontend poll for live progress (scanned / ingested / total)
- File ingestion is parallelised with `buffer_unordered(4)` — reduces sync time ~4× for large directories (100 files: ~50s → ~12s)
- `VaultPanel` shows a live `Syncing… N/M` counter in the Sync button during background sync
- Duplicate concurrent syncs on the same vault are rejected with a clear error

## Problem

On macOS Apple Silicon, syncing `~/Documents` (100+ files) reliably timed out with:

```
Core RPC openhuman.vault_sync timed out after 30000ms
```

Root causes:
1. `vault_sync` awaited the full `sync_vault()` call before returning an HTTP response — the 30 s frontend timeout fired before ingestion finished
2. Files were ingested sequentially; each cloud embedding API call adds ~500 ms → 100 files = 50 s minimum

## Solution

**Non-blocking dispatch** (ops.rs): `vault_sync` registers the sync in a global `parking_lot::RwLock` state map, spawns a `tokio::spawn` background task, and returns `{ status: "started" }` in < 1 ms. The background task writes live progress counters into the state map after each batch.

**Progress polling** (ops.rs + `schemas.rs`): New `openhuman.vault_sync_status` controller reads the in-memory state and returns a `VaultSyncState` struct (status, scanned, ingested, total, duration_ms, errors).

**Concurrent ingestion** (`sync.rs`): Two-phase approach — sequential directory walk with mtime fast-path dedup, then `futures::stream::iter().buffer_unordered(4)` for the embedding API calls. Concurrency of 4 was chosen to stay within typical API rate limits while giving ~4× throughput improvement.

**Polling UI** (VaultPanel.tsx): Replaces the old `await openhumanVaultSync()` blocking call with a start → poll loop. Timer refs are cleaned up on component unmount. Button label shows `Syncing… N/M` once total is known.

**Tradeoff**: Background state lives in process memory (not persisted). A crash during sync results in an `Idle` status on next query — acceptable since the user can simply retry.

## Submission Checklist

- [x] Tests added or updated (happy path + at least one failure / edge case) — `VaultPanel.test.tsx` updated for two-step async flow (start + poll-to-completion, failed-files branch, error-on-start branch); vault.test.ts updated for new `vault_sync` return type and new `openhumanVaultSyncStatus` function
- [x] **Diff coverage ≥ 80%** — all new functions in ops.rs, `state.rs`, `schemas.rs`, `vault.ts`, VaultPanel.tsx are covered by updated tests; `pnpm test:coverage` passes locally
- [x] Coverage matrix updated — N/A: vault sync is an existing feature row; behaviour change only (timeout fix), no new feature row needed
- [x] All affected feature IDs from the matrix are listed under `## Related`
- [x] No new external network dependencies introduced — mock backend used for all tests
- [x] Manual smoke checklist updated — N/A: vault sync already has a smoke entry; no new surface added
- [x] Linked issue closed via `Closes #2230`

## Impact

- **Desktop only** (macOS / Linux / Windows) — Tauri + Rust core change
- **Performance**: sync of 100-file directories drops from timeout (>30 s) to ~12 s background
- **Security**: no new surfaces; background task uses existing `Config` clone, no additional file permissions
- **Migration**: no schema or API changes; `vault_sync_status` is additive, old clients that ignore it still work
- **Compatibility**: `vault_sync` response shape changes from `VaultSyncReport` → `{ status, vault_id }` — frontend updated in the same PR

## Related

- Closes #2230
- Follow-up: consider persisting `VaultSyncState` to SQLite so a crash-restart can surface the last-known status

---

## AI Authored PR Metadata

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

### Commit & Branch
- Branch: `fix/vault-sync-timeout-2230`
- Commit SHA: `47a21be2457dc348b5be37718a62662ae4a7ee2d`

### Validation Run
- [x] `pnpm --filter openhuman-app format:check` — passed (Prettier + cargo fmt auto-fixes applied in `chore: apply auto-fixes` commit)
- [x] `pnpm typecheck` — passed (0 errors)
- [x] Focused tests: `pnpm debug unit VaultPanel`  · `pnpm debug unit tauriCommands/vault` 
- [x] Rust fmt/check: `GGML_NATIVE=OFF cargo check --manifest-path Cargo.toml` — passed (0 errors, 4 pre-existing warnings in unrelated modules)
- [x] Tauri fmt/check: **BLOCKED** (see below)

### Validation Blocked
- `command:` `pnpm rust:check` (Tauri shell `cargo check --manifest-path app/src-tauri/Cargo.toml`)
- `error:` `cef-dll-sys` build script fails — CMake cannot find Ninja (`CMAKE_MAKE_PROGRAM` not set). Pre-existing environment issue; not caused by this PR (no Tauri shell files changed).
- `impact:` Low — this PR touches only vault (core crate) and src (React); zero changes to src-tauri

### Behavior Changes
- Intended behavior change: `vault_sync` RPC returns immediately instead of blocking; callers must poll `vault_sync_status` to detect completion
- User-visible effect: Sync button shows live `Syncing… N/M` progress and no longer freezes / times out on large directories

### Parity Contract
- Legacy behavior preserved: sync logic (walk, hash dedup, doc_ingest, ledger writes, deletions) is unchanged in semantics; only execution model changed (background task + concurrency)
- Guard/fallback/dispatch parity: `vault_sync_status` registered in all.rs alongside existing vault controllers; no dispatch branches added to `cli.rs` or `jsonrpc.rs`

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

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

* **New Features**
  * Vault sync runs in background with live progress (ingested/total), duration, skipped/failed counts, and richer error details; sync button shows progress and final toasts report results.
  * Added a live status endpoint so the UI can poll ongoing syncs.

* **Refactor**
  * Sync flow converted from blocking report to asynchronous start + polling workflow.

* **Tests**
  * Updated and added tests for polling, progress updates, error/toast handling, and timer cleanup.

<!-- 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/2243?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: MootSeeker <mootseeker98@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-20 14:46:20 -07:00
74c91ba4d2 fix(core): port-bind fallback + retry when 7788 is busy (#1613) (#2116)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-19 21:02:08 -07:00
Mega MindandGitHub a719d781d1 feat(ai-panel): add chat workload and cloud model picker with slug-based lookup fix (#2152) 2026-05-18 15:04:57 -07:00
CodeGhost21andGitHub 1d3563bf49 test(intelligence): backfill memory-tab unit tests (#1870) (#2064) 2026-05-18 15:59:40 +05:30
Steven EnamakelandGitHub 0ad72dccfa feat(theme): dark mode + UI primitives standardization (#2046) 2026-05-17 23:01:27 -07:00
Steven EnamakelandGitHub f65ef6a431 feat(vault): folder-of-files ingestion into memory (NotebookLM-style) (#1994) 2026-05-17 15:17:41 -07:00
Steven EnamakelandGitHub 476d7e3992 i18n: full UI coverage across 10 languages (#1986) 2026-05-17 14:19:59 -07:00
f90a337bc0 Add agent task orchestration (#1768)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 21:36:08 -07:00
366eac1528 test: cover memory overview widgets (#1879)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 20:26:52 -07:00
Aqil AzizandGitHub 7874ad6b5f test: cover memory detail rendering (#1878) 2026-05-15 19:33:46 -07:00
Aqil AzizandGitHub 168ce33263 test: cover intelligence tab states (#1876) 2026-05-15 19:33:37 -07:00
Aqil AzizandGitHub b7d8d4bec9 test: cover memory presentation components (#1875) 2026-05-15 19:33:16 -07:00
02cf2cee3e feat: add Chinese (简体中文) i18n support (#1518)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 16:11:40 -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 467f9f7aa0 🧹 Handle dontShowAgain preference in ConfirmationModal (#1410) 2026-05-09 14:33:51 -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 836a6d852c feat(meet): join Google Meet calls with mascot virtual camera (#1350) 2026-05-07 17:56:05 -07:00
34188130a0 feat(subconscious): memory-context-aware reflection threads + dedupe gates (#623) (#1344)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:29:13 -07:00
Mega MindandGitHub 37cd17889c fix(channels): fix WhatsApp structured ingest pipeline + Memory page sync status (#1326) 2026-05-07 12:25:26 -07:00
Steven EnamakelandGitHub 09f8f12f65 feat(memory): graph view, raw archive, Gemma defaults, pipeline polish (#1317) 2026-05-06 22:58:56 -07:00