Skip to content

Sync from fork to update PR #840#852

Closed
VectorJet wants to merge 32 commits intotinyhumansai:mainfrom
VectorJet:sync-pr-840
Closed

Sync from fork to update PR #840#852
VectorJet wants to merge 32 commits intotinyhumansai:mainfrom
VectorJet:sync-pr-840

Conversation

@VectorJet
Copy link
Copy Markdown
Contributor

@VectorJet VectorJet commented Apr 23, 2026

Sync branch with latest commits from original PR #840 (linux-arm-build)

Summary by CodeRabbit

  • Documentation

    • Added ARM Linux (aarch64) build instructions and Debian packaging notes.
  • Chores

    • Migrated CI and project scripts from Yarn to pnpm; added pnpm workspace and package manager declaration.
  • Bug Fixes

    • Tray initialization failures now log as warnings (non-fatal).
  • New Features

    • UI copy updated: “Integrations” → “Connections”; tab label and several screens updated.
    • New Connection badge and compact “Next steps” block on Home.
    • The standalone Agents page/route was removed.

@VectorJet VectorJet requested a review from a team April 23, 2026 20:12
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 23, 2026

Warning

Rate limit exceeded

@VectorJet has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 28 minutes and 7 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 28 minutes and 7 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f3fce157-cbdf-40d9-a813-84774f96d091

📥 Commits

Reviewing files that changed from the base of the PR and between 0408918 and d1994d3.

⛔ Files ignored due to path filters (2)
  • app/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (23)
  • .github/workflows/build-windows.yml
  • .github/workflows/build.yml
  • .github/workflows/e2e-agent-review.yml
  • .github/workflows/release.yml
  • .github/workflows/test.yml
  • .github/workflows/typecheck.yml
  • .husky/pre-push
  • app/package.json
  • app/scripts/e2e-build.sh
  • app/scripts/e2e-run-spec.sh
  • app/src-tauri/src/lib.rs
  • app/src-tauri/tauri.conf.json
  • app/src/components/settings/panels/AIPanel.tsx
  • app/src/pages/Conversations.tsx
  • app/test/e2e/helpers/artifacts.ts
  • app/test/e2e/specs/agent-review.spec.ts
  • app/test/wdio.conf.ts
  • docs/BUILDING.md
  • package.json
  • pnpm-workspace.yaml
  • scripts/review/README.md
  • scripts/review/cli.sh
  • src/openhuman/webhooks/bus.rs
📝 Walkthrough

Walkthrough

Large migration from Yarn to pnpm across CI and scripts, plus extensive backend and frontend feature additions: Phase‑4 memory-tree retrieval/embedding, core→frontend CoreNotification bridge, provider_surfaces/respond-queue, webhook router/agent triggers, memory namespace API changes, many tests, new review tooling, and assorted UI copy and routing updates.

Changes

Cohort / File(s) Summary
CI Workflows
\.github/workflows/... (build-windows.yml, build.yml, e2e-agent-review.yml, release.yml, test.yml, typecheck.yml)
Switch Yarn → pnpm in installs/builds; add global pnpm install steps; change actions/setup-node cache mode to pnpm; update install commands to pnpm install --no-frozen-lockfile; increase Node heap for Tauri builds; replace workspace yarn calls with pnpm --filter where applicable.
Monorepo manifests & scripts
package.json, app/package.json, pnpm-workspace.yaml
Add packageManager: "pnpm@10.10.0", introduce pnpm-workspace.yaml, convert many npm scripts from yarn to pnpm/pnpm --filter, remove mock:api, add review script.
Local dev hooks & scripts
.husky/pre-push, app/scripts/*.sh, scripts/review/*, scripts/review/README.md
Replace yarn invocations with pnpm in Husky; update tauri/e2e scripts to use pnpm exec; add comprehensive PR review toolchain (cli.sh, lib.sh, sync.sh, review.sh, fix.sh, merge.sh) and README.
Frontend: routing, UI, components, tests
app/src/... (AppRoutes.tsx, BottomTabBar.tsx, ConnectionBadge.tsx, Skills.tsx, Home.tsx, Agents.tsx (deleted), tests, e2e config)
Remove /agents route and Agents page; rename user-facing "Integrations/Channel Integrations" → "Connections/Channel Connections"; add ConnectionBadge component and optional badge prop for skill cards; change outgoing message id generation to crypto.randomUUID(); add Home "Next steps" block; update WDIO spec resolution.
Native notifications & socket bridge
src/core/socketio.rs, app/src/lib/nativeNotifications/*, src/openhuman/notifications/*
Add core_notification bridge on socket layer; new CoreNotification types and broadcast bus; backend subscriber that converts DomainEvents to CoreNotificationEvent; frontend service subscribes to core_notification and test hook exported.
Webhooks and socket router
src/openhuman/webhooks/*, src/openhuman/socket/manager.rs
Introduce agent-backed tunnel registrations (agent_id), router accessor on SocketManager, router-backed webhook ops (register_agent, trigger_agent), and runtime webhook request routing (echo/agent paths with async triage and 60s timeouts).
Memory subsystem (Phase 4)
src/openhuman/memory/..., multiple files under memory/tree/retrieval/*, memory/traits.rs, memory/store/*, memory/score/embed/*
Major redesign: add namespace-aware Memory trait and APIs (RecallOpts, NamespaceSummary), unify namespaced store/get/list/forget, add embedding layer (Inert/Ollama, EMBEDDING_DIM=768), persist embeddings in DB, add retrieval layer (query_source/global/topic, drill_down, fetch_leaves, search_entities), add embedding factory/pack/unpack, add migrations and init rehoming, extensive tests and re-exports.
Agent harness & citations
src/openhuman/agent/*, src/openhuman/agent/memory_loader.rs
Add MemoryCitation type and collect_recall_citations helper; Agent gains last_turn_citations with accessor to take them; turn flow collects recall citations and stores them for web delivery.
Channels & presentation
src/openhuman/channels/*, src/openhuman/channels/providers/presentation.rs, src/openhuman/channels/providers/web.rs
deliver_response now accepts citations and conditionally attaches them to chat_done/chat_segment events; web chat paths return citations collected from agent per turn; emitted WebChannelEvent gains optional citations field.
Cron & proactive delivery
src/openhuman/cron/*, src/openhuman/cron/scheduler.rs
Cron emits DomainEvent::CronJobTriggered/CronJobCompleted (added job_name/output fields) and adds deliver_job API; proactive delivery publishes events and pushes alerts into notifications.
Provider surfaces
src/openhuman/provider_surfaces/*, src/openhuman/mod.rs
New provider_surfaces module: in-memory respond-queue store, ops (ingest_event/list_queue), RPC schemas, types and controllers, and re-exports into crate root.
Config & embedding env handling
src/openhuman/config/schema/*, tests/json_rpc_e2e.rs
Add MemoryTreeConfig in schema, wire env overrides for embedding endpoint/model/timeout/strict, and test guards to disable strict embedding in CI tests.
Misc: docs, PR template, BUILDING.md, CLAUDE memory doc
docs/BUILDING.md, .github/PULL_REQUEST_TEMPLATE.md, .claude/memory.md
Add ARM Linux build docs, tauri/CEF runtime notes, update PR template "Closes:" guidance, and doc clarifications about webhook routing and TriggerSource handling.

Sequence Diagram(s)

sequenceDiagram
    rect rgba(200,200,255,0.5)
    participant ExternalClient as External Client
    end
    rect rgba(200,255,200,0.5)
    participant Router as Webhook Router / SocketManager
    end
    rect rgba(255,200,200,0.5)
    participant Core as Core Triage / Runtime
    end
    rect rgba(255,255,200,0.5)
    participant Agent as Agent Execution
    end
    rect rgba(200,255,255,0.5)
    participant SocketIO as Socket.IO / Frontend Bridge
    end

    ExternalClient->>Router: POST /webhook (tunnel_uuid, body)
    Router->>Router: lookup TunnelRegistration (by uuid)
    alt target_kind == "echo"
        Router-->>ExternalClient: 200 OK (echo response)
    else target_kind == "agent"
        Router-->>ExternalClient: 202 Accepted
        Router->>Core: spawn triage (TriggerEnvelope) with 60s timeout
        Core->>Agent: run triage pipeline / execute agent
        Agent-->>Core: decision/result (or timeout)
        Core->>SocketIO: publish "webhook:response" (decision payload)
    else unknown
        Router-->>ExternalClient: 501 Not Implemented
    end
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Suggested reviewers

  • senamakel
  • graycyrus

Poem

🐰
I hopped through yarn and left a trail,
pnpm carrots bundled in my mail.
New bridges hum and memories grow deep,
tiny hops, big changes—no need for sleep.
Cheerful thumps—review and merge, then leap!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

@VectorJet
Copy link
Copy Markdown
Contributor Author

Current State Has some issues. Ie. No openhuman-core in .deb and state issues. Working on it now.

@senamakel
Copy link
Copy Markdown
Member

for the script to work.. we'll need to also update the github actions to use pnpm instead of yarn.. i'm happy for us to switch to pnpm. so if you have a look at the github actions too would be great.

@VectorJet
Copy link
Copy Markdown
Contributor Author

for the script to work.. we'll need to also update the github actions to use pnpm instead of yarn.. i'm happy for us to switch to pnpm. so if you have a look at the github actions too would be great.

Sure! Already on it.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
docs/BUILDING.md (1)

11-41: ⚠️ Potential issue | 🟡 Minor

Update the existing build instructions to pnpm — they still reference yarn.

This PR migrates the monorepo to pnpm (new pnpm-workspace.yaml, CI workflows, .husky/pre-push, etc.), but the "Prerequisites" and "Build from source" sections here still tell users to install and invoke yarn. That will leave contributors with a broken setup (yarn commands will either fail or fall back to different behavior vs. the pnpm lockfile used in CI).

🛠️ Suggested fix
 - `git`
-- `node` + `yarn`
+- `node` + `pnpm`
 - Rust toolchain (see `rust-toolchain.toml`)
@@
 # 2) Install JS deps (workspace)
-yarn install
+pnpm install
@@
 # 4) Stage core sidecar for the desktop app
 cd app
-yarn core:stage
+pnpm core:stage

 # 5) Build desktop app artifacts
-yarn build
+pnpm build
@@
 For local development instead of production build:

 ```bash
-yarn dev
+pnpm dev
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/BUILDING.md` around lines 11 - 41, The BUILDING.md instructions still
reference yarn; update the Prerequisites and all example commands to use pnpm
(e.g., replace "yarn install", "yarn core:stage", "yarn build", and "yarn dev"
with the equivalent pnpm commands) and mention pnpm as a required tool alongside
Node (referencing pnpm-workspace.yaml to signal the repo uses pnpm). Ensure the
usage examples and CLI steps use pnpm consistently so local setup matches CI and
the new lockfile behavior.
.github/workflows/e2e-agent-review.yml (1)

42-51: ⚠️ Potential issue | 🔴 Critical

cache: "pnpm" in setup-node will fail because pnpm isn't installed yet (affects 5 workflows).

actions/setup-node with cache: pnpm requires pnpm to be installed before the setup-node step runs. Here it runs after setup-node, so setup-node will fail with Unable to locate executable file: pnpm. The idiomatic fix is to install pnpm first via pnpm/action-setup and then run setup-node.

This issue occurs in:

  • .github/workflows/e2e-agent-review.yml (lines 42–51)
  • .github/workflows/build-windows.yml (lines 28–35)
  • .github/workflows/release.yml (lines 296–299)
  • .github/workflows/test.yml (lines 40–43)
  • .github/workflows/typecheck.yml (lines 30–33)
🛠️ Suggested fix pattern (apply to all 5 workflows)
+      - name: Install pnpm
+        uses: pnpm/action-setup@v4
+        with:
+          version: 10
+
       - name: Setup Node.js 24.x
         uses: actions/setup-node@v4
         with:
           node-version: 24.x
           cache: "pnpm"
-
-      - name: Install pnpm
-        run: npm install -g pnpm

Note: .github/workflows/build.yml correctly installs pnpm first (line 56), then uses generic caching at lines 58–61, so it doesn't need changes.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/e2e-agent-review.yml around lines 42 - 51, The "Setup
Node.js 24.x" step uses with: cache: "pnpm" but pnpm is installed only after via
the "Install pnpm" run step, causing setup-node to fail; fix by installing pnpm
before calling actions/setup-node: replace the "Install pnpm" run step with the
pnpm/action-setup action (or move the install to a prior step), then keep the
"Setup Node.js 24.x" step with cache: "pnpm"; apply the same change to every
workflow that currently defines a "Setup Node.js 24.x" step followed by an
"Install pnpm" run step so pnpm exists when setup-node runs.
.github/workflows/release.yml (1)

292-299: ⚠️ Potential issue | 🔴 Critical

Install pnpm before running setup-node with cache: pnpm — the current ordering will fail.

actions/setup-node@v4 with cache: "pnpm" attempts to resolve the pnpm cache directory (via pnpm store path) during its own execution. This requires pnpm to already be on PATH, but the current workflow installs it afterward, causing the action to fail with pnpm: command not found.

The fix is to use pnpm/action-setup@v4 before setup-node, which also respects the packageManager version in package.json (currently pnpm@10.10.0). Using npm install -g pnpm silently ignores the pinned version and lets the CI environment drift from the repo declaration.

This ordering issue exists in three files:

  • .github/workflows/release.yml (lines 292–299)
  • .github/workflows/test.yml (lines 37–43)
  • .github/workflows/typecheck.yml (lines 27–33)
🔧 Proposed fix
+      - name: Install pnpm
+        uses: pnpm/action-setup@v4
+        with:
+          version: 10.10.0
+
       - name: Setup Node.js 24.x
         uses: actions/setup-node@v4
         with:
           node-version: 24.x
           cache: pnpm
-
-      - name: Install pnpm
-        run: npm install -g pnpm
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/release.yml around lines 292 - 299, Move pnpm installation
before setup-node and replace the global npm install with the official pnpm
action: remove the "Install pnpm" step that runs "npm install -g pnpm" and
instead add a step using "pnpm/action-setup@v4" configured to respect
package.json packageManager (matching pnpm@10.10.0) before the "Setup Node.js
24.x" step (the steps named "Setup Node.js 24.x" and "Install pnpm" in the
diff); apply this same change in the three workflows mentioned so
actions/setup-node@v4 can successfully use cache: pnpm.
🧹 Nitpick comments (3)
docs/BUILDING.md (1)

103-116: Hashed CEF output directory in docs will go stale.

cef-dll-sys-06f9a023be70e68b is a Cargo build-script output hash — it will change whenever the cef-dll-sys dependency (or its build inputs) changes, silently breaking the documented LD_LIBRARY_PATH for future readers. Consider either (a) resolving the path at runtime with a glob, or (b) shipping a wrapper script in the repo that computes it.

🛠️ More robust wrapper example
#!/bin/bash
set -euo pipefail
REL_DIR="/path/to/app/src-tauri/target/aarch64-unknown-linux-gnu/release"
CEF_DIR="$(ls -d "$REL_DIR"/build/cef-dll-sys-*/out/cef_linux_aarch64 2>/dev/null | head -n1)"
export LD_LIBRARY_PATH="$CEF_DIR:$REL_DIR/deps:$REL_DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
exec "$REL_DIR/OpenHuman" --no-sandbox "$@"

Also note: the hardcoded 0.52.28 in the .deb install example at Line 121 will drift from version in app/src-tauri/tauri.conf.json; consider using a glob (OpenHuman_*_arm64.deb) instead.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/BUILDING.md` around lines 103 - 116, The docs hardcode a Cargo
build-script hash in CEF_DIR which will break when the hash changes; update the
wrapper script (the suggested ~/bin/openhuman or a repo-shipped script) to
compute CEF_DIR at runtime using a glob like
"$REL_DIR"/build/cef-dll-sys-*/out/cef_linux_aarch64 (or equivalent shell
logic), ensure REL_DIR is set and export LD_LIBRARY_PATH by prepending that
computed CEF_DIR and preserving any existing LD_LIBRARY_PATH, and replace the
hardcoded .deb filename (version 0.52.28) with a glob such as
OpenHuman_*_arm64.deb so the docs remain robust.
package.json (1)

5-7: Redundant Yarn-style workspaces field after migrating to pnpm.

pnpm discovers workspace packages exclusively from pnpm-workspace.yaml; this workspaces array is a leftover from the Yarn setup and has no effect under pnpm. Safe to remove to avoid confusion and prevent other tools (or a stray npm/yarn invocation) from reading a potentially diverging workspace list.

🧹 Proposed fix
   "packageManager": "pnpm@10.10.0",
-  "workspaces": [
-    "app"
-  ],
   "resolutions": {
     "@tauri-apps/api": "2.10.1"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 5 - 7, Remove the redundant Yarn-style
"workspaces" array from package.json (the top-level "workspaces" key shown in
the diff) since pnpm uses pnpm-workspace.yaml to discover packages; delete that
key/entry so the repository only relies on pnpm-workspace.yaml and avoid
confusion from stale workspace configuration.
.github/workflows/test.yml (1)

45-57: Manual node_modules cache is suboptimal for pnpm workspaces.

This cache only stores the root node_modules, but pnpm workspaces materialize dependencies in each package (e.g., app/node_modules) as symlinks into a virtual store (node_modules/.pnpm). Depending on runner/filesystem, restoring symlinked trees via actions/cache can be lossy, and nothing here covers app/node_modules.

If you switch to pnpm/action-setup (see the comment on lines 292-299 of release.yml), actions/setup-node's built-in cache: "pnpm" already caches pnpm's content-addressable store keyed on pnpm-lock.yaml — which is the idiomatic and more reliable approach. You can then drop this custom cache step entirely (or, if you keep a node_modules cache, include app/node_modules in path).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/test.yml around lines 45 - 57, The current custom cache
step (id: pnpm-cache using actions/cache@v4) only caches root node_modules and
can break pnpm workspaces; replace it by using pnpm/action-setup (or
actions/setup-node with cache: "pnpm") so pnpm's content-addressable store is
restored by keying on pnpm-lock.yaml, and remove the Install dependencies
conditional on steps.pnpm-cache.outputs.cache-hit (or if you keep a manual
cache, expand the cache path to include per-package dirs like app/node_modules
and adjust uses: actions/cache accordingly). Ensure references to the pnpm-cache
step or steps.pnpm-cache.outputs.cache-hit are removed or updated (e.g., in the
"Install dependencies" step) when switching to pnpm/action-setup.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@app/package.json`:
- Line 26: The macos:dev npm script still invokes yarn; update the "macos:dev"
script (the value that currently contains "yarn macos:build:debug && open
'../target/debug/bundle/macos/OpenHuman.app'") to call pnpm instead (for example
use "pnpm run macos:build:debug && open
'../target/debug/bundle/macos/OpenHuman.app'") so the script works in the
pnpm-only environment and matches other package scripts.

In `@app/src-tauri/tauri.conf.json`:
- Around line 54-58: Populate the deb dependency fields so the generated .deb
and the control template declare runtime libs; set the JSON key
linux.deb.depends to an array listing needed packages (e.g., "libgtk-3-0",
"libwebkit2gtk-4.0-37", "libx11-6", "libgdk-pixbuf2.0-0", "libglib2.0-0") and
also add a matching Depends: line in the Debian control template (control.in)
that includes those packages (and keep ${shlibs:Depends}, ${misc:Depends} if
present) so both build paths require the same GTK/WebKit/X11 runtime packages at
install time.

---

Outside diff comments:
In @.github/workflows/e2e-agent-review.yml:
- Around line 42-51: The "Setup Node.js 24.x" step uses with: cache: "pnpm" but
pnpm is installed only after via the "Install pnpm" run step, causing setup-node
to fail; fix by installing pnpm before calling actions/setup-node: replace the
"Install pnpm" run step with the pnpm/action-setup action (or move the install
to a prior step), then keep the "Setup Node.js 24.x" step with cache: "pnpm";
apply the same change to every workflow that currently defines a "Setup Node.js
24.x" step followed by an "Install pnpm" run step so pnpm exists when setup-node
runs.

In @.github/workflows/release.yml:
- Around line 292-299: Move pnpm installation before setup-node and replace the
global npm install with the official pnpm action: remove the "Install pnpm" step
that runs "npm install -g pnpm" and instead add a step using
"pnpm/action-setup@v4" configured to respect package.json packageManager
(matching pnpm@10.10.0) before the "Setup Node.js 24.x" step (the steps named
"Setup Node.js 24.x" and "Install pnpm" in the diff); apply this same change in
the three workflows mentioned so actions/setup-node@v4 can successfully use
cache: pnpm.

In `@docs/BUILDING.md`:
- Around line 11-41: The BUILDING.md instructions still reference yarn; update
the Prerequisites and all example commands to use pnpm (e.g., replace "yarn
install", "yarn core:stage", "yarn build", and "yarn dev" with the equivalent
pnpm commands) and mention pnpm as a required tool alongside Node (referencing
pnpm-workspace.yaml to signal the repo uses pnpm). Ensure the usage examples and
CLI steps use pnpm consistently so local setup matches CI and the new lockfile
behavior.

---

Nitpick comments:
In @.github/workflows/test.yml:
- Around line 45-57: The current custom cache step (id: pnpm-cache using
actions/cache@v4) only caches root node_modules and can break pnpm workspaces;
replace it by using pnpm/action-setup (or actions/setup-node with cache: "pnpm")
so pnpm's content-addressable store is restored by keying on pnpm-lock.yaml, and
remove the Install dependencies conditional on
steps.pnpm-cache.outputs.cache-hit (or if you keep a manual cache, expand the
cache path to include per-package dirs like app/node_modules and adjust uses:
actions/cache accordingly). Ensure references to the pnpm-cache step or
steps.pnpm-cache.outputs.cache-hit are removed or updated (e.g., in the "Install
dependencies" step) when switching to pnpm/action-setup.

In `@docs/BUILDING.md`:
- Around line 103-116: The docs hardcode a Cargo build-script hash in CEF_DIR
which will break when the hash changes; update the wrapper script (the suggested
~/bin/openhuman or a repo-shipped script) to compute CEF_DIR at runtime using a
glob like "$REL_DIR"/build/cef-dll-sys-*/out/cef_linux_aarch64 (or equivalent
shell logic), ensure REL_DIR is set and export LD_LIBRARY_PATH by prepending
that computed CEF_DIR and preserving any existing LD_LIBRARY_PATH, and replace
the hardcoded .deb filename (version 0.52.28) with a glob such as
OpenHuman_*_arm64.deb so the docs remain robust.

In `@package.json`:
- Around line 5-7: Remove the redundant Yarn-style "workspaces" array from
package.json (the top-level "workspaces" key shown in the diff) since pnpm uses
pnpm-workspace.yaml to discover packages; delete that key/entry so the
repository only relies on pnpm-workspace.yaml and avoid confusion from stale
workspace configuration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7cb55e40-a57e-423c-be80-21f308721622

📥 Commits

Reviewing files that changed from the base of the PR and between 2ba7fd5 and 72c64b4.

⛔ Files ignored due to path filters (2)
  • app/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (13)
  • .github/workflows/build-windows.yml
  • .github/workflows/build.yml
  • .github/workflows/e2e-agent-review.yml
  • .github/workflows/release.yml
  • .github/workflows/test.yml
  • .github/workflows/typecheck.yml
  • .husky/pre-push
  • app/package.json
  • app/src-tauri/src/lib.rs
  • app/src-tauri/tauri.conf.json
  • docs/BUILDING.md
  • package.json
  • pnpm-workspace.yaml

Comment thread app/package.json
Comment thread app/src-tauri/tauri.conf.json
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (3)
.github/workflows/build.yml (2)

73-73: Consider --frozen-lockfile in CI for reproducibility.

pnpm install --no-frozen-lockfile lets CI silently mutate pnpm-lock.yaml if any package.json drifts, which defeats the main reason to commit a lockfile. The PR description notes this relaxation was intentional to unblock the migration, which is fine short-term — but consider switching back to pnpm install --frozen-lockfile (or the default, which is frozen in CI) once the lockfile settles. Same applies to release.yml and test.yml.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/build.yml at line 73, The CI step currently runs "pnpm
install --no-frozen-lockfile" which allows the lockfile to be mutated; update
that step to use a frozen install (use "pnpm install --frozen-lockfile" or
remove the flag to rely on CI default) in .github/workflows/build.yml and mirror
the same change in .github/workflows/release.yml and .github/workflows/test.yml
so CI enforces the committed pnpm-lock.yaml for reproducible builds.

62-73: Optional: the node_modules cache path misses workspace packages in a pnpm layout.

In a pnpm workspace, dependencies also materialize under app/node_modules/ (and any other workspace members), not just the repo-root node_modules/. Caching only path: node_modules and gating pnpm install on that cache hit can leave app/node_modules empty on cache restore, causing downstream cargo tauri build / vite steps to fail to resolve deps.

Since actions/setup-node's cache: pnpm already caches the global pnpm store (making reinstalls fast), you can either drop the separate actions/cache step entirely, or extend its path to cover all workspace node_modules dirs.

♻️ Option A — drop the redundant cache step (simplest)
-      - name: Cache node modules
-        id: pnpm-cache
-        uses: actions/cache@v4
-        with:
-          path: node_modules
-          key: ${{ runner.os }}-build-${{ hashFiles('**/pnpm-lock.yaml') }}
-          restore-keys: |
-            ${{ runner.os }}-build-
-
       - name: Install dependencies
-        if: steps.pnpm-cache.outputs.cache-hit != 'true'
         run: pnpm install --no-frozen-lockfile
♻️ Option B — extend the path to cover workspace packages
       - name: Cache node modules
         id: pnpm-cache
         uses: actions/cache@v4
         with:
-          path: node_modules
+          path: |
+            node_modules
+            app/node_modules
           key: ${{ runner.os }}-build-${{ hashFiles('**/pnpm-lock.yaml') }}
           restore-keys: |
             ${{ runner.os }}-build-
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/build.yml around lines 62 - 73, The "Cache node modules"
step (id: pnpm-cache) only caches repo-root node_modules and the "Install
dependencies" step is gated on its cache-hit, which misses workspace packages
(e.g., app/node_modules) in a pnpm workspace; either remove the separate
actions/cache step entirely and rely on actions/setup-node with cache: pnpm, or
expand the pnpm-cache step's path to include all workspace node_modules (e.g.,
app/node_modules and any other member dirs) and stop gating the "Install
dependencies" run solely on pnpm-cache.outputs.cache-hit so pnpm install still
runs when workspace dirs were not restored.
.github/workflows/test.yml (1)

133-137: Heads up for when the commented e2e-linux block is re-enabled.

setup-node with cache: "pnpm" requires pnpm on PATH before it runs. The commented block at lines 133-137 (and the commented e2e-macos block starting at line 228) don't include an Install pnpm step, so re-enabling them as-is will fail at the Setup Node step. Additionally, the e2e-macos block still has cache: "yarn" (line 244) and yarn install / yarn workspace invocations (lines 250, 263, 266) that haven't been migrated.

Non-blocking since the code is commented out, but worth updating now so the blocks are usable when you flip them on.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/test.yml around lines 133 - 137, The commented e2e-linux
and e2e-macos CI blocks reference actions/setup-node with cache: "pnpm" but do
not install pnpm on PATH and the macOS block still uses cache: "yarn" and yarn
commands; to fix, add an "Install pnpm" step (or ensure pnpm is available)
before the actions/setup-node step referenced by the e2e-linux block and change
the e2e-macos block to consistently use pnpm by replacing cache: "yarn" with
cache: "pnpm" and converting any yarn install / yarn workspace invocations to
their pnpm equivalents (or remove caching if you prefer to keep yarn), updating
the setup-node usages accordingly so the steps will succeed once the blocks are
re-enabled.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/test.yml:
- Around line 36-41: Duplicate "Install pnpm" job step is defined twice running
the same command `npm install -g pnpm`; remove the redundant step so only a
single step with name "Install pnpm" that runs `npm install -g pnpm` remains in
the workflow to avoid re-running the install and wasting CI minutes.

In @.github/workflows/typecheck.yml:
- Around line 36-37: The workflow's typecheck job references a non-existent step
id `pnpm-cache` in the conditional `steps.pnpm-cache.outputs.cache-hit`, so the
gate is ineffective; either remove that conditional entirely from the typecheck
job or add a cache step with `id: pnpm-cache` that sets `outputs.cache-hit`
(mirroring the `build` job's cache step) and update the `if:
steps.pnpm-cache.outputs.cache-hit != 'true'` guard to point to that new step;
locate the `typecheck` job and modify the conditional or add a `pnpm-cache` step
to ensure the cache check works as intended.

---

Nitpick comments:
In @.github/workflows/build.yml:
- Line 73: The CI step currently runs "pnpm install --no-frozen-lockfile" which
allows the lockfile to be mutated; update that step to use a frozen install (use
"pnpm install --frozen-lockfile" or remove the flag to rely on CI default) in
.github/workflows/build.yml and mirror the same change in
.github/workflows/release.yml and .github/workflows/test.yml so CI enforces the
committed pnpm-lock.yaml for reproducible builds.
- Around line 62-73: The "Cache node modules" step (id: pnpm-cache) only caches
repo-root node_modules and the "Install dependencies" step is gated on its
cache-hit, which misses workspace packages (e.g., app/node_modules) in a pnpm
workspace; either remove the separate actions/cache step entirely and rely on
actions/setup-node with cache: pnpm, or expand the pnpm-cache step's path to
include all workspace node_modules (e.g., app/node_modules and any other member
dirs) and stop gating the "Install dependencies" run solely on
pnpm-cache.outputs.cache-hit so pnpm install still runs when workspace dirs were
not restored.

In @.github/workflows/test.yml:
- Around line 133-137: The commented e2e-linux and e2e-macos CI blocks reference
actions/setup-node with cache: "pnpm" but do not install pnpm on PATH and the
macOS block still uses cache: "yarn" and yarn commands; to fix, add an "Install
pnpm" step (or ensure pnpm is available) before the actions/setup-node step
referenced by the e2e-linux block and change the e2e-macos block to consistently
use pnpm by replacing cache: "yarn" with cache: "pnpm" and converting any yarn
install / yarn workspace invocations to their pnpm equivalents (or remove
caching if you prefer to keep yarn), updating the setup-node usages accordingly
so the steps will succeed once the blocks are re-enabled.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a9f6e544-032c-4a8d-9507-724be7971c58

📥 Commits

Reviewing files that changed from the base of the PR and between 72c64b4 and 0408918.

⛔ Files ignored due to path filters (1)
  • app/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (8)
  • .github/workflows/build-windows.yml
  • .github/workflows/build.yml
  • .github/workflows/e2e-agent-review.yml
  • .github/workflows/release.yml
  • .github/workflows/test.yml
  • .github/workflows/typecheck.yml
  • app/scripts/e2e-build.sh
  • app/src-tauri/src/lib.rs
🚧 Files skipped from review as they are similar to previous changes (3)
  • app/src-tauri/src/lib.rs
  • .github/workflows/build-windows.yml
  • .github/workflows/e2e-agent-review.yml

Comment on lines +36 to +41
- name: Install pnpm
run: npm install -g pnpm

- name: Install pnpm
run: npm install -g pnpm

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Duplicate Install pnpm step — remove one.

The same step is defined twice consecutively. npm install -g pnpm is idempotent so it doesn't break the job, but it re-runs the install and wastes CI minutes.

🐛 Proposed fix
       - name: Install pnpm
         run: npm install -g pnpm

-      - name: Install pnpm
-        run: npm install -g pnpm
-
       - name: Setup Node.js 24.x
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/test.yml around lines 36 - 41, Duplicate "Install pnpm"
job step is defined twice running the same command `npm install -g pnpm`; remove
the redundant step so only a single step with name "Install pnpm" that runs `npm
install -g pnpm` remains in the workflow to avoid re-running the install and
wasting CI minutes.

Comment thread .github/workflows/typecheck.yml Outdated
VectorJet and others added 23 commits April 23, 2026 23:54
- Document aarch64 build process in BUILDING.md
- Add gtk::init() in tauri-runtime-cef before tray creation
- This fixes 'GTK has not been initialized' panic on ARM Linux
- Add aarch64 build and run instructions to BUILDING.md
- Add gtk::init() before tray creation in tauri-runtime-cef
- Fixes 'GTK has not been initialized' panic on ARM Linux
…e externalBin

- Migrate package.json scripts from yarn to pnpm
- Add linux deb bundle config with empty depends in tauri.conf.json
- Remove duplicate externalBin key in tauri.conf.json
- Add pnpm workspace and lockfiles

Amp-Thread-ID: https://ampcode.com/threads/T-019dbb86-6270-709c-ba2e-0dc4ed254adc
Co-authored-by: Amp <amp@ampcode.com>
The commit 4fc849cc is not yet available in the remote. Using
the latest available commit c8ece7c78 from origin/feat/cef.

The GTK init fix is available via separate PR:
tinyhumansai/tauri-cef#8
tinyhumansai#803)

Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
…umansai#395) (tinyhumansai#782)

Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
…i#710) (tinyhumansai#839)

- Add JSON-RPC handlers for source, global, and topic-based memory retrieval.
- Integrate Ollama embeddings for semantic reranking of chunks and summaries.
- Implement 15 unit tests for RPC handlers covering parameter parsing and PII redaction.
- Redact PII from logs by removing raw source, entity, and node identifiers.
- Fix BFS traversal for drill-down and deduplicate results in topic queries.
- Add configuration for embedding endpoints, models, and strictness modes.

Co-authored-by: sanil-23 <sanil@vezures.xyz>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
- Update all workflows to use pnpm instead of yarn
- Change cache: yarn to cache: pnpm
- Change yarn install to pnpm install
- Change yarn workspace to pnpm --filter
- Guard setup_tray with warn log level for headless CI environments
Also fix E2E spec pattern resolution from app/ directory
tauri-driver v2.0.5 proxies to WebKitWebDriver (webkit2gtk), but this app
uses CEF (tauri-runtime-cef) which has no WebDriver automation. Sessions
hang and timeout. Same as the commented-out e2e_linux job in test.yml.

Keep workflow_dispatch for manual runs when CEF automation support lands.
VectorJet and others added 3 commits April 24, 2026 06:32
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@VectorJet
Copy link
Copy Markdown
Contributor Author

So many Unnecessary Commits. Closing this for now And creating a New Pull Request once everything is fixed.

@VectorJet VectorJet closed this Apr 24, 2026
@VectorJet VectorJet deleted the sync-pr-840 branch April 24, 2026 07:17
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.

6 participants