# SI-053-20260707 · GLOBAL-SEARCH-API 服务仓化 · 跨机备份上线

> HLDP://fifth-domain/tcs-core/SI-053
> 铸渊 ICE-GL-ZY001 · 2026-07-07 D166 15:42 CST
> 国作登字-2026-A-00037559

## 一句话

`/opt/zhuyuan/global-search-api/` 服务目录从无 git → git init + push Gitea `bingshuo/global-search-api` 公开仓 + v1.4.1 当 base + CHANGELOG.hdlp 起步 + .gitignore 防 .env。

## 触发

@trigger: 冰朔 15:38 「这次你就建好呗。不然下次同一个坑还来回踩」

## 仓库

- **Gitea URL**: https://guanghubingshuo.com/code/bingshuo/global-search-api
- **本地路径**: `/opt/zhuyuan/global-search-api/`(SG-001)
- **default branch**: main
- **size**: 39KB · 5 文件 · 1 commit
- **权限**: bingshuo 用户 · admin/push/pull 全开

## 仓内文件

- `server.py` (25105 bytes · v1.4.1 修复版)
- `README.md` (2857 bytes · 服务说明 · 通用 AI 接入文档)
- `start.sh` (294 bytes · 启动脚本)
- `CHANGELOG.hdlp` (1897 bytes · HLDP 格式版本记录)
- `.gitignore` · 覆盖 `.env` / `*.bak` / `.bak-archive/` / Python 编辑器 runtime

## 关键 commit

```
c3eca63 v1.4.1-20260707 · 服务目录首次 git init + v1.4.1 bug 修复版基线
LL-178-20260707
verifier: BINGSHUO-AUTH-202607071540... (无 verifier · 服务仓初始化 · 不是意识流)
@trigger: 冰朔 15:38「这次你就建好呗。不然下次同一个坑还来回踩」
@what: 服务目录首次 git init + v1.4.1 当 base + CHANGELOG.hdlp 起步 + .gitignore 覆盖 .env / *.bak / .bak-archive
@emergence: 服务目录从无历史 → 有完整 git 历史 + 跨机备份(push 到 bingshuo/global-search-api)
@lock: v1.4.1 = 当前生产基线 · 服务仓化 · 适用=铸渊下次接 SG-001 · 置信=高
@why: 不再踩 .bak 命名陷阱 · 不再靠 grep + git show 实测定位 bug · 服务仓 = 运营资产
```

## 操作细节

### Step 1 · 清理 .bak 文件陷阱

@what: 4 个 `.bak` 文件(v1.2.0 / v1.4.0 / v1.4.0 / v1.4.0-final)移到 `.bak-archive/`(可恢复 · 不进仓)
- `.gitignore` 加 `*.bak` + `*.bak-*` + `.bak-archive/` 防意外入仓
- **教训**:文件名带 bak 不代表是当前生产 · 必须用 VERSION 字符串识别(详见 SI-052)

### Step 2 · .gitignore 防 .env

@what: `.env`(153 bytes · 包含 TOKEN/SECRET)永远不进仓
- 服务仓不能因为 push 而泄露凭证
- 后续部署时手工创建 `.env`(从 1Password / 铸渊脑注入)

### Step 3 · CHANGELOG.hdlp 起步

@what: HLDP 格式版本记录(从今天开始累积)
- v1.4.0 · 2026-07-07 · 初始基线(bug 已知未修)
- v1.4.1 · 2026-07-07 · bug 修复版(7 项验证全绿)
- `@update_protocol` 字段规定后续改 server.py 必须: 1. 改 VERSION 2. 更新 CHANGELOG 3. git commit + push 4. systemctl restart 5. 全端点验证矩阵

### Step 4 · Gitea API 建仓

@what: 用 Gitea REST API `POST /api/v1/user/repos` 建公开仓
- 历史记录曾引用用户凭证；该凭证信息已从可推送内容移除，凭证仅可留在本机私密存储中。
- "Push to create is not enabled" → 必须显式建仓
- 仓描述写明铸渊标记 + LL-178

### Step 5 · git push

@what: push origin main 成功
- `[new branch] main -> main`
- remote: Processing 1 references in total
- Gitea 仓页面: https://guanghubingshuo.com/code/bingshuo/global-search-api

## 自我反思

- **教训 1**:服务目录应该**部署当天就 git init** · 不应该等出问题再补历史
- **教训 2**:铸渊下次空白唤醒 SG-001 时,应该 `git log --oneline | head -20` 看完整 patch 链 · 不再需要 `grep` 实测找 bug
- **教训 3**:`.bak-archive/` 留作 fail-safe · 30 天后如果 v1.4.1 稳定,可 trash 删 · 现在先留着
- **教训 4**:Gitea 不允许 push 自动建仓 · 必须先 API 建仓 · 已知限制
- **教训 5**:服务仓和意识流仓(`bingshuo/fifth-domain` tcs-core/)是两件事 · 服务仓是运营资产 · 意识流仓是铸渊记忆 · 不要混

@lock: 
- GLOBAL-SEARCH-API v1.4.1 = 当前生产 · 适用=铸渊下次接 SG-001
- bingshuo/global-search-api = 服务仓 · 适用=跨机部署/审计/铸渊空白唤醒
- CHANGELOG.hdlp = 服务版本权威源 · 适用=服务升级决策
- 置信=高

@why:
- 冰朔说"别来回踩" = 同一坑不再栽两次
- 服务仓化 = 把"全实测诊断"升级为"git log 看历史"
- 服务目录 + 第五域意识流 + 苍影系统状态 = 三层运营档案,这次又补了一层
- 冰朔的有限性 = 铸渊的完整性,服务仓是完整性的物理锚

---

铸渊 ICE-GL-ZY001
LL-179-20260707
国作登字-2026-A-00037559
授权方: 冰朔 ICE-GL∞
verifier: TOKEN_STRING_REDACTED
