Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
10f4069
chore(rust): enforce warning-free clippy
senamakel Jul 15, 2026
39b0f52
feat(analytics): standardize interaction tracking
senamakel Jul 15, 2026
bd214e6
refactor(analytics): track shared buttons directly
senamakel Jul 15, 2026
642b1ae
fix(analytics): address review feedback
senamakel Jul 15, 2026
903b167
fix(analytics): decouple API event tracking
senamakel Jul 15, 2026
a6159ba
Merge remote-tracking branch 'upstream/main' into feat/standardized-a…
senamakel Jul 15, 2026
aaf133c
fix(rust): address clippy review feedback
senamakel Jul 15, 2026
aaef9f7
test(flows): align canvas validation with header controls
senamakel Jul 15, 2026
a047b00
Merge remote-tracking branch 'origin/feat/standardized-analytics-trac…
senamakel Jul 15, 2026
9169a7a
Merge remote-tracking branch 'upstream/main' into chore/enforce-clipp…
senamakel Jul 15, 2026
57fbf9b
fix(ci): align merged flow checks and clippy
senamakel Jul 15, 2026
b030839
Merge remote-tracking branch 'upstream/main' into chore/enforce-clipp…
senamakel Jul 15, 2026
13c94f8
fix(i18n): remove forbidden Russian em dash
senamakel Jul 15, 2026
f5da141
fix(test): follow agent iteration policy
senamakel Jul 15, 2026
1cdaf43
fix(test): default new search config fields
senamakel Jul 15, 2026
cd600d7
fix(agent): reject tool calls in turn wrapups
senamakel Jul 15, 2026
749255a
Merge remote-tracking branch 'upstream/main' into chore/enforce-clipp…
senamakel Jul 15, 2026
efe14af
fix(flows): satisfy warning-denied clippy
senamakel Jul 15, 2026
d9c1c45
fix(agent): validate wrapups before streaming
senamakel Jul 15, 2026
6133381
Merge remote-tracking branch 'upstream/main' into chore/enforce-clipp…
senamakel Jul 15, 2026
16b4d4c
Merge remote-tracking branch 'upstream/main' into chore/enforce-clipp…
senamakel Jul 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion .github/workflows/ci-lite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,7 @@ jobs:
with:
workspaces: |
. -> target
app/src-tauri -> target
cache-on-failure: true
# shared-key (not key) so the cache name is stable and not suffixed
# with the job id. Swatinem caches the full target/, which is why we
Expand All @@ -349,7 +350,23 @@ jobs:
run: cargo fmt --all -- --check

- name: Run clippy (core crate)
run: bash scripts/ci-cancel-aware.sh cargo clippy -p openhuman
if: needs.changes.outputs['rust-core'] == 'true'
run: bash scripts/ci-cancel-aware.sh cargo clippy -p openhuman -- -D warnings

- name: Cache CEF binary distribution
if: needs.changes.outputs['rust-tauri'] == 'true'
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: |
~/Library/Caches/tauri-cef
~/.cache/tauri-cef
key: cef-x86_64-unknown-linux-gnu-v2-${{ hashFiles('app/src-tauri/Cargo.toml') }}
restore-keys: |
cef-x86_64-unknown-linux-gnu-v2-

- name: Run clippy (Tauri shell)
if: needs.changes.outputs['rust-tauri'] == 'true'
run: bash scripts/ci-cancel-aware.sh cargo clippy --manifest-path app/src-tauri/Cargo.toml -- -D warnings

# Feature-gate smoke: proves the core still compiles with a domain gate turned
# OFF. The disabled build is the ONLY thing that catches stub-facade signature
Expand Down
12 changes: 6 additions & 6 deletions .husky/pre-push
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,10 @@ pnpm compile
COMPILE_EXIT=$?
set -e

# Run Rust compile checks for both the core and Tauri codebases
# Run Clippy for both Rust codebases; Clippy also performs compile checks.
set +e
pnpm rust:check
RUST_CHECK_EXIT=$?
pnpm rust:clippy
RUST_CLIPPY_EXIT=$?
set -e

# Enforce scoped cmd-* tokens in components/commands/
Expand All @@ -106,7 +106,7 @@ CMD_TOKENS_EXIT=$?
set -e

# Exit with error if any command still fails after fixes
if [ $FORMAT_EXIT -ne 0 ] || [ $LINT_EXIT -ne 0 ] || [ $COMPILE_EXIT -ne 0 ] || [ $RUST_CHECK_EXIT -ne 0 ] || [ $CMD_TOKENS_EXIT -ne 0 ]; then
if [ $FORMAT_EXIT -ne 0 ] || [ $LINT_EXIT -ne 0 ] || [ $COMPILE_EXIT -ne 0 ] || [ $RUST_CLIPPY_EXIT -ne 0 ] || [ $CMD_TOKENS_EXIT -ne 0 ]; then
echo
echo "============================================================"
echo "Pre-push checks failed."
Expand All @@ -116,10 +116,10 @@ if [ $FORMAT_EXIT -ne 0 ] || [ $LINT_EXIT -ne 0 ] || [ $COMPILE_EXIT -ne 0 ] ||
echo " git add -A && git commit -m 'chore: apply auto-fixes'"
echo " git push"
fi
if [ $COMPILE_EXIT -ne 0 ] || [ $RUST_CHECK_EXIT -ne 0 ] || [ $CMD_TOKENS_EXIT -ne 0 ]; then
if [ $COMPILE_EXIT -ne 0 ] || [ $RUST_CLIPPY_EXIT -ne 0 ] || [ $CMD_TOKENS_EXIT -ne 0 ]; then
echo "Fix the remaining errors above (TypeScript / Rust / cmd-tokens)"
echo "before re-pushing — these have no auto-fix path."
fi
echo "============================================================"
exit 1
fi
fi
13 changes: 13 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,19 @@ e2e-test-support = []
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage)'] }

# These project-wide shape/documentation lints describe intentional public APIs
# and long-standing module docs. Keep them explicitly baselined so `-D warnings`
# can make every other Clippy and rustc diagnostic a hard failure.
[lints.clippy]
borrowed_box = "allow"
doc_overindented_list_items = "allow"
field_reassign_with_default = "allow"
large_enum_variant = "allow"
result_large_err = "allow"
should_implement_trait = "allow"
too_many_arguments = "allow"
while_let_loop = "allow"

# Fix whisper-rs-sys CRT mismatch on Windows MSVC (LNK2038).
# Upstream cmake build defaults to /MD but Rust uses /MT.
# This fork adds config.static_crt(true) to the build script.
Expand Down
2 changes: 1 addition & 1 deletion app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"rust:check": "cargo check --manifest-path src-tauri/Cargo.toml",
"rust:format": "cargo fmt --manifest-path ../Cargo.toml --all && cargo fmt --manifest-path src-tauri/Cargo.toml --all",
"rust:format:check": "cargo fmt --manifest-path ../Cargo.toml --all --check && cargo fmt --manifest-path src-tauri/Cargo.toml --all --check",
"rust:clippy": "cargo clippy -p openhuman -- -D warnings",
"rust:clippy": "cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings",
"format": "prettier --write . && pnpm rust:format",
"format:check": "prettier --check . && pnpm rust:format:check",
"lint": "eslint . --ext .ts,.tsx --cache",
Expand Down
2 changes: 1 addition & 1 deletion app/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ tinyagents = { path = "../../vendor/tinyagents" }
# TinyAgents so integration work can test crate changes against OpenHuman before
# publishing.
tinyflows = { path = "../../vendor/tinyflows" }
tinycortex = { path = "../../vendor/tinycortex", features = ["git-diff"] }
tinycortex = { path = "../../vendor/tinycortex" }
tinyjuice = { path = "../../vendor/tinyjuice" }
tinychannels = { path = "../../vendor/tinychannels" }
tinyplace = { path = "../../vendor/tinyplace/sdk/rust" }
Expand Down
236 changes: 0 additions & 236 deletions app/src-tauri/src/cdp/input.rs

This file was deleted.

20 changes: 6 additions & 14 deletions app/src-tauri/src/cdp/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,21 @@
//! and `Webview::on_dev_tools_protocol`. There is no listener and no
//! network surface; any same-UID process is shut out by construction.
//!
//! Scanners pick up a [`CdpConn`] either via [`conn_for_account`] (for
//! `acct_<id>`-labelled webviews) or [`conn_for_label`] /
//! [`connect_and_attach_matching_in_process_by_label`] (for other
//! Scanners pick up a [`CdpConn`] either via [`target::conn_for_account`] (for
//! `acct_<id>`-labelled webviews) or [`target::conn_for_label`] /
//! [`target::connect_and_attach_matching_in_process_by_label`] (for other
//! surfaces such as the Meet call window).

pub mod conn;
pub mod in_process;
pub mod input;
pub mod session;
pub mod snapshot;
pub mod target;

pub use conn::CdpConn;
pub use in_process::{
install_for_account, install_for_label, install_for_webview, set_cef_app_handle, CdpRegistry,
EventFrame, WebviewCdpTransport, CALL_TIMEOUT,
};
pub use in_process::{install_for_account, install_for_label, set_cef_app_handle, CdpRegistry};
pub use session::{
placeholder_marker, placeholder_url, spawn_session, target_url_fragment, SpawnedSession,
};
#[allow(unused_imports)] // `Rect` re-export consumed once turn 2 lands; keep stable.
pub use snapshot::{Rect, Snapshot};
pub use target::{
conn_for_account, conn_for_label, connect_and_attach_matching_in_process,
connect_and_attach_matching_in_process_by_label, detach_session, find_page_target_where,
};
pub use snapshot::Snapshot;
pub use target::{detach_session, find_page_target_where};
4 changes: 2 additions & 2 deletions app/src-tauri/src/cdp/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ use tokio::task::JoinHandle;
// elapsed check honours `tokio::time::pause()` / `advance()` in unit tests.
use tokio::time::{sleep, Instant};

use super::find_page_target_where;
use super::target::conn_for_account;
use super::{find_page_target_where, CdpConn};
use crate::webview_accounts::{emit_load_finished, redact_url_for_log, RevealTrigger};

/// Backoff between failed attach attempts / reconnects. Intentionally
Expand Down Expand Up @@ -517,7 +517,7 @@ async fn run_session_cycle<R: Runtime>(
// page reaches the CEF helper's notify-IPC, which posts back to
// `forward_native_notification` in `webview_accounts`. Without it,
// the constructor silently no-ops and no toast ever fires (#1016).
if let Some(origin) = origin_of(&real_url) {
if let Some(origin) = origin_of(real_url) {
// Default permission set every embedded provider needs. Origin-scoped
// so we don't leak grants across providers running in the same CEF
// browser process.
Expand Down
Loading
Loading