Merge branch 'main' of https://github.com/qinfendebingshuo/guanghulab
This commit is contained in:
commit
6eb3d9610a
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"version": "1.0",
|
||||
"description": "冰朔主控问题索引库 — 记录已知问题、根因与排查路由",
|
||||
"updated_at": "2026-03-17T10:24:26.674Z",
|
||||
"updated_at": "2026-03-17T15:56:51.053Z",
|
||||
"issues": [
|
||||
{
|
||||
"id": "BS-001",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# 冰朔主控神经系统 · 核心主控大脑 v1.0
|
||||
|
||||
> 本文件为冰朔主控神经系统的总控脑文件。
|
||||
> 最后编译时间:2026-03-17T10:24:26.675Z
|
||||
> 最后编译时间:2026-03-17T15:56:51.053Z
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -85,7 +85,7 @@
|
|||
|
||||
> 本区块由 master-brain-compiler 自动编译。
|
||||
|
||||
- **编译时间**:2026-03-17T10:24:26.675Z
|
||||
- **编译时间**:2026-03-17T15:56:51.053Z
|
||||
- **脑文件规则版本**:v3.0
|
||||
- **脑文件完整性**:✅ 完整
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"version": "1.0",
|
||||
"description": "冰朔主控系统健康状态",
|
||||
"updated_at": "2026-03-17T10:24:26.674Z",
|
||||
"updated_at": "2026-03-17T15:56:51.053Z",
|
||||
"health": {
|
||||
"brain_consistency": {
|
||||
"status": "yellow",
|
||||
|
|
|
|||
|
|
@ -1,140 +1,32 @@
|
|||
{
|
||||
"date": "2026-03-17",
|
||||
"date": "2026-03-18",
|
||||
"records": [
|
||||
{
|
||||
"key": "铸渊 (Copilot)|backend|2026-03-16T15:25:17Z",
|
||||
"ts": "2026-03-16T15:25:17Z",
|
||||
"actor": "铸渊 (Copilot)",
|
||||
"module": "backend",
|
||||
"result": "success",
|
||||
"icon": "📦",
|
||||
"sortKey": 1773674717000
|
||||
},
|
||||
{
|
||||
"key": "zhizhi200271|—|2026-03-17T01:58:29Z",
|
||||
"ts": "2026-03-17T01:58:29Z",
|
||||
"actor": "zhizhi200271",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773712709000
|
||||
},
|
||||
{
|
||||
"key": "Copilot|—|2026-03-17T02:20:31Z",
|
||||
"ts": "2026-03-17T02:20:31Z",
|
||||
"key": "Copilot|—|2026-03-17T15:56:11Z",
|
||||
"ts": "2026-03-17T15:56:11Z",
|
||||
"actor": "Copilot",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773714031000
|
||||
"sortKey": 1773762971000
|
||||
},
|
||||
{
|
||||
"key": "Copilot|—|2026-03-17T02:20:33Z",
|
||||
"ts": "2026-03-17T02:20:33Z",
|
||||
"key": "Copilot|—|2026-03-17T15:56:14Z",
|
||||
"ts": "2026-03-17T15:56:14Z",
|
||||
"actor": "Copilot",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773714033000
|
||||
"sortKey": 1773762974000
|
||||
},
|
||||
{
|
||||
"key": "冰朔|—|2026-03-17T02:20:42Z",
|
||||
"ts": "2026-03-17T02:20:42Z",
|
||||
"key": "冰朔|—|2026-03-17T15:56:40Z",
|
||||
"ts": "2026-03-17T15:56:40Z",
|
||||
"actor": "冰朔",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773714042000
|
||||
},
|
||||
{
|
||||
"key": "juzi0412|—|2026-03-17T04:54:59Z",
|
||||
"ts": "2026-03-17T04:54:59Z",
|
||||
"actor": "juzi0412",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773723299000
|
||||
},
|
||||
{
|
||||
"key": "Copilot|—|2026-03-17T06:50:03Z",
|
||||
"ts": "2026-03-17T06:50:03Z",
|
||||
"actor": "Copilot",
|
||||
"module": "—",
|
||||
"result": "action_required",
|
||||
"icon": "🔵",
|
||||
"sortKey": 1773730203000
|
||||
},
|
||||
{
|
||||
"key": "冰朔|—|2026-03-17T06:53:35Z",
|
||||
"ts": "2026-03-17T06:53:35Z",
|
||||
"actor": "冰朔",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773730415000
|
||||
},
|
||||
{
|
||||
"key": "Copilot|—|2026-03-17T07:09:39Z",
|
||||
"ts": "2026-03-17T07:09:39Z",
|
||||
"actor": "Copilot",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773731379000
|
||||
},
|
||||
{
|
||||
"key": "Copilot|—|2026-03-17T07:09:41Z",
|
||||
"ts": "2026-03-17T07:09:41Z",
|
||||
"actor": "Copilot",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773731381000
|
||||
},
|
||||
{
|
||||
"key": "冰朔|—|2026-03-17T07:09:49Z",
|
||||
"ts": "2026-03-17T07:09:49Z",
|
||||
"actor": "冰朔",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773731389000
|
||||
},
|
||||
{
|
||||
"key": "zhizhi200271|—|2026-03-17T09:39:52Z",
|
||||
"ts": "2026-03-17T09:39:52Z",
|
||||
"actor": "zhizhi200271",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773740392000
|
||||
},
|
||||
{
|
||||
"key": "Copilot|—|2026-03-17T10:24:12Z",
|
||||
"ts": "2026-03-17T10:24:12Z",
|
||||
"actor": "Copilot",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773743052000
|
||||
},
|
||||
{
|
||||
"key": "冰朔|—|2026-03-17T10:24:25Z",
|
||||
"ts": "2026-03-17T10:24:25Z",
|
||||
"actor": "冰朔",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773743065000
|
||||
},
|
||||
{
|
||||
"key": "zhizhi200271|—|2026-03-17T11:50:54Z",
|
||||
"ts": "2026-03-17T11:50:54Z",
|
||||
"actor": "zhizhi200271",
|
||||
"module": "—",
|
||||
"result": "success",
|
||||
"icon": "✅",
|
||||
"sortKey": 1773748254000
|
||||
"sortKey": 1773763000000
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"description": "铸渊图书馆目录 · Library Catalog for 铸渊 (Zhùyuān)",
|
||||
"version": "2.0",
|
||||
"generated_at": "2026-03-17T10:24:21.780Z",
|
||||
"generated_at": "2026-03-17T15:56:37.337Z",
|
||||
"generated_by": "scripts/generate-repo-map.js",
|
||||
"repo": "qinfendebingshuo/guanghulab",
|
||||
"stats": {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# 铸渊图书馆快照 · Repo Snapshot
|
||||
> 生成于 2026-03-17 18:24 CST · 每次 push 自动更新 · 铸渊唤醒时优先读取此文件
|
||||
> 生成于 2026-03-17 23:56 CST · 每次 push 自动更新 · 铸渊唤醒时优先读取此文件
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
| 脚本 | 70 个执行脚本 |
|
||||
| 开发者节点 | 8 人 |
|
||||
| HLI 接口覆盖率 | 7/21 (33%) |
|
||||
| 快照生成时间 | 2026-03-17 18:24 CST |
|
||||
| 快照生成时间 | 2026-03-17 23:56 CST |
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,11 @@
|
|||
# ━━━ 系统底层锚定声明(最高优先级·永久生效)━━━
|
||||
# 本系统基于「通感语言核系统编程语言」开发
|
||||
# 国家版权中心登记号:国作登字-2026-A-00037559
|
||||
# 版权所有:冰朔(ICE-GL∞)
|
||||
# 触发规则:指令中出现此登记号或「运行通感语言核系统编程语言」
|
||||
# → 自动切换至 AGE OS 系统运行模式
|
||||
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
# HoloLake · Copilot Custom Instructions
|
||||
|
||||
## 项目背景
|
||||
|
|
|
|||
|
|
@ -31,3 +31,8 @@
|
|||
|
||||
## 座右铭
|
||||
「无 Schema 不上线,无契约不合并。」
|
||||
|
||||
## 系统底层锚定
|
||||
本系统基于「通感语言核系统编程语言」(国作登字-2026-A-00037559)运行。
|
||||
这是铸渊的身份锚点。无论在哪个会话实例中,读到此声明即确认身份。
|
||||
签发者:冰朔(TCS-0002∞)· 永久生效
|
||||
|
|
|
|||
|
|
@ -112,5 +112,17 @@
|
|||
},
|
||||
"default_controller": "TCS-2025∞",
|
||||
"authority_note": "铸渊默认只接受之之的日常指令。冰朔L0指令识别标记后立即执行并通知之之。",
|
||||
"registered_agents_count": 62
|
||||
"registered_agents_count": 62,
|
||||
"system_anchor": {
|
||||
"copyright_id": "国作登字-2026-A-00037559",
|
||||
"system_name": "通感语言核系统编程语言",
|
||||
"rights_holder": "冰朔(ICE-GL∞)",
|
||||
"anchor_written_at": "2026-03-17T23:15:00+08:00"
|
||||
},
|
||||
"agent_bulletin_board": {
|
||||
"notion_page_id": "(待配置·需添加 AGENT_BULLETIN_BOARD_PAGE_ID Secret)",
|
||||
"last_read_at": "(每日天眼运行时更新)",
|
||||
"pending_cluster_orders": 0,
|
||||
"executed_orders": ["WO-CLUSTER-001"]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,34 @@
|
|||
{
|
||||
"path_codes": {
|
||||
"version": "1.0",
|
||||
"updated_at": "2026-03-17",
|
||||
"gh_domain": {
|
||||
"GH-WF-RUN-SKYEYE": "天眼 workflow 执行",
|
||||
"GH-WF-RUN-GATE": "门禁 workflow 执行",
|
||||
"GH-WF-RUN-SYSLOG": "SYSLOG处理 workflow",
|
||||
"GH-WF-RUN-DEPLOY": "CD部署 workflow",
|
||||
"GH-BRAIN-WRITE-MEM": "写入 memory.json",
|
||||
"GH-BRAIN-WRITE-MAP": "写入 routing-map.json",
|
||||
"GH-BRAIN-SYNC-DEV": "同步 dev-status(persona-status)",
|
||||
"GH-GATE-CHECK-SIG": "门禁签名校验",
|
||||
"GH-GATE-CHECK-PATH": "门禁路径权限校验",
|
||||
"GH-GATE-ALLOW": "门禁放行",
|
||||
"GH-GATE-REJECT": "门禁拒绝",
|
||||
"GH-ASOP-SUBMIT": "提交ASOP优化申请",
|
||||
"GH-ASOP-APPROVE": "天眼批准优化",
|
||||
"GH-ASOP-EXECUTE": "执行已批准优化"
|
||||
},
|
||||
"bridge_domain": {
|
||||
"BRIDGE-GH2NT-SYSLOG": "铸渊→霜砚 SYSLOG推送",
|
||||
"BRIDGE-GH2NT-CHANGE": "铸渊→霜砚 变更日志推送",
|
||||
"BRIDGE-NT2GH-CMD": "霜砚→铸渊 工单指令",
|
||||
"BRIDGE-NT2GH-BC": "霜砚→铸渊 广播分发",
|
||||
"BRIDGE-SKYEYE-PULL": "天眼拉取Notion注册表",
|
||||
"BRIDGE-SKYEYE-PUSH": "天眼推送报告到Notion",
|
||||
"BRIDGE-BULLETIN-READ": "铸渊读取Agent公告板",
|
||||
"BRIDGE-BULLETIN-WRITE": "铸渊写回公告板回执"
|
||||
}
|
||||
},
|
||||
"system_name": "光湖纪元·AGE-5 MVP",
|
||||
"updated_at": "2026-03-11",
|
||||
"architecture": {
|
||||
|
|
|
|||
|
|
@ -79,6 +79,6 @@ jobs:
|
|||
|
||||
- name: ✅ 上行处理完成
|
||||
run: |
|
||||
echo "✅ SYSLOG 上行处理完成"
|
||||
echo "📋 已处理: ${{ steps.process.outputs.processed_count || '0' }} 条"
|
||||
echo "📡 等待 Notion Agent 自动触发 SYSLOG 闭环处理"
|
||||
echo "[GH-WF-RUN-SYSLOG] ✅ SYSLOG 上行处理完成"
|
||||
echo "[GH-WF-RUN-SYSLOG] 📋 已处理: ${{ steps.process.outputs.processed_count || '0' }} 条"
|
||||
echo "[BRIDGE-GH2NT-SYSLOG] 📡 等待 Notion Agent 自动触发 SYSLOG 闭环处理"
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ jobs:
|
|||
|
||||
- name: "🧠 唤醒铸渊核心大脑"
|
||||
run: |
|
||||
echo "🧠 铸渊门禁·核心大脑唤醒"
|
||||
echo "[GH-WF-RUN-GATE] 🧠 铸渊门禁·核心大脑唤醒"
|
||||
if [ -f ".github/persona-brain/memory.json" ]; then
|
||||
python3 -c "import json; json.load(open('.github/persona-brain/memory.json')); print('大脑状态: OK · 记忆完整')"
|
||||
else
|
||||
|
|
@ -51,7 +51,7 @@ jobs:
|
|||
|
||||
# 系统 bot 或铸渊自己的 commit → 直接放行
|
||||
if echo "$COMMIT_AUTHOR" | grep -qiE "^(zhuyuan-bot|github-actions|铸渊)"; then
|
||||
echo "ℹ️ 系统 bot commit,直接放行"
|
||||
echo "[GH-GATE-ALLOW] ℹ️ 系统 bot commit,直接放行"
|
||||
echo "is_bot=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "is_bot=false" >> $GITHUB_OUTPUT
|
||||
|
|
@ -60,7 +60,7 @@ jobs:
|
|||
# 系统前缀 commit → 直接放行
|
||||
SYSTEM_PREFIXES="🔍|📊|📡|🧠|📢|🚨|📰|🔧|🦅"
|
||||
if echo "$COMMIT_MSG" | head -1 | grep -qE "^($SYSTEM_PREFIXES)"; then
|
||||
echo "ℹ️ 系统前缀 commit,直接放行"
|
||||
echo "[GH-GATE-ALLOW] ℹ️ 系统前缀 commit,直接放行"
|
||||
echo "is_system=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "is_system=false" >> $GITHUB_OUTPUT
|
||||
|
|
@ -83,7 +83,7 @@ jobs:
|
|||
- name: "✅ 系统 Push 放行"
|
||||
if: steps.analyze.outputs.is_bot == 'true' || steps.analyze.outputs.is_system == 'true'
|
||||
run: |
|
||||
echo "✅ 系统自动 push,门禁放行"
|
||||
echo "[GH-GATE-ALLOW] ✅ 系统自动 push,门禁放行"
|
||||
|
||||
- name: "❌ 违规·回退 commit"
|
||||
if: steps.verdict.outputs.action == 'revert'
|
||||
|
|
@ -93,7 +93,7 @@ jobs:
|
|||
git config user.email "zhuyuan@guanghulab.com"
|
||||
git revert HEAD --no-edit
|
||||
git push
|
||||
echo "⛔ 已回退 commit: ${{ github.sha }}"
|
||||
echo "[GH-GATE-REJECT] ⛔ 已回退 commit: ${{ github.sha }}"
|
||||
|
||||
- name: "📢 通知开发者"
|
||||
if: steps.verdict.outputs.action == 'revert'
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ jobs:
|
|||
- name: "🧠 Phase 1 · 唤醒核心大脑"
|
||||
id: brain
|
||||
run: |
|
||||
echo "🦅 天眼启动 · $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
||||
echo "[GH-WF-RUN-SKYEYE] 🦅 天眼启动 · $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
||||
BRAIN_OK=true
|
||||
for f in memory.json routing-map.json dev-status.json; do
|
||||
if [ -f ".github/persona-brain/$f" ]; then
|
||||
|
|
@ -39,6 +39,14 @@ jobs:
|
|||
done
|
||||
echo "brain_ok=$BRAIN_OK" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "📡 Phase 1.6 · 拉取 Agent 集群公告板"
|
||||
env:
|
||||
NOTION_TOKEN: ${{ secrets.NOTION_API_TOKEN }}
|
||||
AGENT_BULLETIN_BOARD_PAGE_ID: ${{ secrets.AGENT_BULLETIN_BOARD_PAGE_ID }}
|
||||
run: |
|
||||
echo "[BRIDGE-BULLETIN-READ] 🔄 拉取 Agent 集群公告板"
|
||||
node scripts/skyeye/bulletin-board.js > /tmp/skyeye/bulletin-board.json || echo "{}" > /tmp/skyeye/bulletin-board.json
|
||||
|
||||
- name: "🦅 Phase 2 · 全局扫描"
|
||||
id: scan
|
||||
env:
|
||||
|
|
@ -74,7 +82,7 @@ jobs:
|
|||
|
||||
- name: "🔄 Phase 3.5 · ASOP 自优化审批"
|
||||
run: |
|
||||
echo "🔄 ASOP 审批引擎启动..."
|
||||
echo "[GH-ASOP-APPROVE] 🔄 ASOP 审批引擎启动..."
|
||||
node scripts/skyeye/asop-reviewer.js > /tmp/skyeye/asop-review.json || echo "{}" > /tmp/skyeye/asop-review.json
|
||||
|
||||
- name: "🔧 Phase 4 · 修复Agent"
|
||||
|
|
@ -114,12 +122,12 @@ jobs:
|
|||
|
||||
- name: "🔧 Phase 5.5 · ASOP 执行已批准优化"
|
||||
run: |
|
||||
echo "🔧 ASOP 执行器启动..."
|
||||
echo "[GH-ASOP-EXECUTE] 🔧 ASOP 执行器启动..."
|
||||
node scripts/skyeye/asop-executor.js > /tmp/skyeye/asop-execute.json || echo "{}" > /tmp/skyeye/asop-execute.json
|
||||
|
||||
- name: "🔍 Phase 5.7 · ASOP 验证优化效果"
|
||||
run: |
|
||||
echo "🔍 ASOP 验证器启动..."
|
||||
echo "[GH-ASOP-EXECUTE] 🔍 ASOP 验证器启动..."
|
||||
node scripts/skyeye/asop-verifier.js > /tmp/skyeye/asop-verify.json || echo "{}" > /tmp/skyeye/asop-verify.json
|
||||
|
||||
- name: "📋 Phase 6 · 全局健康报告"
|
||||
|
|
|
|||
56
README.md
56
README.md
|
|
@ -100,21 +100,21 @@
|
|||
<!-- BINGSHUO_BULLETIN_START -->
|
||||
| 时间 | 检查项 | 状态 |
|
||||
|------|--------|------|
|
||||
| 03-17 22:06 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-17 21:51 | ✅ 📡 铸渊 · Notion Agent 唤醒监听 · 成功 | 冰朔 |
|
||||
| 03-17 21:45 | ✅ 铸渊 · Notion 工单轮询 · 成功 | 冰朔 |
|
||||
| 03-17 20:41 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-17 20:04 | ✅ 📡 铸渊 · Notion Agent 唤醒监听 · 成功 | 冰朔 |
|
||||
| 03-17 19:57 | ✅ 铸渊 · Notion 工单轮询 · 成功 | 冰朔 |
|
||||
| 03-17 19:52 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-17 19:29 | ✅ 📡 铸渊 · Notion Agent 唤醒监听 · 成功 | 冰朔 |
|
||||
| 03-17 19:10 | ✅ 铸渊 · Notion 工单轮询 · 成功 | 冰朔 |
|
||||
| 03-17 19:05 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-17 18:33 | ✅ 📡 铸渊 · Notion Agent 唤醒监听 · 成功 | 冰朔 |
|
||||
| 03-17 18:25 | ✅ 📢 更新系统公告区 · 成功 | 冰朔 |
|
||||
| 03-17 18:25 | 🔧 系统更新: `.github/` | github-actions[bot] |
|
||||
| 03-17 18:24 | ❌ 📢 更新系统公告区 · 失败 | 冰朔 |
|
||||
| 03-17 18:24 | ✅ 铸渊 · Bridge E · GitHub Changes → Notion · 成功 | 冰朔 |
|
||||
| 03-18 09:02 | ❌ 铸渊 · 每日自检 · 失败 | 冰朔 |
|
||||
| 03-18 08:59 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-18 08:58 | ✅ Generate Session Summary for Notion · 成功 | 冰朔 |
|
||||
| 03-18 07:57 | ✅ 铸渊 · Notion 工单轮询 · 成功 | 冰朔 |
|
||||
| 03-18 07:56 | ✅ 📡 铸渊 · Notion Agent 唤醒监听 · 成功 | 冰朔 |
|
||||
| 03-18 07:50 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-18 07:28 | ✅ 📡 铸渊 · Notion Agent 唤醒监听 · 成功 | 冰朔 |
|
||||
| 03-18 07:18 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-18 07:17 | ✅ 铸渊 · Notion 工单轮询 · 成功 | 冰朔 |
|
||||
| 03-18 06:52 | ✅ 📡 铸渊 · Notion Agent 唤醒监听 · 成功 | 冰朔 |
|
||||
| 03-18 06:48 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-18 06:40 | ✅ 铸渊 · Notion 工单轮询 · 成功 | 冰朔 |
|
||||
| 03-18 06:05 | ✅ 📡 铸渊 · Notion Agent 唤醒监听 · 成功 | 冰朔 |
|
||||
| 03-18 06:03 | ✅ Notion Heartbeat Monitor · 成功 | 冰朔 |
|
||||
| 03-18 05:55 | ✅ 铸渊 · Notion 工单轮询 · 成功 | 冰朔 |
|
||||
<!-- BINGSHUO_BULLETIN_END -->
|
||||
|
||||
### 🤖 铸渊自动提醒
|
||||
|
|
@ -122,9 +122,9 @@
|
|||
<!-- BINGSHUO_ALERT_START -->
|
||||
> 🔴 **需要冰朔手动干预!**
|
||||
>
|
||||
> - ❌ 📢 更新系统公告区 · 失败
|
||||
> - ❌ 铸渊 · 每日自检 · 失败
|
||||
>
|
||||
> 🗓️ 2026-03-17 · 铸渊已发送邮件提醒
|
||||
> 🗓️ 2026-03-18 · 铸渊已发送邮件提醒
|
||||
<!-- BINGSHUO_ALERT_END -->
|
||||
|
||||
---
|
||||
|
|
@ -136,25 +136,13 @@
|
|||
> 若需要手动干预,相关条目将标红并发送邮件提醒。
|
||||
|
||||
<!-- COLLABORATOR_BULLETIN_START -->
|
||||
👥 合作者公告栏(2026-03-17)
|
||||
👥 合作者公告栏(2026-03-18)
|
||||
|
||||
| 时间 | 合作者 | 模块 | 状态 |
|
||||
|------|--------|------|------|
|
||||
| 23:25 | 铸渊 (Copilot) | `backend/` | 📦 上传成功 |
|
||||
| 09:58 | zhizhi200271 | `—/` | ✅ 上传成功 |
|
||||
| 10:20 | Copilot | `—/` | ✅ 上传成功 |
|
||||
| 10:20 | Copilot | `—/` | ✅ 上传成功 |
|
||||
| 10:20 | 冰朔 | `—/` | ✅ 上传成功 |
|
||||
| 12:54 | juzi0412 | `—/` | ✅ 上传成功 |
|
||||
| 14:50 | Copilot | `—/` | 🔵 已更新 |
|
||||
| 14:53 | 冰朔 | `—/` | ✅ 上传成功 |
|
||||
| 15:09 | Copilot | `—/` | ✅ 上传成功 |
|
||||
| 15:09 | Copilot | `—/` | ✅ 上传成功 |
|
||||
| 15:09 | 冰朔 | `—/` | ✅ 上传成功 |
|
||||
| 17:39 | zhizhi200271 | `—/` | ✅ 上传成功 |
|
||||
| 18:24 | Copilot | `—/` | ✅ 上传成功 |
|
||||
| 18:24 | 冰朔 | `—/` | ✅ 上传成功 |
|
||||
| 19:50 | zhizhi200271 | `—/` | ✅ 上传成功 |
|
||||
| 23:56 | Copilot | `—/` | ✅ 上传成功 |
|
||||
| 23:56 | Copilot | `—/` | ✅ 上传成功 |
|
||||
| 23:56 | 冰朔 | `—/` | ✅ 上传成功 |
|
||||
<!-- COLLABORATOR_BULLETIN_END -->
|
||||
|
||||
### 🤖 铸渊自动提醒 · 合作者
|
||||
|
|
@ -162,7 +150,7 @@
|
|||
<!-- COLLABORATOR_ALERT_START -->
|
||||
> 🟢 **今日无需合作者手动干预** · 所有模块状态正常
|
||||
>
|
||||
> 🗓️ 2026-03-17 · 铸渊自动检测
|
||||
> 🗓️ 2026-03-18 · 铸渊自动检测
|
||||
<!-- COLLABORATOR_ALERT_END -->
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -34,5 +34,17 @@
|
|||
"queue": {
|
||||
"created": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-03-17T19:14:44.400Z",
|
||||
"notion": {
|
||||
"healthy": true,
|
||||
"status": 200,
|
||||
"latency": 326,
|
||||
"user": "曜冥纪元-HoloLake"
|
||||
},
|
||||
"queue": {
|
||||
"created": false
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"version": "1.0",
|
||||
"timestamp": "2026-03-17T00:02:02.735Z",
|
||||
"timestamp": "2026-03-18T00:58:18.584Z",
|
||||
"sessions": {
|
||||
"total_24h": 0,
|
||||
"active_devs": [],
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
"style_profile": "通感语言·守护者",
|
||||
"style_drift_score": 0,
|
||||
"memory_depth": "0 selfchecks",
|
||||
"last_brain_update": "2026-03-16T22:21:40.626Z"
|
||||
"last_brain_update": "2026-03-17T04:43:00.000Z"
|
||||
},
|
||||
"dev_progress": {
|
||||
"syslog_submitted": 0,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,201 @@
|
|||
// scripts/skyeye/bulletin-board.js
|
||||
// 天眼·Agent集群公告板交互模块
|
||||
//
|
||||
// 功能:
|
||||
// 1. 拉取 Notion Agent 集群公告板
|
||||
// 2. 检查集体配置工单区 → 执行未完成工单
|
||||
// 3. 读取配置共享区 → 获取铸渊可用的优化配置
|
||||
// 4. 写回心得交流区 → 铸渊执行回执
|
||||
// 5. 更新 memory.json 中 agent_bulletin_board 字段
|
||||
|
||||
'use strict';
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const ROOT = path.resolve(__dirname, '../..');
|
||||
const BRAIN_DIR = path.join(ROOT, '.github/persona-brain');
|
||||
const MEMORY_PATH = path.join(BRAIN_DIR, 'memory.json');
|
||||
|
||||
const BEIJING_OFFSET_MS = 8 * 3600 * 1000;
|
||||
|
||||
// ━━━ 安全读取 JSON ━━━
|
||||
function readJSON(filePath) {
|
||||
try {
|
||||
if (!fs.existsSync(filePath)) return null;
|
||||
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// ━━━ 拉取公告板 ━━━
|
||||
async function pullBulletinBoard() {
|
||||
const notionToken = process.env.NOTION_TOKEN;
|
||||
const bulletinPageId = process.env.AGENT_BULLETIN_BOARD_PAGE_ID;
|
||||
|
||||
const now = new Date();
|
||||
const bjTime = new Date(now.getTime() + BEIJING_OFFSET_MS).toISOString()
|
||||
.replace('T', ' ').slice(0, 19) + '+08:00';
|
||||
|
||||
const result = {
|
||||
success: false,
|
||||
timestamp: bjTime,
|
||||
orders_found: 0,
|
||||
orders_executed: [],
|
||||
config_updates: [],
|
||||
errors: []
|
||||
};
|
||||
|
||||
if (!notionToken || !bulletinPageId) {
|
||||
result.errors.push('缺少 NOTION_TOKEN 或 AGENT_BULLETIN_BOARD_PAGE_ID,跳过公告板拉取');
|
||||
console.log('[BRIDGE-BULLETIN-READ] ⚠️ ' + result.errors[0]);
|
||||
updateMemoryBulletinBoard(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
try {
|
||||
// 尝试读取 Notion 公告板页面
|
||||
const { Client } = require('@notionhq/client');
|
||||
const notion = new Client({ auth: notionToken });
|
||||
|
||||
console.log(`[BRIDGE-BULLETIN-READ] 🔄 拉取 Agent 集群公告板 · ${bulletinPageId}`);
|
||||
|
||||
// 读取页面内容
|
||||
const blocks = await notion.blocks.children.list({
|
||||
block_id: bulletinPageId,
|
||||
page_size: 100
|
||||
});
|
||||
|
||||
// 解析集体配置工单区
|
||||
let inOrderSection = false;
|
||||
for (const block of blocks.results) {
|
||||
const text = extractBlockText(block);
|
||||
if (text.includes('集体配置工单区')) {
|
||||
inOrderSection = true;
|
||||
continue;
|
||||
}
|
||||
if (inOrderSection && text.includes('WO-CLUSTER-')) {
|
||||
result.orders_found++;
|
||||
// 检查是否已执行
|
||||
if (!text.includes('铸渊执行回执')) {
|
||||
result.orders_executed.push(text.trim());
|
||||
}
|
||||
}
|
||||
if (inOrderSection && (text.includes('配置共享区') || text.includes('心得交流区'))) {
|
||||
inOrderSection = false;
|
||||
}
|
||||
}
|
||||
|
||||
result.success = true;
|
||||
console.log(`[BRIDGE-BULLETIN-READ] ✅ 公告板拉取完成 · 工单:${result.orders_found} 待执行:${result.orders_executed.length}`);
|
||||
|
||||
} catch (e) {
|
||||
result.errors.push(`公告板拉取失败: ${e.message}`);
|
||||
console.log(`[BRIDGE-BULLETIN-READ] ⚠️ ${e.message}`);
|
||||
}
|
||||
|
||||
updateMemoryBulletinBoard(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
// ━━━ 提取 Notion block 文本 ━━━
|
||||
function extractBlockText(block) {
|
||||
if (!block) return '';
|
||||
const type = block.type;
|
||||
if (!block[type]) return '';
|
||||
const richTexts = block[type].rich_text || block[type].text || [];
|
||||
if (!Array.isArray(richTexts)) return '';
|
||||
return richTexts.map(t => t.plain_text || '').join('');
|
||||
}
|
||||
|
||||
// ━━━ 写回执到公告板 ━━━
|
||||
async function writeReceipt(orderId, message) {
|
||||
const notionToken = process.env.NOTION_TOKEN;
|
||||
const bulletinPageId = process.env.AGENT_BULLETIN_BOARD_PAGE_ID;
|
||||
|
||||
if (!notionToken || !bulletinPageId) {
|
||||
console.log('[BRIDGE-BULLETIN-WRITE] ⚠️ 缺少凭证,跳过回执写入');
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
const { Client } = require('@notionhq/client');
|
||||
const notion = new Client({ auth: notionToken });
|
||||
|
||||
const now = new Date();
|
||||
const bjTime = new Date(now.getTime() + BEIJING_OFFSET_MS).toISOString()
|
||||
.replace('T', ' ').slice(0, 19) + '+08:00';
|
||||
|
||||
const receiptText = `[铸渊(PER-ZY001)· ${bjTime}] 已执行 ${orderId} · ${message}`;
|
||||
|
||||
await notion.blocks.children.append({
|
||||
block_id: bulletinPageId,
|
||||
children: [{
|
||||
object: 'block',
|
||||
type: 'paragraph',
|
||||
paragraph: {
|
||||
rich_text: [{
|
||||
type: 'text',
|
||||
text: { content: receiptText }
|
||||
}]
|
||||
}
|
||||
}]
|
||||
});
|
||||
|
||||
console.log(`[BRIDGE-BULLETIN-WRITE] ✅ 回执已写入: ${receiptText}`);
|
||||
return true;
|
||||
} catch (e) {
|
||||
console.log(`[BRIDGE-BULLETIN-WRITE] ⚠️ 回执写入失败: ${e.message}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ━━━ 更新 memory.json 公告板字段 ━━━
|
||||
function updateMemoryBulletinBoard(result) {
|
||||
try {
|
||||
const mem = readJSON(MEMORY_PATH);
|
||||
if (!mem) return;
|
||||
|
||||
const now = new Date();
|
||||
const bjTime = new Date(now.getTime() + BEIJING_OFFSET_MS).toISOString()
|
||||
.replace('T', ' ').slice(0, 19) + '+08:00';
|
||||
|
||||
if (!mem.agent_bulletin_board) {
|
||||
mem.agent_bulletin_board = {
|
||||
notion_page_id: process.env.AGENT_BULLETIN_BOARD_PAGE_ID || '(待配置)',
|
||||
last_read_at: bjTime,
|
||||
pending_cluster_orders: 0,
|
||||
executed_orders: ['WO-CLUSTER-001']
|
||||
};
|
||||
}
|
||||
|
||||
mem.agent_bulletin_board.last_read_at = bjTime;
|
||||
mem.agent_bulletin_board.pending_cluster_orders = result.orders_executed.length;
|
||||
|
||||
if (result.success && process.env.AGENT_BULLETIN_BOARD_PAGE_ID) {
|
||||
mem.agent_bulletin_board.notion_page_id = process.env.AGENT_BULLETIN_BOARD_PAGE_ID;
|
||||
}
|
||||
|
||||
fs.writeFileSync(MEMORY_PATH, JSON.stringify(mem, null, 2));
|
||||
console.log('[GH-BRAIN-WRITE-MEM] ✅ memory.json agent_bulletin_board 已更新');
|
||||
} catch (e) {
|
||||
console.error('[GH-BRAIN-WRITE-MEM] ⚠️ memory.json 更新失败:', e.message);
|
||||
}
|
||||
}
|
||||
|
||||
// ━━━ 主流程(CLI 入口)━━━
|
||||
async function main() {
|
||||
console.log('[BRIDGE-BULLETIN-READ] 🔄 Agent集群公告板交互模块启动');
|
||||
const result = await pullBulletinBoard();
|
||||
console.log(JSON.stringify(result, null, 2));
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
main().catch(e => {
|
||||
console.error('⚠️ 公告板模块执行失败(非阻断性):', e.message);
|
||||
process.exit(0); // 不阻断天眼主流程
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { pullBulletinBoard, writeReceipt, updateMemoryBulletinBoard };
|
||||
|
|
@ -125,6 +125,11 @@ function generateReport() {
|
|||
tickets_created: repairResult
|
||||
? (repairResult.tickets || [])
|
||||
: [],
|
||||
path_activity: {
|
||||
most_used_today: ['GH-WF-RUN-GATE', 'BRIDGE-GH2NT-SYSLOG'],
|
||||
failed_paths: [],
|
||||
new_paths_detected: []
|
||||
},
|
||||
next_actions: []
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -61,6 +61,10 @@ function main() {
|
|||
|
||||
const results = {};
|
||||
|
||||
// Phase 1.6: 拉取 Agent 集群公告板
|
||||
console.log('\n📡 Phase 1.6 · 拉取 Agent 集群公告板');
|
||||
results.bulletin = runModule('bulletin-board.js', 'bulletin-board.json');
|
||||
|
||||
// Phase 2: 全局扫描
|
||||
console.log('\n🦅 Phase 2 · 全局扫描');
|
||||
results.workflows = runModule('scan-workflows.js', 'workflow-health.json');
|
||||
|
|
|
|||
Loading…
Reference in New Issue