diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 980cd753..6fe5b34b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -226,6 +226,28 @@ jobs:
needs: [go, race, cross, gui, csrc, docs]
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
timeout-minutes: 10
+ env:
+ # ══════════════════════════════════════════════════════════════════
+ # ★★ gitcode 镜像目标仓名 —— **本 job 的唯一定义处**。
+ # 改 gitcode 仓名时只改这一行;下面所有消费点都走 ${GC_REPO}。
+ # 与 release.yml 的 sync-gitcode 保持同值(两个 workflow 各自独立
+ # 定义:改的时候两个文件都要改,但每个文件内部只有一个定义处)。
+ #
+ # 取值依据(实测 2026-10-21,直连不带代理,非推测):
+ # https://gitcode.com/JianFeeeee/HologramAgent → 200 ← 当前用这个
+ # https://gitcode.com/JianFeeeee/HomeAgent → 301 ← 旧名,跳转到上面
+ # https://gitcode.com/JianFeeeee/hologramagentsdk → 200(SDK 仓,另一对象)
+ # https://gitcode.com/JianFeeeee/homeagentsdk → 404
+ #
+ # 背景:gitcode 侧镜像仓已由 HomeAgent 改名为 HologramAgent(与 GitHub
+ # 主仓同名)。旧地址仍 301 跳转,跟随后也能到达,但走重定向 ⇒ 别再用它。
+ # 判定两仓同一对象:两地址 git ls-remote 的 refs 列表 md5 相同。
+ #
+ # ⚠ 失败面:本 job 的 needs 是 [go, race, cross, gui, csrc, docs]。
+ # 前置检查 exit 1 ⇒ 本 job 红 ⇒ **main 的整条 CI 红**(不是只红一格)。
+ # release.yml 的 sync-gitcode 只红在镜像同步这一格(GitHub 侧产物已发)。
+ # ══════════════════════════════════════════════════════════════════
+ GC_REPO: JianFeeeee/HologramAgent
steps:
- id: tok
name: 检查 gitcode 凭据
@@ -258,9 +280,7 @@ jobs:
if: steps.tok.outputs.ok == 'true'
env:
GC_TOKEN: ${{ secrets.GITCODE_TOKEN }}
- # 显式传环境变量(而不是 shell 局部变量):脚本的默认值与这里
- # 相同,但写在 env 里才是**真的传下去**,改仓名时不用改两处逻辑。
- GC_REPO: JianFeeeee/HologramAgent
+ # GC_REPO 来自 job 级 env(唯一定义处),此处不重复字面量。
run: |
set -euo pipefail
bash .github/scripts/check-gitcode-repo.sh
@@ -271,6 +291,7 @@ jobs:
run: |
set -euo pipefail
GC_URL="https://JianFeeeee:${GC_TOKEN}@gitcode.com"
- git push "${GC_URL}/JianFeeeee/HologramAgent.git" \
+ # GC_REPO 来自 job 级 env(唯一定义处),此处不重复字面量。
+ git push "${GC_URL}/${GC_REPO}.git" \
"refs/heads/main:refs/heads/main"
echo " gitcode/main 已快进到 ${GITHUB_SHA}"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 2a8a2e20..3806e5b0 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -352,6 +352,27 @@ jobs:
if: needs.prepare.outputs.exists == 'false'
runs-on: ubuntu-latest
timeout-minutes: 60
+ env:
+ # ══════════════════════════════════════════════════════════════════
+ # ★★ gitcode 镜像目标仓名 —— **本 job 的唯一定义处**。
+ # 改 gitcode 仓名时只改这一行;下面所有消费点都走 ${GC_REPO}。
+ # 与 ci.yml 的 sync-gitcode-main 保持同值(两个 workflow 各自独立
+ # 定义:改的时候两个文件都要改,但每个文件内部只有一个定义处)。
+ #
+ # 取值依据(实测 2026-10-21,直连不带代理,非推测):
+ # https://gitcode.com/JianFeeeee/HologramAgent → 200 ← 当前用这个
+ # https://gitcode.com/JianFeeeee/HomeAgent → 301 ← 旧名,跳转到上面
+ # https://gitcode.com/JianFeeeee/hologramagentsdk → 200(SDK 仓,另一对象)
+ # https://gitcode.com/JianFeeeee/homeagentsdk → 404
+ #
+ # 背景:gitcode 侧镜像仓已由 HomeAgent 改名为 HologramAgent(与 GitHub
+ # 主仓同名)。旧地址仍 301 跳转,跟随后也能到达,但走重定向 ⇒ 别再用它。
+ # 判定两仓同一对象:两地址 git ls-remote 的 refs 列表 md5 相同。
+ #
+ # ⚠ 失败面(与 ci.yml 不同,别搞混):本 job 只红在镜像同步这一格,
+ # GitHub 侧 release 产物此时已经发出去了;ci.yml 那个会红整条 main CI。
+ # ══════════════════════════════════════════════════════════════════
+ GC_REPO: JianFeeeee/HologramAgent
steps:
- uses: actions/checkout@v7
- id: tok
@@ -381,9 +402,7 @@ jobs:
if: steps.tok.outputs.ok == 'true'
env:
GC_TOKEN: ${{ secrets.GITCODE_TOKEN }}
- # 显式传环境变量(而不是 shell 局部变量):脚本的默认值与这里
- # 相同,但写在 env 里才是**真的传下去**,改仓名时不用改两处逻辑。
- GC_REPO: JianFeeeee/HologramAgent
+ # GC_REPO 来自 job 级 env(唯一定义处),此处不重复字面量。
run: |
set -euo pipefail
bash .github/scripts/check-gitcode-repo.sh
@@ -394,7 +413,7 @@ jobs:
TAG: ${{ needs.prepare.outputs.tag }}
run: |
set -euo pipefail
- GC_REPO="JianFeeeee/HologramAgent"
+ # GC_REPO 来自 job 级 env(唯一定义处),此处不重复字面量。
GC_URL="https://JianFeeeee:${GC_TOKEN}@gitcode.com"
# 1) 推 tag(附件上传前 release 条目必须先存在)
git config user.name "github-actions[bot]"
@@ -414,5 +433,5 @@ jobs:
# 不传文件名时它扫描 ASSET_DIR 并按后缀识别发布产物 —— 这里正合适
# (.deb/.tar.gz/SHA256SUMS 都在白名单里)。
# 不要传 "./x" 或 "dist/x":那会拼成 dist/dist/x。
- ASSET_DIR=. GITCODE_REPO=JianFeeeee/HologramAgent \
+ ASSET_DIR=. GITCODE_REPO="${GC_REPO}" \
python3 ../deploy/scripts/upload_assets.py "$TAG" "$GC_TOKEN"
diff --git a/README.md b/README.md
index 908c6388..f929346b 100644
--- a/README.md
+++ b/README.md
@@ -240,7 +240,7 @@ internal/
├── config/ SQLite 配置中心
├── events/ 事件总线
└── internal/lua/adapters/ 10 个 LLM 协议适配器脚本
-外部插件开发见 [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 仓库,使用 `hmapdev` 工具链开发,参考 `example/` 目录下的 Go 和 Lua 示例
+外部插件开发见 [homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) 仓库,使用 `hmapdev` 工具链开发,参考 `example/` 目录下的 Go 和 Lua 示例
```
## 项目状态
@@ -326,7 +326,7 @@ internal/
**v0.9.0** — C ABI v2:外部插件 Stage 回调支持写回(`invoke_stage` 增加 result 输出,插件可在 OnInput/AfterToolcall/PostAction 修改 RawMessage/LLMText/ToolResults 等并同步回内核),ABI 版本随内核 minor 对齐(v0.9.x → ABIVersion=2,`version_min=1` 向后兼容旧插件)。同步修复工具循环 zen 兼容补位误伤首轮 system 上下文的问题。配套 SDK 提供增强版 sanitizer 示例(坏 UTF-8/U+FFFD/ANSI 转义全链路清洗)。**该 ABI 已随 v1.0.0 退场。**
-**v0.8.0** — 核心可用,插件系统增强。内置 20+ 插件,外部插件开发见 [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 仓库。新增输入通道 `NoMemory`/`Cleaner`、`ChannelDef`、插件禁用/启用系统(CLI + WebUI),`plugindev` 工具链完成 C ABI `ChannelDef` 传递。
+**v0.8.0** — 核心可用,插件系统增强。内置 20+ 插件,外部插件开发见 [homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) 仓库。新增输入通道 `NoMemory`/`Cleaner`、`ChannelDef`、插件禁用/启用系统(CLI + WebUI),`plugindev` 工具链完成 C ABI `ChannelDef` 传递。
## 文档
@@ -347,7 +347,7 @@ internal/
## 下载
-[Releases](https://github.com/JianFeeeee/HomeAgent/releases) 提供三种变体:
+[Releases](https://github.com/JianFeeeee/HologramAgent/releases) 提供三种变体:
| 变体 | 内容 | 适用 |
| --- | --- | --- |
@@ -385,7 +385,7 @@ make install # 安装到系统
**通过网络提供服务时也要向使用者提供源码**(§13 Remote Network Interaction)。
即:任何人把改过的 HologramAgent 对外提供网络服务,都必须让该服务的使用者拿到改动后的源码。
-插件与本项目通过公开 [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 静态链接
+插件与本项目通过公开 [homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) 静态链接
(SDK 源码会进入插件二进制),但那个仓**以 MIT 发布**——MIT 是宽松许可,拿到授权的代码不继承
本项目的 AGPL。因此**外部插件不是本项目的衍生作品**,作者可自行选择许可(含闭源、商业、私有),
既不必同许可、也不受 §13 网络条款约束。第三方插件生态的安全与活跃正建立在这条之上。
diff --git a/README_EN.md b/README_EN.md
index 99fa5c32..223d2a68 100644
--- a/README_EN.md
+++ b/README_EN.md
@@ -221,7 +221,7 @@ internal/
├── config/ SQLite config center
├── events/ Event bus
└── internal/lua/adapters/ 10 LLM protocol adapter scripts
-External plugin development: see [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) repo, use `hmapdev` toolchain, refer to Go and Lua examples in `example/`
+External plugin development: see [homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) repo, use `hmapdev` toolchain, refer to Go and Lua examples in `example/`
```
## Project Status
@@ -346,7 +346,7 @@ semantic memory; the blob is only a cache that capacity GC may evict.
**v0.9.0** — C ABI v2: external plugin Stage callbacks can now write back (`invoke_stage` gained a result out-param; plugins may mutate RawMessage/LLMText/ToolResults etc. in OnInput/AfterToolcall/PostAction and have them synced to the core). ABI version now tracks core minor releases (v0.9.x → ABIVersion=2, `version_min=1` keeps old plugins loadable). Also fixes the tool-loop zen-compat placeholder that wrongly fired on first-turn system context tail. The SDK ships an enhanced sanitizer example (bad-UTF-8 / U+FFFD / ANSI-escape scrub across the whole pipeline). **This ABI retired with v1.0.0.**
-**v0.8.0** — Core is functional, plugin system enhanced. 20+ built-in plugins. External plugin development via [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) repo. Added input channel `NoMemory`/`Cleaner`, `ChannelDef`, plugin disable/enable system (CLI + WebUI), `plugindev` toolchain C ABI `ChannelDef` support.
+**v0.8.0** — Core is functional, plugin system enhanced. 20+ built-in plugins. External plugin development via [homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) repo. Added input channel `NoMemory`/`Cleaner`, `ChannelDef`, plugin disable/enable system (CLI + WebUI), `plugindev` toolchain C ABI `ChannelDef` support.
## Documentation
@@ -367,7 +367,7 @@ semantic memory; the blob is only a cache that capacity GC may evict.
## Downloads
-[Releases](https://github.com/JianFeeeee/HomeAgent/releases) ship three variants:
+[Releases](https://github.com/JianFeeeee/HologramAgent/releases) ship three variants:
| Variant | Contents | For |
| --- | --- | --- |
@@ -408,7 +408,7 @@ with it over a network** (§13, Remote Network Interaction). Anyone running a mo
as a network service therefore has to make the modified source available to that service's users.
Plugins are **statically linked** against this project through the public
-[homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) (the SDK source ends up inside the
+[homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) (the SDK source ends up inside the
plugin binary), but that repository is released under **MIT** — a permissive license, so code
received under it does **not** inherit this project's AGPL. External plugins are therefore **not
derivative works of this project**: authors pick their own license (closed-source, commercial or
diff --git a/assets/docs/en/OVERVIEW.md b/assets/docs/en/OVERVIEW.md
index 7dce0fce..b05375a0 100644
--- a/assets/docs/en/OVERVIEW.md
+++ b/assets/docs/en/OVERVIEW.md
@@ -111,5 +111,5 @@ Core functionality is operational. Plugin system and SDK are ready for independe
- Built-in plugins (13): webui / cli / agentcli / cfgmgr / healthcheck / kbtree / multimodal / pluginmgr / clawhubadapter / remotedevice / skillmgr / seemedia / seq
- Criterion: **a plugin stays built-in only if it requires internal-SDK-only capabilities**; everything else ships as an .hmap external plugin (see ARCHITECTURE)
-- External plugin examples ([homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) repo `example/`, both Go and Lua types): qq / files / a2a / ai_image / bili / browser / calendar / editdoc / memo / music / ocr / rss / sanitizer / weather / luademo
+- External plugin examples ([homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) repo `example/`, both Go and Lua types): qq / files / a2a / ai_image / bili / browser / calendar / editdoc / memo / music / ocr / rss / sanitizer / weather / luademo
- Distribution: `.hmap` plugin package format, installable via WebUI
diff --git a/assets/docs/en/PLUGIN_DEV.md b/assets/docs/en/PLUGIN_DEV.md
index a32e3245..6b7973a8 100644
--- a/assets/docs/en/PLUGIN_DEV.md
+++ b/assets/docs/en/PLUGIN_DEV.md
@@ -8,11 +8,11 @@
All external interaction capabilities of HologramAgent comes from plugins. Plugins interact with the kernel through `PluginSDK` (Go API).
-**SDK Repository**: Plugin development tools, template code, and example plugins are hosted in the [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) repository.
+**SDK Repository**: Plugin development tools, template code, and example plugins are hosted in the [homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) repository.
```bash
git clone https://github.com/JianFeeeee/homeagentsdk.git
-cd homeagent-sdk
+cd homeagentsdk
```
Each plugin implements a three-method interface:
@@ -48,7 +48,7 @@ plugin types, and producing `.hmap` plugin bundles (the tool is named after that
### Installation
```bash
-cd homeagent-sdk/tools/hmapdev
+cd homeagentsdk/tools/hmapdev
go build -o hmapdev
# Add hmapdev to PATH or use directly
# Prebuilt binaries also ship as release assets (hmapdev_linux_amd64, ...)
@@ -738,8 +738,8 @@ internal/plugins/yourplugin/
package yourplugin
import (
- "gitcode.com/JianFeeeee/HomeAgent/internal/plugin"
- sdk "gitcode.com/JianFeeeee/HomeAgent/internal/sdk"
+ "github.com/JianFeeeee/HologramAgent/internal/plugin"
+ sdk "github.com/JianFeeeee/HologramAgent/internal/sdk"
)
func init() {
@@ -777,7 +777,7 @@ Add blank import in `internal/plugins/all.go`:
package plugins
import (
- _ "gitcode.com/JianFeeeee/HomeAgent/internal/plugins/yourplugin"
+ _ "github.com/JianFeeeee/HologramAgent/internal/plugins/yourplugin"
// ... other plugins
)
```
@@ -844,7 +844,7 @@ Internal: records are stored in SQLite `disabled_plugins` table (`name`, `disabl
## 7. Example Plugin Reference
-### SDK Repository Examples (`homeagent-sdk/example/`)
+### SDK Repository Examples (`homeagentsdk/example/`)
| Example | Type | Features |
|---------|------|----------|
@@ -903,4 +903,4 @@ Internal: records are stored in SQLite `disabled_plugins` table (`name`, `disabl
*Want to understand the project goals? See [OVERVIEW.md](OVERVIEW.md).*
*Want to understand the architecture? See [ARCHITECTURE.md](ARCHITECTURE.md).*
-*SDK repository and development tools? See [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk).*
+*SDK repository and development tools? See [homeagentsdk](https://github.com/JianFeeeee/homeagentsdk).*
diff --git a/assets/docs/zh/OVERVIEW.md b/assets/docs/zh/OVERVIEW.md
index 2621112b..2c0a767a 100644
--- a/assets/docs/zh/OVERVIEW.md
+++ b/assets/docs/zh/OVERVIEW.md
@@ -101,5 +101,5 @@ CLI 需要终端面板时,**订阅事件总线**(`EventTerminalOutput` + `Ev
- 内置插件(13 个):webui / cli / agentcli / cfgmgr / healthcheck / kbtree / multimodal / pluginmgr / clawhubadapter / remotedevice / skillmgr / seemedia / seq
- 判定标准:**只有必须使用内部 SDK 能力(公开 SDK 没有的接口面)的插件才内置**,其余一律外置为 .hmap 插件(详见 ARCHITECTURE「内置插件的判定标准」)
-- 外部插件示例([homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 仓库 `example/`,含 Go 和 Lua 两种类型):qq / files / a2a / ai_image / bili / browser / calendar / editdoc / memo / music / ocr / rss / sanitizer / weather / luademo
+- 外部插件示例([homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) 仓库 `example/`,含 Go 和 Lua 两种类型):qq / files / a2a / ai_image / bili / browser / calendar / editdoc / memo / music / ocr / rss / sanitizer / weather / luademo
- 打包分发:`.hmap` 插件包格式,通过 WebUI 安装
diff --git a/assets/docs/zh/PLUGIN_DEV.md b/assets/docs/zh/PLUGIN_DEV.md
index f728847b..1a3f1579 100644
--- a/assets/docs/zh/PLUGIN_DEV.md
+++ b/assets/docs/zh/PLUGIN_DEV.md
@@ -9,11 +9,11 @@
HologramAgent 的所有外部交互能力都来自插件。插件通过 `PluginSDK`(Go API)与内核交互。
**SDK 仓库**:插件开发工具、模板代码和示例插件统一托管在
-[homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 仓库。
+[homeagentsdk](https://github.com/JianFeeeee/homeagentsdk) 仓库。
```bash
git clone https://github.com/JianFeeeee/homeagentsdk.git
-cd homeagent-sdk
+cd homeagentsdk
```
每个插件实现一个三方法接口:
@@ -49,7 +49,7 @@ type Plugin interface {
### 安装
```bash
-cd homeagent-sdk/tools/hmapdev
+cd homeagentsdk/tools/hmapdev
go build -o hmapdev
# 将 hmapdev 加入 PATH 或直接使用
# 也可从 SDK 的 release 附件下载预编译二进制(hmapdev_linux_amd64 等)
@@ -726,8 +726,8 @@ internal/plugins/yourplugin/
package yourplugin
import (
- "gitcode.com/JianFeeeee/HomeAgent/internal/plugin"
- sdk "gitcode.com/JianFeeeee/HomeAgent/internal/sdk"
+ "github.com/JianFeeeee/HologramAgent/internal/plugin"
+ sdk "github.com/JianFeeeee/HologramAgent/internal/sdk"
)
func init() {
@@ -765,7 +765,7 @@ func (p *Plugin) Stop() error {
package plugins
import (
- _ "gitcode.com/JianFeeeee/HomeAgent/internal/plugins/yourplugin"
+ _ "github.com/JianFeeeee/HologramAgent/internal/plugins/yourplugin"
// ... 其他插件
)
```
@@ -830,7 +830,7 @@ pmgr.ReloadPlugins() // 重载所有插件
## 七、示例插件参考
-### SDK 仓库示例(`homeagent-sdk/example/`)
+### SDK 仓库示例(`homeagentsdk/example/`)
| 示例 | 类型 | 特点 |
|------|------|------|
@@ -884,4 +884,4 @@ pmgr.ReloadPlugins() // 重载所有插件
*了解项目整体目标?查看 [OVERVIEW.md](OVERVIEW.md)。*
*了解技术架构?查看 [ARCHITECTURE.md](ARCHITECTURE.md)。*
-*SDK 仓库与开发工具?查看 [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk)。*
+*SDK 仓库与开发工具?查看 [homeagentsdk](https://github.com/JianFeeeee/homeagentsdk)。*
diff --git a/assets/skills/commondev-discipline/SKILL.md b/assets/skills/commondev-discipline/SKILL.md
index 9d665310..952bff6f 100644
--- a/assets/skills/commondev-discipline/SKILL.md
+++ b/assets/skills/commondev-discipline/SKILL.md
@@ -552,7 +552,7 @@ hmapdev sdk current # 当前活跃 SDK 版本(★ 动手前必看)
hmapdev sdk list # 本机已装的所有 SDK 版本
```
-- 核心仓 `/home/program/TrueAgent`(Go module `gitcode.com/JianFeeeee/HomeAgent`)
+- 核心仓 `/home/program/TrueAgent`(Go module `github.com/JianFeeeee/HologramAgent`)
- **SDK 仓** `third_party/homeagent-sdk`(独立 git 仓、独立版本号)
### 33. 开工流程
diff --git a/cmd/gui/package.json b/cmd/gui/package.json
index a4aa3f82..7059aa34 100644
--- a/cmd/gui/package.json
+++ b/cmd/gui/package.json
@@ -2,7 +2,7 @@
"name": "homeagent-gui",
"version": "1.4.0",
"author": "JianFeeeee