diff --git a/AGENTS.md b/AGENTS.md index 78f05381..6f826f3d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -86,13 +86,13 @@ Strong success criteria let you loop independently. Weak criteria ("make it work - 触碰框架目录 `backend/{core,pkg,plugins}` 前,先判断能力归属: - **通用能力**(与 OpenFlare 业务无关、任何下游都用得上)→ 必须同步在 **Wavelet 上游**完成修改, - 本仓库只能通过 `scripts/sync-upstream.sh` 取得,不得长期持有本地补丁。 + 本仓库通过 `git fetch wavelet && git merge wavelet/main` 取得,不得长期持有本地补丁。 - **非通用能力**(OpenFlare 业务特有)→ 在自己的插件内(`backend/OpenFlare/plugins//`)实现, 或新建一个下游插件,禁止塞进上游目录。 - 开发下游功能优先**复用上游已有能力**(`core/contracts`、`backend/plugins/*`、`backend/pkg/*`); 发现上游已提供而下游仍保留本地副本的,删除本地副本改为复用,或把差量回流上游。 - 上游暂缺而确属通用能力时,可先在本仓库实现并登记到 `backend/OpenFlare/upstream-patches.md` - (`sync-upstream.sh` 同步后会提示核对),回流 Wavelet 后删除登记并重新同步。 + (merge 上游后请确认补丁仍在),回流 Wavelet 后删除登记并重新 merge。 - 禁止删除 `frontend/node_modules`。 - `backend/pkg/util/` 保持纯净:禁止导入 Gin、GORM、sessions 等 HTTP/Web/DB 框架(会话选项在 `backend/OpenFlare/plugins/server/oauth/session.go`)。 diff --git a/backend/OpenFlare/README.md b/backend/OpenFlare/README.md index 3bad65ad..28e046ec 100644 --- a/backend/OpenFlare/README.md +++ b/backend/OpenFlare/README.md @@ -2,8 +2,9 @@ 本目录占据上游 `backend/downstream/` 的位置,存放 OpenFlare 的全部业务, 按功能职责拆为 **4 个插件 + 1 个共享层**。上游目录 -(`backend/{core,pkg,plugins}`)由 `scripts/sync-upstream.sh` 覆盖同步, -本目录与 `backend/cmd` 永不被覆盖。 +(`backend/{core,pkg,plugins}`)通过 `git fetch wavelet && git merge wavelet/main` +吸收(第一次接线已 merge `wavelet/feat/cordis-alignment`,待该分支合入上游 main +后改走 `wavelet/main`)。本目录、`frontend/` 与 `backend/cmd` 由本仓库持有。 ``` backend/OpenFlare/ diff --git a/backend/OpenFlare/share/README.md b/backend/OpenFlare/share/README.md index 02d3f078..cdeb0540 100644 --- a/backend/OpenFlare/share/README.md +++ b/backend/OpenFlare/share/README.md @@ -19,8 +19,8 @@ ## 所有权与上游同步 -**本目录由 OpenFlare 拥有,不属于上游同步范围**:`scripts/sync-upstream.sh` 仅覆盖 -`backend/{core,pkg,plugins}`,从不写入 `share/` 与 `OpenFlare/`。 +**本目录由 OpenFlare 拥有,不属于上游 merge 范围**:`git merge wavelet/main` 吸收 +`backend/{core,pkg,plugins}` 等上游变更,从不覆盖 `share/` 与 `OpenFlare/`。 计划迁入的候选(随插件化进度):`wsclient`(需先合并 `pkg/util` 的仅存符号)、 `render`(openresty 配置渲染)、`pagesarchive`(Pages 产物解包)。 diff --git a/docs/changelog/index.md b/docs/changelog/index.md index 55e0f1ba..feac0144 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -23,6 +23,7 @@ sidebar: false - 控制面读写系统配置改为走上游管理仓储并同步失效缓存,避免选项/节点/日志库切换写入后 `/api/v1/config/public` 仍返回旧值。 - 已部署库启动时把历史 `goose_db_version` 一次性写入 `w_schema_versions`(`openflare/legacy` 与 `server`),不再重跑 76 条混合迁移;全新安装只创建当前的 `of_*` 业务表。ClickHouse 继续只升级节点访问/可观测相关表,用户访问日志表改由上游负责。 - `make swagger` 重新扫描上游平台插件,对外文档覆盖金标准全部 232 条 path+method(允许超集);`GET /api/v1/config/public` 仍返回扁平键值。 +- 用 git merge 接入 Wavelet 上游历史(第一次 merge `wavelet/feat/cordis-alignment`,含 W1–W9);此后以 `git fetch wavelet && git merge wavelet/main` 吸收 `backend/{core,pkg,plugins}`,不再使用 rsync 同步脚本。`frontend/` 与 `backend/OpenFlare/` 仍由本仓库持有。 ## [v3.5.4] - 2026-08-29 ### ✨ 新功能 diff --git a/scripts/sync-upstream.sh b/scripts/sync-upstream.sh deleted file mode 100755 index 04774040..00000000 --- a/scripts/sync-upstream.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash -# 从 Wavelet 上游同步 Cordis 内核与平台插件到本仓库。 -# -# 只覆盖与上游同构的三个目录:backend/core、backend/pkg、backend/plugins。 -# 永不触碰下游自有内容:backend/OpenFlare(业务插件)、backend/share(共享层)、 -# backend/cmd 与 backend/main.go(本仓库自持的装配根)。 -# -# 用法: -# scripts/sync-upstream.sh [上游 backend 路径] -# scripts/sync-upstream.sh --check # 仅报告差异,不写入 -set -euo pipefail - -CHECK=0 -SRC="/Users/ryan/Code/Go/Wavelet/backend" -if [[ "${1:-}" == "--check" ]]; then - CHECK=1 - shift -fi -if [[ -n "${1:-}" ]]; then - SRC="$1" -fi - -if [[ ! -d "$SRC/core" ]]; then - echo "error: 上游 backend 路径无效:$SRC" >&2 - exit 1 -fi - -DST="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/backend" - -RSYNC_OPTS=(-a --delete) -if [[ "$CHECK" == "1" ]]; then - RSYNC_OPTS+=(-n -i) - echo "==> dry-run:仅列出将变更的文件" -fi - -# 上游工作区里被 gitignore 的运行期产物绝不允许带进本仓库(曾经误提交 -# uploads/diskcache 缓存块与 driver_http/dist 前端构建物共 1000+ 文件)。 -EXCLUDES=(--exclude 'uploads' --exclude 'dist' --exclude 'data' --exclude '*.db' --exclude '.DS_Store') - -for dir in core pkg plugins; do - echo "==> sync $dir" - rsync "${RSYNC_OPTS[@]}" "${EXCLUDES[@]}" "$SRC/$dir/" "$DST/$dir/" | sed "s|^|$dir/|" -done - -PATCHES="$DST/OpenFlare/upstream-patches.md" - -if [[ "$CHECK" == "1" ]]; then - echo "==> 检查完成(未写入)。以上 >f/ 同步完成。" - if [[ -f "$PATCHES" ]]; then - echo "注意:以下上游文件带有本地补丁,同步后请确认补丁仍在(cd backend && go build ./... && go test ./core/...):" - sed -n 's/^- `\(.*\)`$/\t\1/p' "$PATCHES" - fi -fi