diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 86cfa2e3..44ce80b1 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,20 @@ +## 2026-06-24|ClawBot / OpenClaw dev baseline owner decision package + +**背景**:Blocked products owner pick list 指出 ClawBot / OpenClaw 是最小可審核面:tracked dirty `2`、untracked `0`。本輪只讀 ClawBot repo,確認兩檔 drift 與 `STANDBY_MODE` 設定是否完整,不 commit、不 branch、不 push、不讀 `.env`、不讀 Telegram token value。 + +**Readback**: +- Local path `/Users/ogt/clawbot-v5`:branch `main`,HEAD `f4b84d730ae0ef2cb2fb5cc49b4eb585b10246e2`。 +- Gitea `wooo/clawbot-v5`:remote main `22074fbe4d6ec6c11c86f76139eea55756d1d160`,remote `dev` missing。 +- Dirty files:`docker-compose.yml` and `main.py` only;shortstat `2 files changed, 9 insertions(+), 1 deletion(-)`;`git diff --check` passed。 +- `app/core/config.py` already defines `STANDBY_MODE: bool = Field(default=False, description="Standby 模式 - 不啟動 Telegram polling,僅運行 API")`。 +- Diff meaning:compose sets `STANDBY_MODE=true`; `main.py` skips Telegram bot initialization when standby is enabled, leaving OpenClaw API available. + +**新增文件 / snapshot**: +- `docs/operations/clawbot-openclaw-dev-baseline-owner-decision.snapshot.json` +- `docs/operations/CLAWBOT-OPENCLAW-DEV-BASELINE-OWNER-DECISION-2026-06-24.md` + +**下一步**:需要 owner 明確接受 local head + two-file standby patch 後,才能建立 dedicated WIP branch / review branch 或 remote `dev`。不能把這份 readback 當成 product repo write approval。 + ## 2026-06-24|Blocked products owner pick list readback **背景**:AwoooGo MacBook auth blocker closeout 後,接續盤點剩餘 8 個尚未能轉成 Gitea `dev` workspace 的產品。本輪只讀產品 repo,只看 branch / HEAD / remote refs / dirty count / untracked count / path sample,不 fetch、不 pull、不 push、不建立 `dev`、不複製 raw `.git`、不讀 `.env` 或 secret value。 diff --git a/docs/operations/CLAWBOT-OPENCLAW-DEV-BASELINE-OWNER-DECISION-2026-06-24.md b/docs/operations/CLAWBOT-OPENCLAW-DEV-BASELINE-OWNER-DECISION-2026-06-24.md new file mode 100644 index 00000000..adfe0511 --- /dev/null +++ b/docs/operations/CLAWBOT-OPENCLAW-DEV-BASELINE-OWNER-DECISION-2026-06-24.md @@ -0,0 +1,47 @@ +# ClawBot / OpenClaw Dev Baseline Owner Decision + +- generated_at: `2026-06-24T13:47:00+08:00` +- product_id: `clawbot-openclaw` +- local_path: `/Users/ogt/clawbot-v5` +- gitea_repo: `wooo/clawbot-v5` +- status: `low risk, owner decision required` + +## Readback + +| Gate | Result | +|------|--------| +| local branch | `main` | +| local head | `f4b84d730ae0ef2cb2fb5cc49b4eb585b10246e2` | +| Gitea main | `22074fbe4d6ec6c11c86f76139eea55756d1d160` | +| Gitea dev | missing | +| tracked dirty | `2` | +| untracked | `0` | +| diff shortstat | `2 files changed, 9 insertions(+), 1 deletion(-)` | +| diff check | pass | +| `settings.STANDBY_MODE` | exists | + +## Dirty Files + +| File | Meaning | +|------|---------| +| `docker-compose.yml` | Adds `STANDBY_MODE=true` so host-level ClawBot serves OpenClaw API only and does not run Telegram polling. | +| `main.py` | Skips Telegram bot initialization when `settings.STANDBY_MODE` is true. | + +## 判定 + +這是目前 remaining blocked products 裡最小的下一個候選。變更目的清楚:避免 ClawBot host instance 與 AWOOOI K8s 同時接管 Telegram polling,同時保留 OpenClaw API。 + +仍不能直接推,因為它是產品 repo 的 uncommitted dirty change,且 local head 與 Gitea main 不同。下一步需要 owner 明確接受: + +1. 以 local head `f4b84d730ae0ef2cb2fb5cc49b4eb585b10246e2` 作為 ClawBot / OpenClaw dev baseline 來源。 +2. 接受 `docker-compose.yml` / `main.py` 的 `STANDBY_MODE` patch。 +3. 確認沒有其他 local artifact 要納入。 +4. 批准建立 remote `dev` 或 review branch。 + +## 安全邊界 + +- 未讀 Telegram token value。 +- 未讀 `.env`。 +- 未修改 ClawBot repo。 +- 未建立 branch、commit 或 push。 +- 未執行 Docker / service / runtime action。 diff --git a/docs/operations/clawbot-openclaw-dev-baseline-owner-decision.snapshot.json b/docs/operations/clawbot-openclaw-dev-baseline-owner-decision.snapshot.json new file mode 100644 index 00000000..3821b3e6 --- /dev/null +++ b/docs/operations/clawbot-openclaw-dev-baseline-owner-decision.snapshot.json @@ -0,0 +1,47 @@ +{ + "schema_version": "clawbot_openclaw_dev_baseline_owner_decision_v1", + "generated_at": "2026-06-24T13:47:00+08:00", + "product_id": "clawbot-openclaw", + "local_path": "/Users/ogt/clawbot-v5", + "gitea_repo": "wooo/clawbot-v5", + "remote_refs": { + "main": "22074fbe4d6ec6c11c86f76139eea55756d1d160", + "dev": "" + }, + "local_readback": { + "branch": "main", + "head": "f4b84d730ae0ef2cb2fb5cc49b4eb585b10246e2", + "tracked_dirty_count": 2, + "untracked_count": 0, + "diff_shortstat": "2 files changed, 9 insertions(+), 1 deletion(-)", + "diff_check": "pass", + "standby_mode_config_exists": true + }, + "dirty_files": [ + { + "path": "docker-compose.yml", + "change_summary": "Sets STANDBY_MODE=true for the compose service so the host-level ClawBot instance serves OpenClaw API only and does not run Telegram polling." + }, + { + "path": "main.py", + "change_summary": "Skips Telegram bot initialization when settings.STANDBY_MODE is true and logs that only OpenClaw API is served." + } + ], + "risk_assessment": { + "secret_value_collected": false, + "telegram_token_value_read": false, + "env_file_read": false, + "runtime_write_performed": false, + "product_repo_write_performed": false, + "remote_write_performed": false, + "risk_level": "low_but_owner_decision_required", + "reason": "The drift is small and aligns with the AWOOOI-owned Telegram polling boundary, but it is still an uncommitted product repo change on main and must not be silently pushed as the dev baseline." + }, + "owner_decision_required": [ + "Accept local head f4b84d730ae0ef2cb2fb5cc49b4eb585b10246e2 as the ClawBot / OpenClaw dev baseline source.", + "Accept the two-file STANDBY_MODE patch as source code that should be committed before creating or updating remote dev.", + "Confirm no additional local artifacts need to be included.", + "Approve creating remote dev only after the accepted baseline is committed on an explicit branch." + ], + "recommended_next_step": "Create a dedicated ClawBot owner-accepted WIP branch only after explicit acceptance, then commit the two-file STANDBY_MODE patch and push a dev baseline or review branch to Gitea." +}