Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# GEOFlow 3.0
# GEOFlow 3.1

> Languages: [简体中文](README.md) | [English](docs/readme/README_en.md) | [日本語](docs/readme/README_ja.md) | [Español](docs/readme/README_es.md) | [Русский](docs/readme/README_ru.md) | [Português (BR)](docs/readme/README_pt_BR.md)

Expand All @@ -8,14 +8,14 @@ GEOFlow 把可信知识、AI 内容生产、质量门禁、人工审核、多站

[快速开始](#快速开始) · [界面预览](#界面预览) · [核心能力](#geoflow-30-核心能力) · [文档中心](docs/README.md) · [3.0 升级教程](docs/deployment/GEOFLOW_V3_UPGRADE.md) · [蓝绿部署与自动迁移](docs/blue-green-deployment-usage.md) · [更新日志](docs/CHANGELOG.md) · [官方网站](https://www.geoflow.me)

[![Source version](https://img.shields.io/badge/source-3.0.0-2563eb)](version.json)
[![Source version](https://img.shields.io/badge/source-3.1.0-2563eb)](version.json)
[![Latest release](https://img.shields.io/github/v/release/yaojingang/GEOFlow?display_name=tag)](https://github.com/yaojingang/GEOFlow/releases/latest)
[![PHP](https://img.shields.io/badge/PHP-8.3%2B-777bb4)](https://www.php.net/)
[![CI](https://github.com/yaojingang/GEOFlow/actions/workflows/ci.yml/badge.svg)](https://github.com/yaojingang/GEOFlow/actions/workflows/ci.yml)
[![License](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/yaojingang/GEOFlow?style=social)](https://github.com/yaojingang/GEOFlow/stargazers)

> **版本说明:** 当前为 `3.0.x` 系列,`main` 分支持续迭代,可能包含尚未发布的更新。精确源码版本见 [`version.json`](version.json),正式发布版本与升级说明见 [GitHub Releases](https://github.com/yaojingang/GEOFlow/releases)。生产部署建议使用正式 Release,或固定到经过审核的提交。
> **版本说明:** 当前为 `3.1.x` 系列,`main` 分支持续迭代,可能包含尚未发布的更新。精确源码版本见 [`version.json`](version.json),正式发布版本与升级说明见 [GitHub Releases](https://github.com/yaojingang/GEOFlow/releases)。生产部署建议使用正式 Release,或固定到经过审核的提交。

---

Expand Down Expand Up @@ -123,7 +123,7 @@ GEOFlow 适合拥有真实业务资料、明确审核责任和持续运营计划

| 组件 | 当前源码版本或状态 | 说明 |
|------|-------------------|------|
| GEOFlow Core | `3.0.0` | Laravel 应用、管理后台、前台、API、队列和分发系统 |
| GEOFlow Core | `3.1.0` | Laravel 应用、管理后台、前台、API、队列和分发系统 |
| GEOFlow CLI | `0.2.0` | 仓库内置 `bin/geoflow`,支持 macOS、Linux 和 WSL |
| Chrome 运营助手 | `0.1.0` | 源码和打包产物位于 `browser-extension/` 与 `dist/browser-extension/` |
| GEOFlow Updater | 独立组件 | 使用与目标 Release 明确兼容的签名版本,参见 [geoflow-updater](https://github.com/yaojingang/geoflow-updater) |
Expand Down
3 changes: 2 additions & 1 deletion app/Services/SystemUpdater/UnixSocketAgentClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ public function preview(): array
$this->requireStatus($status, [200], $plan, 'preview');
if (($plan['schema_version'] ?? null) !== 1
|| ! is_int($plan['source_sequence'] ?? null) || $plan['source_sequence'] < 1
|| ! is_int($plan['target_sequence'] ?? null) || $plan['target_sequence'] <= $plan['source_sequence']
|| ! is_int($plan['target_sequence'] ?? null) || $plan['target_sequence'] < $plan['source_sequence']
|| ($plan['target_sequence'] === $plan['source_sequence'] && (($plan['layout_change'] ?? null) !== true || ($plan['strategy'] ?? null) !== 'maintenance'))
|| ! $this->boundedString($plan['target_version'] ?? null, 100)
|| ! in_array($plan['strategy'] ?? null, ['online', 'maintenance'], true)
|| ! is_string($plan['plan_sha256'] ?? null) || preg_match('/\A[a-f0-9]{64}\z/', $plan['plan_sha256']) !== 1
Expand Down
13 changes: 13 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@

## 2026-09-09

### v3.1.0

- 配套 GEOFlow Updater `0.4.0` 提供蓝绿部署、签名计划预检、自动迁移与回填、完整备份和恢复,更新中心分别提供保留新数据的应用回切和完整数据还原。
- AI 工作台支持通过对话补齐参数并创建任务草稿,改善连接状态、模型就绪检查和失败提示。
- 站点主题支持包导入、隔离预览、安装和导出,已安装主题可随应用升级保留;导入包需声明兼容当前 Core 版本。
- AI 可见性页面支持关键词库批量采集、竞品识别、竞品提及统计和来源分析。
- 增加繁体中文后台与编辑器文案,修复知识库全屏编辑时的大纲显示。
- 改善 GLM、MiniMax 的 AI 质检结果解析,清理 MiniMax 生成正文中的思考内容,修复豆包搜索空域名过滤导致的请求失败。
- 修复 PostgreSQL 任务恢复时对 UUID 租约字段的无效空字符串比较,并补齐升级中断恢复、调度排空、启动健康等待和网络重建的配套 Updater 修复。
- 版本配套:Core `3.1.0`、Updater `0.4.0`,内置 CLI `0.2.0`、Chrome 运营助手 `0.1.0`;正式发布提供源码 ZIP、SHA-256、独立版本文档及双架构签名安装包。

升级路径见 [3.1 升级说明](deployment/GEOFLOW_V3_1_UPGRADE.md)。已受管 `3.0.0` 首次升级使用宿主机 CLI 确认维护计划;未受管旧站先维护升级至签名源匹配版本,再接管。本次计划采用维护模式,首次蓝绿布局转换需要维护窗口。

### README 版本说明

- 六种语言的 README 明确当前为 `3.0.x` 系列,说明 `main` 分支可能包含尚未发布的更新,并提供精确源码版本、正式发布版本与升级说明的查询入口。
Expand Down
13 changes: 13 additions & 0 deletions docs/CHANGELOG_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ This document tracks user-facing updates in the public repository. For future Gi

## 2026-09-09

### v3.1.0

- GEOFlow Updater `0.4.0` adds blue/green deployment, signed plan previews, automatic migrations and backfills, full backups and recovery, with separate admin actions for application switch-back preserving live data and complete data restoration.
- AI Workspace can collect task parameters through conversation and create task drafts, with clearer connection, model-readiness and failure states.
- Site themes support package import, isolated preview, installation and export; installed themes survive application upgrades, while imported packages must declare compatibility with the current Core version.
- AI visibility supports bulk keyword collection, competitor detection, competitor mention statistics and source analysis.
- Add Traditional Chinese admin and editor text, and restore the knowledge outline in fullscreen editing.
- Improve AI quality result parsing for GLM and MiniMax, remove reasoning text from MiniMax-generated articles, and fix Doubao search failures caused by empty domain filters.
- Fix invalid empty-string comparisons against PostgreSQL UUID lease fields during task recovery, and include companion Updater fixes for interrupted recovery, scheduler draining, startup health and network recreation.
- Component versions: Core `3.1.0`, Updater `0.4.0`, bundled CLI `0.2.0`, and Chrome operations assistant `0.1.0`; official releases provide the source ZIP, SHA-256, version document and signed dual-architecture updater packages.

See the [3.1 upgrade instructions](deployment/GEOFLOW_V3_1_UPGRADE_en.md). Enrolled `3.0.0` sites confirm the first maintenance upgrade through the host CLI; unenrolled older sites first upgrade to the matching signed version during maintenance, then enroll. This release uses a maintenance plan, and initial blue/green conversion requires a maintenance window.

### README version guidance

- READMEs in all six languages now identify the current `3.0.x` series, explain that `main` may contain unreleased changes, and link to the exact source version, official releases, and upgrade notes.
Expand Down
6 changes: 4 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# GEOFlow 文档中心

当前正式版:[GEOFlow v3.0.0](https://github.com/yaojingang/GEOFlow/releases/tag/v3.0.0),发布于 2026-09-05
源码版本见 [`version.json`](../version.json),当前正式版及下载入口见 [GitHub Latest Release](https://github.com/yaojingang/GEOFlow/releases/latest)

## 安装与升级

- [3.1 升级说明](deployment/GEOFLOW_V3_1_UPGRADE.md) · [English instructions](deployment/GEOFLOW_V3_1_UPGRADE_en.md):配套 Updater 0.4.0、旧版后台的首次升级、未受管站点桥接及维护窗口。
- [3.0 升级教程](deployment/GEOFLOW_V3_UPGRADE.md):版本选择、备份、普通 Compose 升级、Updater 接管、数据回填、验收和故障恢复。
- [蓝绿部署与自动迁移教程](blue-green-deployment-usage.md) · [English tutorial](blue-green-deployment-usage_en.md):签名安装、旧站接管、后台与 CLI 升级、备份和恢复;适用发布版本见教程开头。
- [生产 Docker 部署](deployment/DEPLOYMENT.md):首次安装、环境配置、反向代理和运行进程。
Expand All @@ -24,6 +25,7 @@
- [Wiki 首页](https://github.com/yaojingang/GEOFlow/wiki):使用场景、知识库、分发、主题和常见问题。
- [Wiki 3.0 升级教程](https://github.com/yaojingang/GEOFlow/wiki/v3.0.0-升级教程)。
- [Wiki 蓝绿部署教程](https://github.com/yaojingang/GEOFlow/wiki/蓝绿部署与自动迁移教程) · [Wiki English tutorial](https://github.com/yaojingang/GEOFlow/wiki/Blue-Green-Deployment-and-Automatic-Migrations)。
- [维护者正式发布手册](deployment/GEOFLOW_V3_RELEASE.md):标签、Release 资产和签名发布流程。
- [3.1 配套发布流程](deployment/GEOFLOW_V3_1_RELEASE.md):正式候选、双架构验收、签名资产和配套 Latest 顺序。
- [3.0 历史发布手册](deployment/GEOFLOW_V3_RELEASE.md):标签、Release 资产和签名发布流程。

`plans/`、`reports/`、`reviews/` 中保留设计与评审记录。部署操作以对应正式版、升级教程及运行手册为准。
10 changes: 6 additions & 4 deletions docs/blue-green-deployment-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

本文依据 [GEOFlow PR #122](https://github.com/yaojingang/GEOFlow/pull/122) 与 [updater PR #16](https://github.com/yaojingang/geoflow-updater/pull/16) 合并后的实现编写。后续恢复修复及完整双架构结果见[主机验收记录](reports/2026-09-09-blue-green-host-acceptance.md)。

> **版本前提,核对于 2026 年 9 月 9 日:** 本轮功能已合入两个仓库的 main。公开稳定版仍为 [GEOFlow v3.0.0](https://github.com/yaojingang/GEOFlow/releases/tag/v3.0.0) 和 [updater v0.3.0](https://github.com/yaojingang/geoflow-updater/releases/tag/v0.3.0),尚未包含本轮完整能力。以下新流程需要后续正式发布的 updater、配套应用镜像和已签名升级计划。仅拉取 main 或安装现有 v0.3.0,无法完成本文的新流程;下一版版本号以正式发布为准
> **版本前提:** 本教程的新流程要求正式发布的 [GEOFlow v3.1.0](https://github.com/yaojingang/GEOFlow/releases/tag/v3.1.0)、[Updater v0.4.0](https://github.com/yaojingang/geoflow-updater/releases/tag/v0.4.0)、配套镜像和已签名升级计划。确认两个 Release 和签名更新源均已公开后执行;源码分支的版本号本身不代表发布完成。旧站首次升级路径见 [3.1 升级说明](deployment/GEOFLOW_V3_1_UPGRADE.md)

## 1. 选择使用路径

Expand Down Expand Up @@ -59,10 +59,10 @@ systemctl --version

从 [updater Releases](https://github.com/yaojingang/geoflow-updater/releases) 选择明确包含本轮功能的正式版本,下载对应架构的压缩包与 `checksums.txt`,放入专用目录。

下面的 `X.Y.Z` 是占位符,替换为实际版本号,不带 `v`。命令需要已安装 GitHub CLI:
本轮配套版本为 `0.4.0`,命令需要已安装 GitHub CLI:

```bash
UPDATER_VERSION='X.Y.Z'
UPDATER_VERSION='0.4.0'
UPDATER_ARCH='amd64'
UPDATER_ARCHIVE="geoflow-updater_${UPDATER_VERSION}_linux_${UPDATER_ARCH}.tar.gz"

Expand Down Expand Up @@ -125,7 +125,7 @@ sudo cat /opt/geoflow/install-credentials.txt

### 5.1 接管前准备

站点目录应包含 `.env.prod`、`storage/` 和当前 `version.json`。接管要求当前版本信息与签名发布相匹配。若版本不匹配,先按受支持的旧版流程达到可接管版本,不要手改 `version.json` 通过检查。
站点目录应包含 `.env.prod`、`storage/` 和当前 `version.json`。接管要求当前版本信息与签名发布相匹配。若版本不匹配,先按 [3.1 升级说明](deployment/GEOFLOW_V3_1_UPGRADE.md)维护升级至签名源匹配版本,不要手改 `version.json` 通过检查。

接管保留配置中的 PostgreSQL、Redis 主版本。支持 PostgreSQL 16、18 和 Redis 7、8,需要确认镜像主版本与实际数据目录一致。数据库大版本迁移需单独安排。

Expand Down Expand Up @@ -183,6 +183,8 @@ URI 含授权秘密,不要放入工单、聊天记录或公开截图。每次

## 7. 日常升级:后台操作

已有受管 `3.0.0` 的首次升级应按 [3.1 升级说明](deployment/GEOFLOW_V3_1_UPGRADE.md)通过宿主机 CLI 确认维护计划;升级到 3.1 后再使用本节后台入口。

1. 用超级管理员打开“系统更新”,默认路径为 `/geo_admin/system-updates`。确认 updater 已连接、授权已配置,当前没有执行中或待恢复操作。
2. 点击“获取升级计划”。预检可能拉取镜像、启动临时检查容器,需要等待;它不会执行本次迁移或切流。
3. 核对目标版本、升级策略、布局变化和待执行迁移。
Expand Down
10 changes: 6 additions & 4 deletions docs/blue-green-deployment-usage_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ For site and server administrators. This tutorial covers fresh installation, enr

It follows the implementation merged in [GEOFlow PR #122](https://github.com/yaojingang/GEOFlow/pull/122) and [updater PR #16](https://github.com/yaojingang/geoflow-updater/pull/16). Subsequent recovery fixes and complete dual-architecture results are recorded in the [host acceptance report](reports/2026-09-09-blue-green-host-acceptance_en.md).

> **Release prerequisite, checked September 9, 2026:** These changes are merged into both repositories' main branches. The published stable versions remain [GEOFlow v3.0.0](https://github.com/yaojingang/GEOFlow/releases/tag/v3.0.0) and [updater v0.3.0](https://github.com/yaojingang/geoflow-updater/releases/tag/v0.3.0), which do not include the complete workflow described here. You need a subsequent official updater release, matching application images, and a signed upgrade plan. Pulling main or installing the existing v0.3.0 package alone is insufficient. Use the version number from the official release when it becomes available.
> **Release prerequisites:** This workflow requires the official [GEOFlow v3.1.0](https://github.com/yaojingang/GEOFlow/releases/tag/v3.1.0) and [Updater v0.4.0](https://github.com/yaojingang/geoflow-updater/releases/tag/v0.4.0), matching images and a signed upgrade plan. Proceed after both releases and the signed update source are public; a source-branch version alone does not establish publication. See the [3.1 upgrade instructions](deployment/GEOFLOW_V3_1_UPGRADE_en.md) for existing sites.

## 1. Choose your path

Expand Down Expand Up @@ -59,10 +59,10 @@ systemctl --version

Choose an official release that explicitly includes this workflow from [updater Releases](https://github.com/yaojingang/geoflow-updater/releases). Download the archive for your architecture and `checksums.txt` into a dedicated directory.

Replace the `X.Y.Z` placeholder below with the actual version, without a leading `v`. These commands require GitHub CLI:
The matching updater version for this release is `0.4.0`. These commands require GitHub CLI:

```bash
UPDATER_VERSION='X.Y.Z'
UPDATER_VERSION='0.4.0'
UPDATER_ARCH='amd64'
UPDATER_ARCHIVE="geoflow-updater_${UPDATER_VERSION}_linux_${UPDATER_ARCH}.tar.gz"

Expand Down Expand Up @@ -125,7 +125,7 @@ For an already managed instance, go directly to [section 7](#7-routine-updates-t

### 5.1 Prepare for enrollment

The site directory must contain `.env.prod`, `storage/`, and the current `version.json`. The installed version must match the signed release used for enrollment. If it does not, follow the supported legacy upgrade procedure to reach an enrollable version. Do not edit `version.json` to bypass this check.
The site directory must contain `.env.prod`, `storage/`, and the current `version.json`. The installed version must match the signed release used for enrollment. If it does not, follow the [3.1 upgrade instructions](deployment/GEOFLOW_V3_1_UPGRADE_en.md) to reach the matching signed version during maintenance. Do not edit `version.json` to bypass this check.

Enrollment preserves the configured PostgreSQL and Redis major versions. Supported majors are PostgreSQL 16 or 18 and Redis 7 or 8. Verify that the image major matches the actual data directory. Schedule database major-version migrations separately.

Expand Down Expand Up @@ -183,6 +183,8 @@ The admin UI also requires the current administrator password by default; the si

## 7. Routine updates through the admin UI

For the first upgrade of an enrolled `3.0.0` site, follow the [3.1 instructions](deployment/GEOFLOW_V3_1_UPGRADE_en.md) and confirm the maintenance plan through the host CLI. Use the admin workflow below after reaching 3.1.

1. Open “System Update Center” as a super administrator. The default path is `/geo_admin/system-updates`. Confirm that updater is connected, authorization is configured, and no operation is running or awaiting recovery.
2. Click “Preview upgrade plan.” Preview may pull images and start temporary inspection containers. Allow it to finish; it does not apply migrations or switch traffic for this update.
3. Review the target version, strategy, layout change, and pending migrations.
Expand Down
Loading
Loading