mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-28 13:32:23 +00:00
+16




![github-actions[bot] <github-actions[bot]@users.noreply.github.com>](/assets/img/avatar_default.png)




Mega Mind
GitHub
YellowSnnowmann
Steven Enamakel
github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Cyrus Gray
Horst1993
Cursor
James Gentes
Sam
Sami Rusani
oxoxDev
Muhammad Ismail
Claude Fable 5
nb213
binyangzhu000-sudo
Steven Enamakel
CodeGhost21
sanil-23
M3gA-Mind
oxoxDev
mysma-9403
mwakidenis
NgoQuocViet2001
viet.ngo
Maciej Myszkiewicz
2e5b5e7b23
Co-authored-by: YellowSnnowmann <167776381+YellowSnnowmann@users.noreply.github.com> Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Cyrus Gray <144336577+graycyrus@users.noreply.github.com> Co-authored-by: Horst1993 <horst.w@gmicloud.ai> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: James Gentes <jgentes@users.noreply.github.com> Co-authored-by: Sam <samrusani@users.noreply.github.com> Co-authored-by: Sami Rusani <14844597+samrusani@users.noreply.github.com> Co-authored-by: oxoxDev <164490987+oxoxDev@users.noreply.github.com> Co-authored-by: Muhammad Ismail <78064250+myi1@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: nb213 <binyangzhu000@gmail.com> Co-authored-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com> Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai> Co-authored-by: CodeGhost21 <164498022+CodeGhost21@users.noreply.github.com> Co-authored-by: sanil-23 <sanil@tinyhumans.ai> Co-authored-by: M3gA-Mind <elvin@mahadao.com> Co-authored-by: oxoxDev <oxoxdev@users.noreply.github.com> Co-authored-by: mysma-9403 <64923976+mysma-9403@users.noreply.github.com> Co-authored-by: mwakidenis <mwakidenice@gmail.com> Co-authored-by: NgoQuocViet2001 <123613986+NgoQuocViet2001@users.noreply.github.com> Co-authored-by: viet.ngo <viet.ngo@sotatek.com> Co-authored-by: Maciej Myszkiewicz <mmyszkiewicz@bwcoders.com>
181 lines
7.0 KiB
TOML
181 lines
7.0 KiB
TOML
[[permission]]
|
|
identifier = "allow-core-process"
|
|
description = "Privileged desktop permissions for core process control, service management, dictation, account webview, window/UI, notifications, Gmail CDP, log access, Meet, and CEF/profile maintenance"
|
|
|
|
[permission.commands]
|
|
|
|
allow = [
|
|
|
|
# =========================
|
|
# CORE PROCESS
|
|
# =========================
|
|
"core_rpc_url",
|
|
"core_rpc_token",
|
|
# `relay_http_rpc` proxies a JSON-RPC POST through the Rust host so the
|
|
# secure webview can reach a self-hosted runtime on a cleartext LAN IP
|
|
# without tripping mixed-content/CORS (#3865). Without this allow entry the
|
|
# invoke is rejected with "Command not allowed by ACL".
|
|
"relay_http_rpc",
|
|
# `start_core_process` is invoked by BootCheckGate after the user picks
|
|
# Local mode, before redux-persist hydrates the rest of the app (#1316).
|
|
# Without this allow entry the invoke is rejected with "Command not
|
|
# found" and the boot gate stalls.
|
|
"start_core_process",
|
|
"restart_core_process",
|
|
# `reset_local_data` is the "Clear App Data" command (Settings → Account,
|
|
# and the Welcome-screen decryption-recovery flow). It stops the embedded
|
|
# core, deletes the signed-in user's data dir + active markers, then
|
|
# restarts the core. It replaced the old two-step
|
|
# `callCoreRpc('config_reset_local_data') + restartCoreProcess()` dance
|
|
# (which reached Rust via the ACL-permitted `relay_http_rpc`), but the new
|
|
# dedicated command was never added here — so the invoke was rejected with
|
|
# "reset_local_data not allowed. Command not found" and Clear App Data
|
|
# silently did nothing (#4950). Without this allow entry the ACL denies it
|
|
# before it reaches Rust.
|
|
"reset_local_data",
|
|
# `restart_app` triggers `app.restart()` so CEF re-initializes against
|
|
# the active user's `users/<id>/cef` profile after an identity flip
|
|
# (#900). Without this allow entry, the invoke is silently denied by
|
|
# Tauri capabilities and webviews keep the prior user's third-party
|
|
# cookies.
|
|
"restart_app",
|
|
# `get_active_user_id` reads `~/.openhuman/active_user.toml` so the
|
|
# frontend can prime `userScopedStorage` from the Rust source of truth
|
|
# BEFORE redux-persist hydrates — the prior `localStorage`-only seed
|
|
# was bound to the per-user CEF profile dir and went stale across
|
|
# restart-driven flips, causing a false re-flip and restart loop on
|
|
# every login. (#900)
|
|
"get_active_user_id",
|
|
|
|
# =========================
|
|
# SERVICE MANAGEMENT
|
|
# =========================
|
|
"service_install_direct",
|
|
"service_start_direct",
|
|
"service_stop_direct",
|
|
"service_status_direct",
|
|
"service_uninstall_direct",
|
|
|
|
# =========================
|
|
# DICTATION
|
|
# =========================
|
|
"register_dictation_hotkey",
|
|
"unregister_dictation_hotkey",
|
|
|
|
# =========================
|
|
# PUSH-TO-TALK (PTT)
|
|
# =========================
|
|
# Voice settings panel registers/unregisters the global PTT hotkey and shows
|
|
# the PTT overlay via these invokes. Without these allow entries the invoke
|
|
# is rejected with "Command <name> not allowed by ACL" and PTT (plus the
|
|
# always-on listening flow that depends on hotkey registration) never works.
|
|
"register_ptt_hotkey",
|
|
"unregister_ptt_hotkey",
|
|
"show_ptt_overlay",
|
|
|
|
# =========================
|
|
# DESKTOP COMPANION
|
|
# =========================
|
|
# The desktop companion moved from core RPC into the Tauri shell. Its
|
|
# settings panel and hotkey bridge invoke these commands directly, so each
|
|
# one must be present in the main-window capability.
|
|
"register_companion_hotkey",
|
|
"unregister_companion_hotkey",
|
|
"companion_activate",
|
|
"companion_start_session",
|
|
"companion_stop_session",
|
|
"companion_status",
|
|
"companion_config_get",
|
|
"companion_config_set",
|
|
|
|
# =========================
|
|
# STRUCTURED WHATSAPP DATA
|
|
# =========================
|
|
# The SQLite store moved from the core into the Tauri shell. Intelligence
|
|
# views now query it through these read-only invoke commands.
|
|
"whatsapp_data_list_chats",
|
|
"whatsapp_data_list_messages",
|
|
"whatsapp_data_search_messages",
|
|
|
|
# =========================
|
|
# ACCOUNT WEBVIEW
|
|
# =========================
|
|
"webview_account_open",
|
|
"webview_account_close",
|
|
"webview_account_show",
|
|
"webview_account_hide",
|
|
"webview_account_bounds",
|
|
"webview_account_reveal",
|
|
"webview_account_purge",
|
|
"webview_recipe_event",
|
|
|
|
# =========================
|
|
# WINDOW / UI
|
|
# =========================
|
|
"activate_main_window",
|
|
# Notch activity indicator (transparent NSPanel pill, macOS). The Voice
|
|
# settings panel + app boot call these via `syncNotchVisibility` to mirror
|
|
# always-on listening state. Without these allow entries the invoke is
|
|
# rejected with "Command not found" and the notch never shows/hides.
|
|
"notch_window_show",
|
|
"notch_window_hide",
|
|
|
|
# =========================
|
|
# NOTIFICATIONS
|
|
# =========================
|
|
# Native notification surface (see src/native_notifications/). The
|
|
# frontend bridge in app/src/lib/nativeNotifications/tauriBridge.ts
|
|
# calls these directly instead of routing through the bundled
|
|
# tauri-plugin-notification (whose desktop permission_state is
|
|
# hardcoded to Granted, see #1152). Without these allow entries the
|
|
# invokes return "Command not found" and the UI falsely reports the
|
|
# OS as denied.
|
|
"notification_permission_state",
|
|
"notification_permission_request",
|
|
"show_native_notification",
|
|
|
|
# =========================
|
|
# GMAIL CDP
|
|
# =========================
|
|
# Gmail-CDP surface (see app/src-tauri/src/gmail/). Drives the
|
|
# logged-in Gmail webview through DOMSnapshot + Input events. Used
|
|
# by onboarding's LinkedIn-enrichment pipeline today and by future
|
|
# agent tools.
|
|
"gmail_list_labels",
|
|
"gmail_list_messages",
|
|
"gmail_search",
|
|
"gmail_get_message",
|
|
"gmail_send",
|
|
"gmail_trash",
|
|
"gmail_add_label",
|
|
"gmail_find_linkedin_profile_url",
|
|
|
|
# =========================
|
|
# LOGS
|
|
# =========================
|
|
# Surface the embedded core's daily-rotated log directory
|
|
# (`<data_dir>/logs/`) so the Settings → Developer Options panel can
|
|
# show users the path and reveal it in the platform file manager when
|
|
# collecting support bundles. Read-only; no writes occur in the
|
|
# backing commands.
|
|
"logs_folder_path",
|
|
"reveal_logs_folder",
|
|
|
|
# =========================
|
|
# GOOGLE MEET
|
|
# =========================
|
|
# Meet call: open / close a dedicated CEF webview window pointed at a
|
|
# https://meet.google.com/<code> URL with an isolated per-call data
|
|
# directory. Surfaced from Intelligence > Calls. Without these allow
|
|
# entries the invoke is rejected with "Command not found".
|
|
"meet_call_open_window",
|
|
"meet_call_close_window",
|
|
|
|
# =========================
|
|
# CEF / PROFILE
|
|
# =========================
|
|
"schedule_cef_profile_purge",
|
|
]
|
|
|
|
deny = []
|