diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 36d513f0a..8a8a06fdf 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,29 @@ +## 2026-06-24|剩餘產品 Gitea dev readiness readback + +**背景**:MOMO Pro / AwoooGo 已完成 Gitea `dev` branch 與 Mac Mini dev workspace 後,繼續盤點剩餘產品是否可安全納入同一套 Gitea dev workflow。本輪只讀,不建立 branch、不 clone、不 push、不同步 raw `.git`、不搬 `.env` / runtime volume / raw Codex conversations。 + +**Readback**: +- 內部 Gitea registry probe:products `11`,`gitea_dev_ready=3`(AWOOOI、MOMO Pro、AwoooGo),remaining blocked `8`。 +- 2026FIFA:本機 HEAD `118954e...` 與 Gitea main `f26def5...` 不同,narrow diff readback timeout;不可建立 `dev`。 +- Agent Bounty:本機 HEAD `0601df8...` 與 Gitea main `b7a733f...` 不同,tracked dirty `24`;需 owner pick list。 +- StockPlatform v2:本機 HEAD 與 Gitea main 都是 `1ef097e...`,但 tracked dirty `55`;需 dirty review。 +- VibeWork:本機 HEAD `48275cc...` 與 Gitea main `76a4ee1...` 不同,tracked dirty `95`;需 owner pick list。 +- ClawBot / OpenClaw:本機 HEAD `f4b84d7...` 與 Gitea main `22074fb...` 不同,tracked dirty `2`;需 drift review。 +- Bitan / Tsenyang:仍需 internal inventory / owner export 與 dirty review。 +- VTuber:repository / HEAD inventory abnormal,需先修 inventory。 + +**新增文件**: +- `docs/operations/codex-gitea-remaining-products-readback.snapshot.json` +- `docs/operations/CODEX-WORKSTATION-GITEA-DEV-READBACK.md` §9 + +**Automation gaps**: +- `codex-gitea-dev-branch-candidate-readback.py` 目前只內建 2026FIFA / Agent Bounty 路徑,未覆蓋 VibeWork、StockPlatform、ClawBot,不能完全取代手動 readback。 +- `codex-workstation-sync-dashboard.py` 現版輸出會丟掉既有 `latest_artifact_sync` 區塊;在 generator 升級前,不應直接覆蓋 shared dashboard snapshot。 + +**邊界**: +- `remote_write_performed=false`,`raw_git_sync_allowed=false`,`raw_conversation_sync_allowed=false`,`env_or_runtime_volume_sync_allowed=false`。 +- 目前不能宣稱「所有產品都可雙機 Codex 開發」;正確狀態是 3 個 Gitea dev ready、8 個 blocked 且各自有明確下一步。 + ## 2026-06-24|MOMO Pro / AwoooGo Gitea dev branch 與 Mac Mini workspace 建立 **背景**:在 11:52 preflight 通過後,收到 owner approval 繼續,正式為兩個乾淨候選建立 Gitea `dev` branch,並從 Gitea clone Mac Mini 乾淨 Codex workspace。這不是 raw `.git` 複製,也沒有搬 `.env`、runtime volumes 或 Codex raw conversations。 diff --git a/docs/operations/CODEX-WORKSTATION-GITEA-DEV-READBACK.md b/docs/operations/CODEX-WORKSTATION-GITEA-DEV-READBACK.md index 857e96430..5007dc242 100644 --- a/docs/operations/CODEX-WORKSTATION-GITEA-DEV-READBACK.md +++ b/docs/operations/CODEX-WORKSTATION-GITEA-DEV-READBACK.md @@ -122,3 +122,52 @@ env_or_runtime_volume_sync=false AwoooGo external HTTPS CLI readback requires auth, so do not claim outside MacBook clone readiness for AwoooGo until credentials / VPN path are verified. MacBook Pro local workspace creation still needs separate readback from the MacBook. ``` + +## 9. 2026-06-24 12:41 remaining products readback + +Machine-readable snapshot: + +```text +docs/operations/codex-gitea-remaining-products-readback.snapshot.json +``` + +Updated internal Gitea registry probe: + +```text +products=11 +gitea_dev_ready=3 +remaining_blocked=8 +remote_write_performed=false +raw_git_sync_allowed=false +raw_conversation_sync_allowed=false +``` + +Ready for Gitea dev workflow: + +| Product | State | Next gate | +|---------|-------|-----------| +| AWOOOI | existing `dev` on Gitea; controlled dev workspace already recorded in Start Here | branch from `dev` into `codex/*` per task | +| MOMO Pro | `main` and `dev` both at `76a89a70986b`; Mac Mini workspace ready | verify MacBook Pro clone / fetch from Gitea | +| AwoooGo | `main` and `dev` both at `8471b376d97c`; Mac Mini workspace ready | fix / verify external HTTPS auth or VPN path before claiming outside MacBook readiness | + +Still blocked: + +| Product | Blocker | Decision | +|---------|---------|----------| +| 2026FIFA | local HEAD `118954e...` differs from Gitea main `f26def5...`; narrow diff readback timed out | build narrow drift review; do not create `dev` | +| Agent Bounty | local HEAD `0601df8...` differs from Gitea main `b7a733f...`; tracked dirty count `24` | owner pick list for A2A / traffic / propose changes | +| StockPlatform v2 | local HEAD equals Gitea main, but tracked dirty count `55` | owner pick list before any `dev` branch | +| VibeWork | local HEAD `48275cc...` differs from Gitea main `76a4ee1...`; tracked dirty count `95` | owner pick list for growth / admin / runtime changes | +| ClawBot / OpenClaw | local HEAD `f4b84d7...` differs from Gitea main `22074fb...`; tracked dirty count `2` | review `docker-compose.yml` and `main.py` drift | +| Bitan | internal inventory and dirty review required | owner export or authenticated inventory | +| Tsenyang Website | internal inventory and dirty review required | owner export or authenticated inventory | +| VTuber | repository / HEAD inventory abnormal | repair inventory before any Gitea action | + +Automation gaps found: + +```text +candidate_readback_default_roots_incomplete=true +dashboard_generator_drops_latest_artifact_sync=true +``` + +These are tooling gaps, not owner approval. They must be fixed before replacing manual readback with automatic dashboard refresh. diff --git a/docs/operations/codex-gitea-remaining-products-readback.snapshot.json b/docs/operations/codex-gitea-remaining-products-readback.snapshot.json new file mode 100644 index 000000000..26217c791 --- /dev/null +++ b/docs/operations/codex-gitea-remaining-products-readback.snapshot.json @@ -0,0 +1,172 @@ +{ + "schema_version": "codex_gitea_remaining_products_readback_v1", + "generated_at": "2026-06-24T12:41:57+08:00", + "scope": "Mac Mini product repositories after MOMO Pro and AwoooGo dev bootstrap", + "summary": { + "product_count": 11, + "gitea_dev_ready_count": 3, + "mac_mini_dev_workspace_ready_count": 2, + "remaining_blocked_count": 8, + "manual_dirty_or_drift_review_required_count": 6, + "internal_or_authenticated_inventory_required_count": 3, + "remote_write_performed": false, + "raw_git_sync_allowed": false, + "raw_conversation_sync_allowed": false, + "env_or_runtime_volume_sync_allowed": false + }, + "ready_products": [ + { + "product_id": "awoooi", + "gitea_repo": "wooo/awoooi", + "remote_dev_present": true, + "remote_main_present": true, + "mac_mini_workspace_status": "ready_from_start_here", + "next_gate": "use codex-workspaces/awoooi-dev and branch from dev for tasks" + }, + { + "product_id": "momo-pro", + "gitea_repo": "wooo/ewoooc", + "remote_dev_present": true, + "remote_main_present": true, + "remote_dev_commit": "76a89a70986b7428704a12ffbb7180f159db151f", + "mac_mini_workspace_status": "ready", + "mac_mini_workspace_path": "/Users/ogt/codex-workspaces/momo-pro-dev", + "next_gate": "clone_or_fetch_from_macbook_pro_and_verify_branch_dev_dirty_0" + }, + { + "product_id": "awooogo", + "gitea_repo": "wooo/AwoooGo", + "remote_dev_present": true, + "remote_main_present": true, + "remote_dev_commit": "8471b376d97c1436d4612ece17f51ba0950f114d", + "mac_mini_workspace_status": "ready", + "mac_mini_workspace_path": "/Users/ogt/codex-workspaces/awooogo-dev", + "external_https_readback": "authentication_required", + "next_gate": "verify_gitea_credentials_or_vpn_path_before_claiming_outside_macbook_clone_ready" + } + ], + "blocked_products": [ + { + "product_id": "2026fifa", + "local_path": "/Users/ogt/Documents/2026FIFAWorldCup", + "local_branch": "main", + "local_head": "118954e781b97843fe4457731951bc0fcaecd402", + "remote_main_commit": "f26def598fe58562067170dc3cc4c2521933846a", + "remote_dev_present": false, + "dirty_readback": "diff_readback_timeout", + "status": "blocked_local_drift_review_required", + "blockers": [ + "local_head_differs_from_gitea_main", + "diff_readback_timeout", + "production_branch_checked_out" + ], + "next_gate": "build narrow drift review and owner pick list before any dev branch creation" + }, + { + "product_id": "agent-bounty-protocol", + "local_path": "/Users/ogt/Documents/agent-bounty-protocol", + "local_branch": "main", + "local_head": "0601df8bd9c0aaedb9ce3a226a6f1aeca645ca0a", + "remote_main_commit": "b7a733f44f4f645dd21a9b4a9075b89c4a324f64", + "remote_dev_present": false, + "tracked_dirty_count": 24, + "status": "blocked_local_drift_review_required", + "blockers": [ + "local_head_differs_from_gitea_main", + "tracked_dirty_worktree", + "production_branch_checked_out" + ], + "next_gate": "owner pick list for A2A/traffic/propose changes before dev branch creation" + }, + { + "product_id": "stockplatform-v2", + "local_path": "/Users/ogt/stockplatform-v2", + "local_branch": "main", + "local_head": "1ef097e148ff6645e608fe5823aff9f038314512", + "remote_main_commit": "1ef097e148ff6645e608fe5823aff9f038314512", + "remote_dev_present": false, + "tracked_dirty_count": 55, + "status": "blocked_dirty_worktree_review_required", + "blockers": [ + "tracked_dirty_worktree", + "production_branch_checked_out" + ], + "next_gate": "review dirty files and owner-selected include/exclude list before dev branch creation" + }, + { + "product_id": "vibework", + "local_path": "/Users/ogt/Documents/VibeWork", + "local_branch": "main", + "local_head": "48275cc52be79107e887147d3fe10310a887afe9", + "remote_main_commit": "76a4ee15026af278a3660ad4b4547e9308b107be", + "remote_dev_present": false, + "tracked_dirty_count": 95, + "status": "blocked_local_drift_review_required", + "blockers": [ + "local_head_differs_from_gitea_main", + "tracked_dirty_worktree", + "production_branch_checked_out" + ], + "next_gate": "owner pick list for growth/admin/runtime changes before dev branch creation" + }, + { + "product_id": "clawbot-openclaw", + "local_path": "/Users/ogt/clawbot-v5", + "local_branch": "main", + "local_head": "f4b84d730ae0ef2cb2fb5cc49b4eb585b10246e2", + "remote_main_commit": "22074fbe4d6ec6c11c86f76139eea55756d1d160", + "remote_dev_present": false, + "tracked_dirty_count": 2, + "status": "blocked_local_drift_review_required", + "blockers": [ + "local_head_differs_from_gitea_main", + "tracked_dirty_worktree", + "production_branch_checked_out" + ], + "next_gate": "review docker-compose and main.py drift before dev branch creation" + }, + { + "product_id": "bitan-pharmacy", + "local_path": "/Users/ogt/bitan-pharmacy", + "status": "blocked_internal_inventory_and_dirty_review_required", + "blockers": [ + "internal_repo_requires_owner_export_or_authenticated_inventory", + "dirty_worktree" + ], + "next_gate": "owner export or authenticated inventory plus dirty review" + }, + { + "product_id": "tsenyang-website", + "local_path": "/Users/ogt/tsenyang-website", + "status": "blocked_internal_inventory_and_dirty_review_required", + "blockers": [ + "internal_repo_requires_owner_export_or_authenticated_inventory", + "dirty_worktree" + ], + "next_gate": "owner export or authenticated inventory plus dirty review" + }, + { + "product_id": "vtuber", + "local_path": "/Users/ogt/VTuber", + "status": "blocked_repository_inventory_repair_required", + "blockers": [ + "remote_repository_not_found_or_unauthenticated", + "local_head_readback_abnormal", + "dirty_worktree" + ], + "next_gate": "repair local repository inventory before any Gitea action" + } + ], + "automation_gaps": [ + { + "gap_id": "candidate_readback_default_roots_incomplete", + "description": "codex-gitea-dev-branch-candidate-readback.py only maps 2026fifa and agent-bounty-protocol, so VibeWork, StockPlatform, and ClawBot need root mapping before automated candidate readback can replace manual checks.", + "status": "needs_tool_update" + }, + { + "gap_id": "dashboard_generator_drops_latest_artifact_sync", + "description": "codex-workstation-sync-dashboard.py current output does not preserve the latest_artifact_sync section from the shared dashboard snapshot, so it should not overwrite the shared dashboard until the generator is upgraded.", + "status": "needs_tool_update" + } + ] +}