diff --git a/.github/workflows/release-production.yml b/.github/workflows/release-production.yml index 49697850f..bc4fa243d 100644 --- a/.github/workflows/release-production.yml +++ b/.github/workflows/release-production.yml @@ -128,6 +128,15 @@ jobs: - name: Verify release version sync (main_head) if: inputs.release_source == 'main_head' run: node scripts/release/verify-version-sync.js "${{ steps.bump.outputs.version }}" + - name: Refresh Cargo.lock files (main_head) + if: inputs.release_source == 'main_head' + # Cargo.toml [package].version is bumped above but the matching + # entries in both Cargo.lock files are not — without this step the + # lockfiles stay pinned to the previous version and the next local + # `cargo` invocation rewrites them, leaving an uncommitted diff. + run: | + cargo update --workspace --manifest-path Cargo.toml + cargo update --workspace --manifest-path app/src-tauri/Cargo.toml - name: Ensure tag does not already exist (main_head) if: inputs.release_source == 'main_head' env: @@ -148,7 +157,7 @@ jobs: VERSION: ${{ steps.bump.outputs.version }} TAG: ${{ steps.bump.outputs.tag }} run: | - git add app/package.json app/src-tauri/tauri.conf.json app/src-tauri/Cargo.toml Cargo.toml + git add app/package.json app/src-tauri/tauri.conf.json app/src-tauri/Cargo.toml Cargo.toml app/src-tauri/Cargo.lock Cargo.lock git commit -m "chore(release): v${VERSION}" git push origin main git tag -a "$TAG" -m "Release $TAG" diff --git a/.github/workflows/release-staging.yml b/.github/workflows/release-staging.yml index f9198e4d8..d722ff7de 100644 --- a/.github/workflows/release-staging.yml +++ b/.github/workflows/release-staging.yml @@ -102,6 +102,14 @@ jobs: run: node scripts/release/bump-version.js patch - name: Verify version sync run: node scripts/release/verify-version-sync.js "${{ steps.bump.outputs.version }}" + - name: Refresh Cargo.lock files + # Cargo.toml [package].version is bumped above but the matching + # entries in both Cargo.lock files are not — without this step the + # lockfiles stay pinned to the previous version and the next local + # `cargo` invocation rewrites them, leaving an uncommitted diff. + run: | + cargo update --workspace --manifest-path Cargo.toml + cargo update --workspace --manifest-path app/src-tauri/Cargo.toml - name: Compute staging tag id: tagname env: @@ -127,7 +135,7 @@ jobs: VERSION: ${{ steps.bump.outputs.version }} TAG: ${{ steps.tagname.outputs.tag }} run: | - git add app/package.json app/src-tauri/tauri.conf.json app/src-tauri/Cargo.toml Cargo.toml + git add app/package.json app/src-tauri/tauri.conf.json app/src-tauri/Cargo.toml Cargo.toml app/src-tauri/Cargo.lock Cargo.lock git commit -m "chore(staging): v${VERSION}" git push origin main git tag -a "$TAG" -m "Staging cut $TAG" diff --git a/Cargo.lock b/Cargo.lock index 7d0698ea1..dd9b433a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4520,7 +4520,7 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openhuman" -version = "0.53.25" +version = "0.53.26" dependencies = [ "aes-gcm", "anyhow", diff --git a/app/src-tauri/Cargo.lock b/app/src-tauri/Cargo.lock index 18b4cd690..65f7833f3 100644 --- a/app/src-tauri/Cargo.lock +++ b/app/src-tauri/Cargo.lock @@ -4,7 +4,7 @@ version = 4 [[package]] name = "OpenHuman" -version = "0.53.23" +version = "0.53.26" dependencies = [ "anyhow", "async-trait", @@ -4551,7 +4551,7 @@ dependencies = [ [[package]] name = "openhuman" -version = "0.53.25" +version = "0.53.26" dependencies = [ "aes-gcm", "anyhow", diff --git a/app/src/components/settings/panels/DeveloperOptionsPanel.tsx b/app/src/components/settings/panels/DeveloperOptionsPanel.tsx index 1296a664d..983f475e0 100644 --- a/app/src/components/settings/panels/DeveloperOptionsPanel.tsx +++ b/app/src/components/settings/panels/DeveloperOptionsPanel.tsx @@ -57,22 +57,24 @@ const developerItems = [ ), }, - { - id: 'screen-awareness-debug', - title: 'Screen Awareness Debug', - description: 'FPS tuning, vision model config, capture tests, and session diagnostics', - route: 'screen-awareness-debug', - icon: ( - - - - ), - }, + // Screen Awareness Debug, Memory Data, and Memory Debug hidden — routes + // retained in `pages/Settings.tsx` for re-enable. + // { + // id: 'screen-awareness-debug', + // title: 'Screen Awareness Debug', + // description: 'FPS tuning, vision model config, capture tests, and session diagnostics', + // route: 'screen-awareness-debug', + // icon: ( + // + // + // + // ), + // }, // Autocomplete Debug + Voice Debug hidden per #717 (routes retained for re-enable). { id: 'local-model-debug', @@ -106,38 +108,38 @@ const developerItems = [ ), }, - { - id: 'memory-data', - title: 'Memory Data', - description: 'Knowledge graph, insights, activity heatmap, and file management', - route: 'memory-data', - icon: ( - - - - ), - }, - { - id: 'memory-debug', - title: 'Memory Debug', - description: 'Inspect memory documents, namespaces, and test query/recall', - route: 'memory-debug', - icon: ( - - - - ), - }, + // { + // id: 'memory-data', + // title: 'Memory Data', + // description: 'Knowledge graph, insights, activity heatmap, and file management', + // route: 'memory-data', + // icon: ( + // + // + // + // ), + // }, + // { + // id: 'memory-debug', + // title: 'Memory Debug', + // description: 'Inspect memory documents, namespaces, and test query/recall', + // route: 'memory-debug', + // icon: ( + // + // + // + // ), + // }, { id: 'intelligence', title: 'Intelligence', diff --git a/app/src/components/settings/panels/ScreenIntelligencePanel.tsx b/app/src/components/settings/panels/ScreenIntelligencePanel.tsx index 575b13e0d..97da0f69e 100644 --- a/app/src/components/settings/panels/ScreenIntelligencePanel.tsx +++ b/app/src/components/settings/panels/ScreenIntelligencePanel.tsx @@ -20,7 +20,7 @@ const formatRemaining = (remainingMs: number | null): string => { }; const ScreenIntelligencePanel = () => { - const { navigateBack, navigateToSettings, breadcrumbs } = useSettingsNavigation(); + const { navigateBack, breadcrumbs } = useSettingsNavigation(); const { status, lastRestartSummary, @@ -237,7 +237,8 @@ const ScreenIntelligencePanel = () => { )} - + */} ); diff --git a/src/main.rs b/src/main.rs index 2688d48ed..decf62eb3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -48,8 +48,17 @@ fn main() { before_send: Some(std::sync::Arc::new(|mut event| { // Strip server_name (hostname) to avoid leaking machine identity event.server_name = None; - // Strip user context entirely - event.user = None; + // Attach the cached account uid so Sentry can count unique users + // affected by an issue. We only carry `id` — never email, name, + // or IP — so this stays consistent with `send_default_pii: false`. + // Empty/missing on early-startup events (cache populates after + // the first `auth_get_me` RPC); that's expected. + event.user = openhuman_core::openhuman::app_state::peek_cached_current_user_identity() + .and_then(|identity| identity.id) + .map(|id| sentry::User { + id: Some(id), + ..Default::default() + }); // Scrub exception messages for secrets for exc in &mut event.exception.values { if let Some(ref value) = exc.value {