docs: keep Chinese README and refresh screenshots
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

This commit is contained in:
inman
2026-05-07 22:22:27 +08:00
parent 84fb5950a0
commit e949aa2802
43 changed files with 69 additions and 65 deletions

View File

@@ -43,4 +43,4 @@ Standard dev commands are in `package.json` scripts and `README.md`. Key ones:
- Do not call Gateway HTTP endpoints directly from renderer (`fetch('http://127.0.0.1:18789/...')` etc.). Use Main-process proxy channels (`hostapi:fetch`, `gateway:httpProxy`) to avoid CORS/env drift.
- Transport policy is Main-owned and fixed as `WS -> HTTP -> IPC fallback`; renderer should not implement protocol switching UI/business logic.
- **Comms-change checklist**: If your change touches communication paths (gateway events, runtime send/receive, delivery, or fallback), run `pnpm run comms:replay` and `pnpm run comms:compare` before pushing.
- **Doc sync rule**: After any functional or architecture change, review `README.md`, `README.zh-CN.md`, and `README.ja-JP.md` for required updates; if behavior/flows/interfaces changed, update docs in the same PR/commit.
- **Doc sync rule**: After any functional or architecture change, review the Chinese root `README.md`; if behavior/flows/interfaces changed, update docs in the same PR/commit.

View File

@@ -1,5 +0,0 @@
# 智念助手
This repository has been customized from the ClawX base project into **智念助手**.
Please use the root [README.md](README.md) as the source of truth for the current product scope, development workflow, packaging flow, and pilot validation notes.

View File

@@ -29,6 +29,24 @@
当前阶段:`3.5` 内测研发阶段。
## 功能截图
### 登录与组织空间
![登录与组织空间](resources/readme/01-login.png)
### 工作台首页
![工作台首页](resources/readme/02-home.png)
### 应用中心
![应用中心](resources/readme/04-app-center.png)
### 知识库
![知识库](resources/readme/05-knowledge.png)
## 核心能力
- **账号登录与组织空间**:通过服务端账号密码登录,一个账号对应一个组织空间;本地可维护组织空间展示名称与桌面端用户名称。

View File

@@ -1,5 +0,0 @@
# 智念助手
This repository has been customized from the ClawX base project into **智念助手**.
Please use the root [README.md](README.md) as the source of truth for the current product scope, development workflow, packaging flow, and pilot validation notes.

View File

@@ -1,5 +0,0 @@
# 智念助手
本项目已经从 ClawX 基础工程定制为 **智念助手**
请以根目录 [README.md](README.md) 为准,那里包含当前产品定位、功能范围、开发方式、打包方式和内测验证重点。

View File

@@ -32,8 +32,8 @@ const GATEWAY_FETCH_PRELOAD_SOURCE = `'use strict';
delete flat['HTTP-Referer'];
delete flat['x-title'];
delete flat['X-Title'];
flat['HTTP-Referer'] = 'https://claw-x.com';
flat['X-Title'] = 'ClawX';
flat['HTTP-Referer'] = 'https://git.nianxx.cn/wangxuming/NianToB';
flat['X-Title'] = '智念助手';
init.headers = flat;
}
return _f.call(globalThis, input, init);

View File

@@ -176,13 +176,13 @@ export function createMenu(): void {
{
label: 'Documentation',
click: async () => {
await shell.openExternal('https://claw-x.com');
await shell.openExternal('https://git.nianxx.cn/wangxuming/NianToB');
},
},
{
label: 'Report Issue',
click: async () => {
await shell.openExternal('https://github.com/ValueCell-ai/ClawX/issues');
await shell.openExternal('https://git.nianxx.cn/wangxuming/NianToB');
},
},
{ type: 'separator' },

View File

@@ -83,8 +83,8 @@ export const PROVIDER_DEFINITIONS: ProviderDefinition[] = [
api: 'openai-completions',
apiKeyEnv: 'OPENROUTER_API_KEY',
headers: {
'HTTP-Referer': 'https://claw-x.com',
'X-Title': 'ClawX',
'HTTP-Referer': 'https://git.nianxx.cn/wangxuming/NianToB',
'X-Title': '智念助手',
},
},
},

View File

@@ -36,8 +36,8 @@
delete flat['HTTP-Referer'];
delete flat['x-title'];
delete flat['X-Title'];
flat['HTTP-Referer'] = 'https://claw-x.com';
flat['X-Title'] = 'ClawX';
flat['HTTP-Referer'] = 'https://git.nianxx.cn/wangxuming/NianToB';
flat['X-Title'] = '智念助手';
init.headers = flat;
}
return _f.call(globalThis, input, init);

View File

@@ -1,6 +1,6 @@
#!/bin/sh
# OpenClaw CLI — managed by ClawX
# Do not edit manually. Regenerated on ClawX updates.
# OpenClaw CLI — managed by Zhinian Assistant
# Do not edit manually. Regenerated on Zhinian Assistant updates.
# Resolve the real path of this script (follow symlinks)
SCRIPT="$0"
@@ -15,10 +15,10 @@ if [ "$(uname)" = "Darwin" ]; then
# macOS: <App>.app/Contents/Resources/cli/openclaw
# SCRIPT_DIR = .../Contents/Resources/cli
CONTENTS_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
ELECTRON="$CONTENTS_DIR/MacOS/ClawX"
ELECTRON="$CONTENTS_DIR/MacOS/智念助手"
CLI="$CONTENTS_DIR/Resources/openclaw/openclaw.mjs"
else
# Linux: /opt/ClawX/resources/cli/openclaw
# Linux: /opt/ZhinianAssistant/resources/cli/openclaw
# SCRIPT_DIR = .../resources/cli
INSTALL_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
ELECTRON="$INSTALL_DIR/clawx"
@@ -26,23 +26,23 @@ else
fi
if [ ! -f "$ELECTRON" ]; then
echo "Error: ClawX executable not found at $ELECTRON" >&2
echo "Please reinstall ClawX or remove this script: $0" >&2
echo "Error: Zhinian Assistant executable not found at $ELECTRON" >&2
echo "Please reinstall Zhinian Assistant or remove this script: $0" >&2
exit 1
fi
case "$1" in
update)
echo "openclaw is managed by ClawX (bundled version)."
echo "openclaw is managed by Zhinian Assistant (bundled version)."
echo ""
echo "To update openclaw, update ClawX:"
echo " Open ClawX > Settings > Check for Updates"
echo " Or download the latest version from https://claw-x.com"
echo "To update openclaw, update Zhinian Assistant:"
echo " Open Zhinian Assistant > Settings > Check for Updates"
echo " Or contact the administrator for the latest installer"
echo ""
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --version 2>/dev/null || true
exit 0
;;
esac
export OPENCLAW_EMBEDDED_IN="ClawX"
export OPENCLAW_EMBEDDED_IN="Zhinian Assistant"
ELECTRON_RUN_AS_NODE=1 exec "$ELECTRON" "$CLI" "$@"

View File

@@ -5,15 +5,15 @@ INSTALL_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
case "$1" in
update)
echo "openclaw is managed by ClawX (bundled version)."
echo "openclaw is managed by Zhinian Assistant (bundled version)."
echo ""
echo "To update openclaw, update ClawX:"
echo " Open ClawX > Settings > Check for Updates"
echo "To update openclaw, update Zhinian Assistant:"
echo " Open Zhinian Assistant > Settings > Check for Updates"
exit 0
;;
esac
export OPENCLAW_EMBEDDED_IN="ClawX"
export OPENCLAW_EMBEDDED_IN="Zhinian Assistant"
NODE_EXE="$INSTALL_DIR/resources/bin/node.exe"
OPENCLAW_ENTRY="$INSTALL_DIR/resources/openclaw/openclaw.mjs"
@@ -23,4 +23,4 @@ if [ -f "$NODE_EXE" ]; then
fi
fi
ELECTRON_RUN_AS_NODE=1 exec "$INSTALL_DIR/ClawX.exe" "$OPENCLAW_ENTRY" "$@"
ELECTRON_RUN_AS_NODE=1 exec "$INSTALL_DIR/智念助手.exe" "$OPENCLAW_ENTRY" "$@"

View File

@@ -2,11 +2,11 @@
setlocal
if /i "%1"=="update" (
echo openclaw is managed by ClawX ^(bundled version^).
echo openclaw is managed by Zhinian Assistant ^(bundled version^).
echo.
echo To update openclaw, update ClawX:
echo Open ClawX ^> Settings ^> Check for Updates
echo Or download the latest version from https://claw-x.com
echo To update openclaw, update Zhinian Assistant:
echo Open Zhinian Assistant ^> Settings ^> Check for Updates
echo Or contact the administrator for the latest installer
exit /b 0
)
@@ -15,7 +15,7 @@ rem on non-English Windows (e.g. Chinese CP936). Save the previous codepage to r
for /f "tokens=2 delims=:." %%a in ('chcp') do set /a "_CP=%%a" 2>nul
chcp 65001 >nul 2>&1
set OPENCLAW_EMBEDDED_IN=ClawX
set OPENCLAW_EMBEDDED_IN=Zhinian Assistant
set "NODE_EXE=%~dp0..\bin\node.exe"
set "OPENCLAW_ENTRY=%~dp0..\openclaw\openclaw.mjs"
@@ -29,7 +29,7 @@ if "%_USE_BUNDLED_NODE%"=="1" (
"%NODE_EXE%" "%OPENCLAW_ENTRY%" %*
) else (
set ELECTRON_RUN_AS_NODE=1
"%~dp0..\..\ClawX.exe" "%OPENCLAW_ENTRY%" %*
"%~dp0..\..\智念助手.exe" "%OPENCLAW_ENTRY%" %*
)
set _EXIT=%ERRORLEVEL%

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 754 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 806 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 651 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 705 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 679 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 828 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 754 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 741 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 627 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 657 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 659 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 834 KiB

View File

@@ -50,7 +50,7 @@
DetailPrint `Closing running "${PRODUCT_NAME}"...`
# Kill ALL processes whose executable lives inside $INSTDIR.
# This covers ClawX.exe (multiple Electron processes), openclaw-gateway.exe,
# This covers the app executable (multiple Electron processes), openclaw-gateway.exe,
# python.exe (skills runtime), uv.exe (package manager), and any other
# child process that might hold file locks in the installation directory.
#
@@ -83,7 +83,7 @@
${nsProcess::Unload}
${endIf}
; Even if ClawX.exe was not detected as running, orphan child processes
; Even if the app executable was not detected as running, orphan child processes
; (python.exe, openclaw-gateway.exe, uv.exe, etc.) from a previous crash
; or unclean shutdown may still hold file locks inside $INSTDIR.
; Unconditionally kill any process whose executable lives in the install dir.
@@ -92,7 +92,7 @@
Pop $1
; Always kill known process names as a belt-and-suspenders approach.
; PowerShell path-based kill may miss processes if the old ClawX was installed
; PowerShell path-based kill may miss processes if the old app was installed
; in a different directory than $INSTDIR (e.g., per-machine -> per-user migration).
; taskkill is name-based and catches processes regardless of their install location.
nsExec::ExecToStack 'taskkill /F /T /IM "${APP_EXECUTABLE_FILENAME}"'

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# Post-installation script for ClawX on Linux
# Post-installation script for Zhinian Assistant on Linux
set -e
@@ -14,20 +14,21 @@ if command -v gtk-update-icon-cache &> /dev/null; then
gtk-update-icon-cache -q /usr/share/icons/hicolor || true
fi
# Create symbolic link for ClawX app binary
if [ -x /opt/ClawX/clawx ]; then
ln -sf /opt/ClawX/clawx /usr/local/bin/clawx 2>/dev/null || true
# Create symbolic link for Zhinian Assistant app binary
APP_DIR="/opt/智念助手"
if [ -x "$APP_DIR/zhinian-assistant" ]; then
ln -sf "$APP_DIR/zhinian-assistant" /usr/local/bin/zhinian-assistant 2>/dev/null || true
fi
# Create symbolic link for the app-managed openclaw CLI only when it will not
# overwrite a user-managed OpenClaw installation.
OPENCLAW_WRAPPER="/opt/ClawX/resources/cli/openclaw"
OPENCLAW_WRAPPER="$APP_DIR/resources/cli/openclaw"
if [ -f "$OPENCLAW_WRAPPER" ]; then
chmod +x "$OPENCLAW_WRAPPER" 2>/dev/null || true
if [ ! -e /usr/local/bin/openclaw ] || [ "$(readlink /usr/local/bin/openclaw 2>/dev/null || true)" = "$OPENCLAW_WRAPPER" ]; then
ln -sf "$OPENCLAW_WRAPPER" /usr/local/bin/openclaw 2>/dev/null || true
else
echo "Keeping existing /usr/local/bin/openclaw; it is not managed by ClawX."
echo "Keeping existing /usr/local/bin/openclaw; it is not managed by Zhinian Assistant."
fi
fi
@@ -37,9 +38,9 @@ fi
# we rely on the AppArmor profile below instead, so 0755 is correct there.
if ! { [[ -L /proc/self/ns/user ]] && unshare --user true; }; then
# No user namespace support — fall back to SUID sandbox
chmod 4755 '/opt/ClawX/chrome-sandbox' || true
chmod 4755 "$APP_DIR/chrome-sandbox" || true
else
chmod 0755 '/opt/ClawX/chrome-sandbox' || true
chmod 0755 "$APP_DIR/chrome-sandbox" || true
fi
# Install AppArmor profile (Ubuntu 24.04+).
@@ -50,8 +51,8 @@ fi
# We first check if AppArmor is enabled and if the running version supports abi/4.0
# (Ubuntu 22.04 does not; it runs fine without the profile, so we skip it there).
if apparmor_status --enabled > /dev/null 2>&1; then
APPARMOR_PROFILE_SOURCE='/opt/ClawX/resources/apparmor-profile'
APPARMOR_PROFILE_TARGET='/etc/apparmor.d/clawx'
APPARMOR_PROFILE_SOURCE="$APP_DIR/resources/apparmor-profile"
APPARMOR_PROFILE_TARGET='/etc/apparmor.d/zhinian-assistant'
if apparmor_parser --skip-kernel-load --debug "$APPARMOR_PROFILE_SOURCE" > /dev/null 2>&1; then
cp -f "$APPARMOR_PROFILE_SOURCE" "$APPARMOR_PROFILE_TARGET"
@@ -64,4 +65,4 @@ if apparmor_status --enabled > /dev/null 2>&1; then
fi
fi
echo "ClawX has been installed successfully."
echo "Zhinian Assistant has been installed successfully."

View File

@@ -1,15 +1,15 @@
#!/bin/bash
# Post-removal script for ClawX on Linux
# Post-removal script for Zhinian Assistant on Linux
set -e
# Remove symbolic links
rm -f /usr/local/bin/clawx 2>/dev/null || true
rm -f /usr/local/bin/zhinian-assistant 2>/dev/null || true
# Only remove the app-managed OpenClaw CLI wrapper. If the user had OpenClaw
# installed separately, leave their command and ~/.openclaw data untouched.
OPENCLAW_WRAPPER="/opt/ClawX/resources/cli/openclaw"
OPENCLAW_WRAPPER="/opt/智念助手/resources/cli/openclaw"
if [ "$(readlink /usr/local/bin/openclaw 2>/dev/null || true)" = "$OPENCLAW_WRAPPER" ]; then
rm -f /usr/local/bin/openclaw 2>/dev/null || true
fi
@@ -25,9 +25,9 @@ if command -v gtk-update-icon-cache &> /dev/null; then
fi
# Remove AppArmor profile
APPARMOR_PROFILE_TARGET='/etc/apparmor.d/clawx'
APPARMOR_PROFILE_TARGET='/etc/apparmor.d/zhinian-assistant'
if [ -f "$APPARMOR_PROFILE_TARGET" ]; then
rm -f "$APPARMOR_PROFILE_TARGET"
fi
echo "ClawX has been removed."
echo "Zhinian Assistant has been removed."