release: bump version to 0.72.0
Some checks failed
ci / backend (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / delivery (push) Has been cancelled
release / images (push) Has been cancelled

This commit is contained in:
linkong
2026-06-29 14:05:06 +08:00
parent 3265d22af5
commit 19d5ac0fee
60 changed files with 3702 additions and 678 deletions

View File

@@ -8,7 +8,7 @@ The console now separates the "data source catalog" from "collector configuratio
- Lists all data sources, including built-in and custom sources.
- Clicking a name only opens an information drawer.
- Focuses on status, manual collection, and running collection tasks.
- `/collection-management?tab=collector_credentials`
- `/collection-management?section=collector_credentials`
- Displays as "Collectors".
- Owns endpoint, headers, base parameters, and credentials.
- Every collector exposes a connection button for health checks.

View File

@@ -352,7 +352,7 @@ For future Earth changes:
The Earth frontend and the console frontend are not the same UI system:
- Console frontend: React + Ant Design workbench
- Console frontend: React + Tactile UI / Radix primitives / lucide workbench
- Earth frontend: native HUD + Three.js display under `public/earth`
Therefore:

View File

@@ -155,7 +155,6 @@ Purpose:
Current usage:
- Admin data sources, collected data, collection management, logs, alerts, and BGP pages
- Old AntD legacy pages continue using shared scrolling behavior through compatibility wrappers
### 3. `TableScrollRegion`
@@ -275,17 +274,16 @@ File:
Responsibilities:
- `/ai` now owns LLM Provider, AI Tool configuration, and the testbench instead of nesting them under `/settings`
- The `模型供应商` tab manages default provider, model, base URL, provider key, local `aiprovider` proxy, and connection test; provider and model fields use editable comboboxes so users can manually enter new providers/models if the models.dev catalog stops updating
- The `工具` tab first selects a tool from a dropdown menu, then renders that tool's configuration; it currently includes WebSearch and OCR
- `/ai` now owns LLM Provider, AI Tool configuration, and Playground instead of nesting them under `/settings`
- The `模型供应商` section manages default provider, model, base URL, provider key, local `aiprovider` proxy, and connection test; provider and model fields use editable comboboxes so users can manually enter new providers/models if the models.dev catalog stops updating
- The `工具调用` section first selects a tool from a dropdown menu, then renders that tool's configuration; it currently includes WebSearch and OCR
- WebSearch configuration includes provider, search key, base URL, timeout, result count, and advanced provider options
- OCR configuration includes provider, Base URL, API key, model/engine, languages, timeout, file-size limit, and output format
- The `测试台` tab embeds the former Playground real session, preset prompts, and AI Provider status debugging
- The page reuses the Settings single-screen tabs, panel card, and internal scrolling style
- The `Playground` section embeds the former Playground real session, preset prompts, and AI Provider status debugging
- The page reuses the Settings single-screen section, panel card, and internal scrolling style
- AI Provider and WebSearch connection tests use `ConnectionTestInput`, with the connector icon fixed at the end of the Base URL input; when WebSearch is disabled, every configuration field and the test entry point are greyed out except the switch
Legacy `/settings?tab=ai` should redirect to `/ai?tab=providers`.
Legacy `/playground` should redirect to `/ai?tab=playground`.
AI configuration no longer lives under `/settings`; `/playground` should redirect to `/ai?section=playground`.
### 3. Business Data Gateway
@@ -342,11 +340,11 @@ Current page boundary:
- Endpoint, headers, and config are displayed here, not edited.
- Credential-bearing collectors point users to `Collection Management -> Collectors`.
Keep this boundary: do not put custom datasource editing, built-in endpoint overrides, or credential forms back into `/datasources`. Those configuration entry points live at `/collection-management?tab=collector_credentials`.
Keep this boundary: do not put custom datasource editing, built-in endpoint overrides, or credential forms back into `/datasources`. Those configuration entry points live at `/collection-management?section=collector_credentials`.
### Collectors Page
[Settings.tsx](/home/ray/dev/linkong/planet/frontend/src/admin/pages/PlainResourcePages.tsx) has three route modes: `/settings` for System Settings, `/earth-content` for Earth Content, and `/collection-management` for Collection Management. The `collector_credentials` tab is shown as `Collectors` under `/collection-management`.
[Settings.tsx](/home/ray/dev/linkong/planet/frontend/src/admin/pages/PlainResourcePages.tsx) has three route modes: `/settings` for System Settings, `/earth-content` for Earth Content, and `/collection-management` for Collection Management. The `collector_credentials` section is shown as `Collectors` under `/collection-management`.
The `System Display` section under `/settings` includes the `Demo Mode` switch. When enabled, Earth OOBE ignores existing current collected data and the local `browse first` temporary skip state, then opens the initialization guide directly. This switch is only for demos and acceptance checks; it does not change datasources, collection queues, or Earth content resources.
@@ -391,6 +389,7 @@ These principles have been repeatedly validated in the project:
4. Do not use `overflow: hidden` to mask structural issues
5. Do not compress the main work area to make summary cards show completely
6. Custom scrollbars must be floating overlays; they must not squeeze content width
7. The Admin shell relies on the root `height: 100%` chain and should not use exact `100vh` sizing at the workspace root
For detailed experience, see:
@@ -411,7 +410,7 @@ Do not write local CSS patches first, then retrofit the structure.
The console frontend and the Earth frontend are not the same system:
- Console frontend: React + Ant Design workbench
- Console frontend: React + Tactile UI / Radix primitives / lucide workbench
- Earth frontend: independent native HUD system under `public/earth`
Therefore:

View File

@@ -210,6 +210,11 @@ Inspection order:
3. Does the real scroll node explicitly use `overflow: auto`?
4. Have intermediate wrapper layers silently changed layout semantics?
The current Admin and Docs root shells rely on the `html` / `body` / `#root`
`height: 100%` chain. Do not reintroduce exact `100vh` / `100vw` sizing on
these embedded workspace shells; modals, overlays, and narrow-screen safety
boundaries may still use `calc(100vh - ...)` as a maximum-size constraint.
### 5. UI State and Display State Out of Sync
Repeated in Earth-related changes:

View File

@@ -22,7 +22,7 @@ URLs below use the local default `http://localhost:3000`. Replace the prefix wit
1. Open `http://localhost:3000/login` and click "Register" under the form.
2. On `/register`, fill in:
- **Username**: 350 characters, used to log in
- **Email**: receives the verification code; editable later in account settings
- **Email**: receives the verification code; in the current version, ask an administrator to maintain email changes in user management
- **Password**: at least 8 characters
3. After submission you are taken to the verify page. A 6-digit code is sent to your email. It expires in 10 minutes.
4. Enter the code and click "Verify and Sign In". On success the system stores a session and sends you to the console.
@@ -52,23 +52,23 @@ If you see "Email not verified", the page automatically redirects to `/verify-em
3. After receiving the code, enter it together with a new password (≥ 8 characters) and click "Reset Password".
4. The system sends you back to `/login` — sign in with the new password.
## Account Settings
## Account Area And Sign Out
Click your username at the top-right of the console to open account settings:
The account area at the bottom of the console sidebar shows the current username, version, and theme control. The current version does not include a signed-in self-service account settings page:
- Change password: enter current password + new password
- Change email: the system sends a verification code to the new address; the change applies only after verification
- View Gatekeeper groups: lists current groups (`docs_user` / `docs_developer` / `docs_admin`)
- Log out: clears the current session
- Use `/forgot-password` for password reset through email verification
- Administrators maintain email, role, and Gatekeeper groups at `/users`
- The sign-out icon in the account area clears the current session and returns to the login page
## Console Overview
The console at `http://localhost:3000/admin` is built with React + Ant Design. The left menu is organized by work domain.
The console at `http://localhost:3000/admin` is built with React plus Tactile UI / Radix primitives and lucide icons. The left menu is organized by work domain.
| Page | Route | Purpose |
| --- | --- | --- |
| Dashboard | `/admin` | System overview |
| Earth | `/earth` | Open the public Earth page |
| Docs | `/docs` | Open the docs site and show documents allowed by Gatekeeper permissions |
| Datasources | `/datasources` | Source directory and collection triggers |
| Collected Data | `/data` | Data already ingested |
| BGP | `/bgp` | BGP situational view |
@@ -86,7 +86,7 @@ Menu items hide automatically when you lack permission. If a menu is missing, ch
## Configure Data Collectors
`/collection-management?tab=collector_credentials` is the "Collectors" page. It manages connection configuration for every collector, not just credentials. Legacy `/settings?tab=collector_credentials` redirects here; the datasource directory remains at `/datasources`.
`/collection-management?section=collector_credentials` is the "Collectors" page. It manages connection configuration for every collector, not just credentials; the datasource directory remains at `/datasources`.
Steps:
@@ -127,7 +127,7 @@ The default guide follows the BarentsWatch official tutorial and reminds you to
Steps:
1. Open `/collection-management?tab=collector_credentials` and select `AISStream Realtime Vessels : aisstream_vessels`
1. Open `/collection-management?section=collector_credentials` and select `AISStream Realtime Vessels : aisstream_vessels`
2. Fill the AISStream API Key
3. Keep the default endpoint `wss://stream.aisstream.io/v0/stream`
4. Click the plug icon to test; confirm it reports `Reachable`
@@ -141,11 +141,12 @@ Steps:
## Configure AI Credentials
`/ai?tab=providers` is the AI management entry. Three key sub-tabs:
`/ai?section=integrations` is the AI management entry. Key sections:
- `Model Providers`: default LLM provider, model, base URL, API key, local `aiprovider` proxy, connection test
- `Tools`: a dropdown for specific tools — currently WebSearch and OCR
- `Tool Calls`: a dropdown for specific tools — currently WebSearch and OCR
- `Prompts`: a task dropdown for news localization, alert analysis, BGP briefs, and other LLM tasks. Operators can edit the prompt or reset it to the default
- `Playground`: real session, preset request, and AI Provider status debugging
### Model Providers
@@ -170,7 +171,7 @@ The plug icon at the end of the Base URL input runs a connection test. A passing
After selecting a task, the page shows the effective prompt, whether it is customized, the shipped default version, and a reset button. Saving affects only that task. Reset restores the default prompt from the current release package. Business facts, context, and output schemas are still assembled by the backend for each task.
The legacy link `/settings?tab=ai` redirects to `/ai?tab=providers`.
AI configuration no longer lives in System Settings; `/playground` redirects to `/ai?section=playground`.
## Datasources and Task Logs
@@ -245,7 +246,7 @@ To let a regular user read developer or operations docs, add `docs_developer` or
## AI Testbench
`/ai?tab=playground` is for real-pipeline debugging:
`/ai?section=playground` is for real-pipeline debugging:
- Pick the active provider
- Run preset requests or custom prompts

View File

@@ -32,8 +32,8 @@ The default role is `viewer`: you can sign in but only see public pages. For col
After landing on the `/admin` dashboard, here's a recommended walk-through:
1. `/collection-management?tab=collector_credentials`: pick a collector and click the plug icon to test connectivity. Free collectors (e.g. open BGP) usually work right away; credential-bearing ones like `AISStream` or `BarentsWatch` need an API key / client secret first
2. `/ai?tab=providers`: fill an LLM provider (e.g. `minimax` / `openai`), model, base URL, API key, and click the plug at the end of the base URL to test. WebSearch / OCR tools are optional
1. `/collection-management?section=collector_credentials`: pick a collector and click the plug icon to test connectivity. Free collectors (e.g. open BGP) usually work right away; credential-bearing ones like `AISStream` or `BarentsWatch` need an API key / client secret first
2. `/ai?section=integrations`: fill an LLM provider (e.g. `minimax` / `openai`), model, base URL, API key, and click the plug at the end of the base URL to test. WebSearch / OCR tools are optional
3. `/datasources` or `/data`: check whether collectors have produced data. Use `/datasources -> Built-in Sources` for finite collectors: with no rows selected, click `Trigger All`; after selecting rows, the primary button becomes `Trigger Selected N`. The top-right queue button shows progress. Use `/datasources -> Realtime Sources` for AISStream / WebSocket health and counters
4. `/alerts/system`: verify system alerts look right
5. `/users` (super_admin only): open accounts for teammates or adjust their groups

View File

@@ -8,7 +8,7 @@
- 展示所有数据源,包括内置和自定义。
- 点击名称只打开信息抽屉。
- 负责查看状态、触发采集和查看采集中任务。
- `/collection-management?tab=collector_credentials`
- `/collection-management?section=collector_credentials`
- 显示为“采集器”。
- 负责 endpoint、请求头、基础参数和凭证配置。
- 所有采集器都提供连接按钮,用于健康检查。

View File

@@ -274,17 +274,16 @@ Admin 的状态标签统一走 [StatusText](/home/ray/dev/linkong/planet/fronten
职责:
- `/ai` 独立承载 LLM Provider、AI Tool 配置和测试台,不再放在 `/settings` 的系统配置 tabs
- `模型供应商` tab 管理默认 provider、模型、base URL、provider key、本地 `aiprovider` 代理和连接测试provider 和模型输入使用可输入组合框models.dev 目录停更时用户仍可手动填新 provider/model
- `工具` tab 先通过下拉菜单选择工具,再管理对应配置;当前包含 WebSearch 和 OCR
- `/ai` 独立承载 LLM Provider、AI Tool 配置和 Playground,不再放在 `/settings` 的系统配置分区
- `模型供应商` 分区管理默认 provider、模型、base URL、provider key、本地 `aiprovider` 代理和连接测试provider 和模型输入使用可输入组合框models.dev 目录停更时用户仍可手动填新 provider/model
- `工具调用` 分区先通过下拉菜单选择工具,再管理对应配置;当前包含 WebSearch 和 OCR
- WebSearch 配置包含 provider、搜索 key、base URL、超时、结果数和高级 provider 参数
- OCR 配置包含 provider、Base URL、API Key、模型/engine、语言、超时、文件大小上限和输出格式
- `测试台` tab 嵌入原 Playground 的真实会话、预设请求和 AI Provider 状态调试
- 页面复用 Settings 的单屏 tabs、panel card 和内部滚动样式
- `Playground` 分区嵌入原 Playground 的真实会话、预设请求和 AI Provider 状态调试
- 页面复用 Settings 的单屏分区、panel card 和内部滚动样式
- AI Provider / WebSearch 的连接测试使用 `ConnectionTestInput`,连接器图标固定在 Base URL 输入框末端WebSearch 未启用时,除开关外的配置项和测试入口都置灰
旧的 `/settings?tab=ai` 应跳转到 `/ai?tab=providers`
旧的 `/playground` 应跳转到 `/ai?tab=playground`
AI 配置不再挂在 `/settings` 下;`/playground` 应跳转到 `/ai?section=playground`
### 3. 业务数据网关
@@ -342,7 +341,7 @@ Admin 的状态标签统一走 [StatusText](/home/ray/dev/linkong/planet/fronten
- endpoint、headers、config 只展示,不在这里编辑。
- 需要凭证的采集器提示用户到“采集管理 -> 采集器”维护。
这个边界很重要:后续不要把自定义数据源编辑、内置 endpoint 覆盖或凭证表单再塞回 `/datasources`。这些配置入口统一放在 `/collection-management?tab=collector_credentials`
这个边界很重要:后续不要把自定义数据源编辑、内置 endpoint 覆盖或凭证表单再塞回 `/datasources`。这些配置入口统一放在 `/collection-management?section=collector_credentials`
页面顶部的总进度区域新增 `采集中 N` 标签:
@@ -355,7 +354,7 @@ Admin 的状态标签统一走 [StatusText](/home/ray/dev/linkong/planet/fronten
### 采集器设置页
[Settings.tsx](/home/ray/dev/linkong/planet/frontend/src/admin/pages/PlainResourcePages.tsx) 会按路由进入三种模式:`/settings` 是系统设置,`/earth-content` 是智能星球内容,`/collection-management` 是采集管理。`collector_credentials` tab 当前在 `/collection-management` 下显示为“采集器”。
[Settings.tsx](/home/ray/dev/linkong/planet/frontend/src/admin/pages/PlainResourcePages.tsx) 会按路由进入三种模式:`/settings` 是系统设置,`/earth-content` 是智能星球内容,`/collection-management` 是采集管理。`collector_credentials` section 当前在 `/collection-management` 下显示为“采集器”。
`/settings` 的“系统显示”分区包含 `演示模式` 开关。开启后,智能星球的 OOBE 会忽略“已有当前采集数据”和本地“先浏览”临时跳过状态,直接展示初始化引导;该开关仅用于演示/验收流程,不改变数据源、采集队列或智能星球内容资源配置。
@@ -368,7 +367,7 @@ Admin 的状态标签统一走 [StatusText](/home/ray/dev/linkong/planet/fronten
- 不需要凭证的采集器只显示基础配置endpoint、默认 endpoint、请求头、timeout、retry。
- `BarentsWatch AIS` 使用专用凭证表单。
连接图标使用内联 `PlugConnectIcon`,视觉语义来自 Tabler `plug-connected`。后续如果控制台重写图标体系,应迁移到 Tabler Icons而不是继续使用 Ant Design 刷新图标表达连接。
连接测试入口使用现有 `Button icon="test"` 图标语义。后续如果控制台重写图标体系,应迁移到现有 lucide / Tactile UI 图标体系,而不是用普通刷新图标表达连接。
`Client Secret` 的表单语义:
@@ -421,6 +420,7 @@ Admin 的状态标签统一走 [StatusText](/home/ray/dev/linkong/planet/fronten
4. 不要用 `overflow: hidden` 掩盖结构问题
5. 不要为了摘要卡完整显示去压缩主工作区
6. 自定义滚动条必须是浮层,不得挤压内容宽度
7. Admin shell 依赖 root `height: 100%` 高度链,不在根工作区重新写精确 `100vh`
详细经验见:

View File

@@ -210,6 +210,10 @@
3. 真正滚动节点是否明确 `overflow: auto`
4. 中间包装层是否偷偷改了布局语义
当前 Admin 和 Docs 根 shell 依赖 `html` / `body` / `#root``height: 100%`
链路。不要在这些嵌入式工作区根容器上重新写精确 `100vh` / `100vw`
弹窗、浮层和窄屏安全边界可以继续使用 `calc(100vh - ...)` 作为最大尺寸约束。
### 5. UI 状态和显示状态不同步
Earth 相关改动里反复出现:

View File

@@ -22,7 +22,7 @@
1. 打开 `http://localhost:3000/login`,点击表单下方"注册账户"。
2.`/register` 填写:
- **用户名**350 位字符,登录时使用
- **邮箱**:用于接收验证码,可在账户设置中修改
- **邮箱**:用于接收验证码;当前版本如需修改邮箱,请联系管理员在用户管理中维护
- **密码**:至少 8 位
3. 提交后会跳到验证页,已将 6 位验证码发到你的邮箱。10 分钟内有效。
4. 输入验证码,点击"验证并登录"。验证通过后系统会自动写入登录态并跳到控制台。
@@ -52,23 +52,23 @@
3. 收到验证码后,在下一步填入验证码 + 新密码(至少 8 位),点击"重置密码"。
4. 系统会跳回 `/login`,用新密码登录即可。
## 账户设置
## 账户区与退出
控制台右上角点击你的用户名进入账户设置,可以
控制台左侧底部的账户区会显示当前用户名、版本号和主题切换。当前版本还没有登录后的自助账户设置
- 修改密码:输入当前密码 + 新密码
- 修改邮箱:输入新邮箱后系统会发验证码到新地址,验证通过后才生效
- 查看权限组:列出你目前拥有的 Gatekeeper 权限组(`docs_user` / `docs_developer` / `docs_admin`
- 登出:清除当前会话
- 忘记密码或需要重置密码时,使用 `/forgot-password` 邮件验证码流程
- 邮箱、角色和 Gatekeeper 权限组由管理员在 `/users` 维护
- 点击账户区的退出图标会清除当前会话并返回登录页
## 控制台总览
控制台 `http://localhost:3000/admin` 使用 React + Ant Design,左侧菜单按工作域组织。
控制台 `http://localhost:3000/admin` 使用 React + Tactile UI / Radix 基础组件和 lucide 图标,左侧菜单按工作域组织。
| 页面 | 路由 | 用途 |
| --- | --- | --- |
| 仪表盘 | `/admin` | 系统概览 |
| 智能星球 | `/earth` | 跳到公开智能星球页面 |
| 文档 | `/docs` | 打开文档站并按 Gatekeeper 权限查看可见文档 |
| 数据源 | `/datasources` | 数据源目录、触发采集 |
| 采集数据 | `/data` | 已落库的数据 |
| BGP 观测 | `/bgp` | BGP 专题观测 |
@@ -86,7 +86,7 @@
## 配置数据采集器
`/collection-management?tab=collector_credentials` 是"采集器"页。这里统一维护所有采集器的连接配置,不仅是凭证。旧链接 `/settings?tab=collector_credentials` 会自动跳转到这个入口;数据源目录仍保留在 `/datasources`
`/collection-management?section=collector_credentials` 是"采集器"页。这里统一维护所有采集器的连接配置,不仅是凭证;数据源目录仍保留在 `/datasources`
操作步骤:
@@ -130,7 +130,7 @@
操作步骤:
1. `/collection-management?tab=collector_credentials` 选择 `AISStream 实时船舶 : aisstream_vessels`
1. `/collection-management?section=collector_credentials` 选择 `AISStream 实时船舶 : aisstream_vessels`
2.`AISStream 凭证` 填入 API Key
3. Endpoint 保持默认 `wss://stream.aisstream.io/v0/stream`
4. 点击插头图标进行连接测试,确认显示 `可用`
@@ -144,11 +144,12 @@
## 配置 AI 凭证
`/ai?tab=providers` 是 AI 模型管理入口。包含三个核心子 tab
`/ai?section=integrations` 是 AI 模型管理入口。主要分区包括
- `模型供应商`:默认 LLM provider、模型、Base URL、API Key、本地 `aiprovider` 代理和连接测试
- `工具`:通过下拉菜单选择具体工具,当前支持 WebSearch 和 OCR
- `工具调用`:通过下拉菜单选择具体工具,当前支持 WebSearch 和 OCR
- `提示词`通过功能入口下拉菜单选择新闻汉化、告警研判、BGP 简报等 LLM 任务,手动调整提示词或重置为缺省
- `Playground`:真实会话、预设请求和 AI Provider 状态调试
### 模型供应商
@@ -173,7 +174,7 @@ Base URL 输入框尾端的插头图标会触发连接测试。测试通过会
选择功能入口后,页面会显示当前提示词、是否已自定义、缺省版本和重置按钮。保存只影响该功能入口;重置会恢复当前发布包中的缺省提示词。业务事实、上下文和输出 schema 仍由后端按功能入口自动传入。
链接 `/settings?tab=ai` 会跳到 `/ai?tab=providers`
的 AI 配置入口不再放在系统设置里;`/playground` 会跳到 `/ai?section=playground`
## 系统设置
@@ -244,7 +245,7 @@ Base URL 输入框尾端的插头图标会触发连接测试。测试通过会
## AI 测试台
`/ai?tab=playground` 用于真实分析链路调试。可以:
`/ai?section=playground` 用于真实分析链路调试。可以:
- 选择当前 provider
- 用预设请求或自定义 prompt 触发分析

View File

@@ -32,8 +32,8 @@
进入 `/admin` 仪表盘后,建议按这个顺序熟悉控制台:
1. `/collection-management?tab=collector_credentials`:选一个采集器,点插头图标做连接测试。免费 collector开源 BGP 等)通常直接可用;像 `AISStream``BarentsWatch` 这类需要凭证的,需要先填 API Key/Client Secret
2. `/ai?tab=providers`:填一个 LLM provider例如 `minimax` / `openai`、模型名、Base URL、API Key点 Base URL 末端的插头测试连接。WebSearch / OCR 工具可选
1. `/collection-management?section=collector_credentials`:选一个采集器,点插头图标做连接测试。免费 collector开源 BGP 等)通常直接可用;像 `AISStream``BarentsWatch` 这类需要凭证的,需要先填 API Key/Client Secret
2. `/ai?section=integrations`:填一个 LLM provider例如 `minimax` / `openai`、模型名、Base URL、API Key点 Base URL 末端的插头测试连接。WebSearch / OCR 工具可选
3. `/datasources``/data`:看采集器是否已经产出数据。有限采集器看 `/datasources -> 内置源`,不勾选时点“触发全部”,勾选后主按钮会变成“触发已选 N”右上角队列按钮可查看进度。AISStream / WebSocket 长连接看 `/datasources -> 实时源` 的健康状态和计数
4. `/alerts/system`:看系统告警是否正常
5. `/users`(仅 `super_admin`):根据需要给同事开账号或调权限组