240 lines
14 KiB
Markdown
240 lines
14 KiB
Markdown
# Codex 雙工作站 / Gitea 開發環境 Readback
|
||
|
||
> Last updated: 2026-06-24 13:33 Asia/Taipei
|
||
> Scope: Mac Mini、MacBook Pro、Gitea dev workspace、全產品專案收攏。
|
||
|
||
---
|
||
|
||
## 1. 目前判定
|
||
|
||
```text
|
||
Overall workstation / Gitea dev readiness: 38.6%, orange.
|
||
AWOOOI controlled dev: ready.
|
||
All-products Codex dev: not ready.
|
||
Raw Codex / ChatGPT conversation sync: forbidden.
|
||
Safe shared context: Gitea, docs, LOGBOOK, handoff snapshots, Start Here, runbooks.
|
||
Forbidden sync targets: auth.json, *.sqlite, sessions, raw conversations, .env, runtime volumes, raw .git directories.
|
||
```
|
||
|
||
目前不能把「所有專案直接推到 Gitea」當成一個單步操作。原因是多數專案本機工作樹不是乾淨狀態、部分 Gitea refs 讀不到或沒有 `dev` branch、部分是 internal repo,需要 owner export / authenticated inventory。直接推送會把半成品、未審核刪檔、local-only runtime artifact 或不該公開的檔案混進 source control。
|
||
|
||
## 2. Start Here / Dashboard Readback
|
||
|
||
| Source | Readback |
|
||
|--------|----------|
|
||
| `~/.codex/CODEX-START-HERE.md` | generated_at `2026-06-24T03:36:26+00:00`; overall `38.6%`; `can_start_awoooi_controlled_dev=True`; `can_start_all_products_dev=False`; `raw_history_sync=False` |
|
||
| `~/.codex/codex-workstation-sync-dashboard.snapshot.json` | products `11`; registry ready `1`; registry blocked `10`; latest dev on Gitea `1`; production on Gitea `4`; workstation ready projects `2`; workstation blocked projects `13` |
|
||
| `~/.codex/product-runtime-governance-completion-scorecard.snapshot.json` | overall `38.6%`; topic dual-mac Codex `84%`; Gitea / GitHub / CI-CD `35%`; portability cloud VM `15%` |
|
||
|
||
## 3. Gitea Product Registry Snapshot
|
||
|
||
| Product | Gitea repo | Registry | Main | Dev | Current blocker |
|
||
|---------|------------|----------|------|-----|-----------------|
|
||
| AWOOOI | `wooo/awoooi` | ready | yes | yes | none |
|
||
| 2026FIFA | `wooo/2026FIFAWorldCup` | blocked | yes | no | owner preflight / dev branch missing; local status is heavy and requires narrow drift review |
|
||
| Agent Bounty | `wooo/agent-bounty-protocol` | blocked | yes | no | dirty tree and owner preflight required |
|
||
| MOMO Pro | `wooo/ewoooc` | blocked | yes | no | local tree clean, but dev branch creation still needs owner / preflight gate |
|
||
| AwoooGo | `wooo/AwoooGo` | ready | yes | yes | Mac Mini and MacBook Pro dev workspaces ready |
|
||
| StockPlatform v2 | `wooo/stockplatform-v2` | blocked | yes | no | dirty tree, no dev branch |
|
||
| VibeWork | `wooo/vibework` | blocked | unknown from public registry | no | dirty tree, refs inventory gap |
|
||
| ClawBot / OpenClaw | `wooo/clawbot-v5` | blocked | unknown from public registry | no | dirty tree and refs inventory gap |
|
||
| Bitan | `internal:bitan-pharmacy` | blocked | no | no | internal repo requires owner export / authenticated inventory; dirty tree |
|
||
| Tsenyang Website | `internal:tsenyang-website` | blocked | no | no | internal repo requires owner export / authenticated inventory; dirty tree |
|
||
| VTuber | `wooo/vtuber` | blocked | no | no | local HEAD / revision readback abnormal; must repair inventory before any push |
|
||
|
||
## 4. Mac Mini Local Repo Readback
|
||
|
||
| Local path | Branch | Commit | Dirty count | Remote readback | Safe next action |
|
||
|------------|--------|--------|------------:|-----------------|------------------|
|
||
| `/Users/ogt/codex-workspaces/awoooi-dev` | `dev` | `25889d4` in Start Here | `0` in Start Here | external HTTPS Gitea | controlled AWOOOI dev work can start from `dev` |
|
||
| `/Users/ogt/awoooi` | active ops worktree | not used for dev baseline | dirty by design | Gitea main active | do not use for cross-device dev bootstrap |
|
||
| `/Users/ogt/momo-pro-system` | `main` | `76a89a7` | `0` | `https://gitea.wooo.work/wooo/ewoooc.git` | candidate for owner-reviewed `dev` branch bootstrap |
|
||
| `/Users/ogt/Documents/AwoooGo` | `main` | `86c96a2` | `0` | `http://192.168.0.110:3001/wooo/AwoooGo.git` | candidate after registry / remote URL normalization |
|
||
| `/Users/ogt/clawbot-v5` | `main` | `f4b84d7` | `2` | Gitea + GitHub | needs dirty review before dev bootstrap |
|
||
| `/Users/ogt/Documents/agent-bounty-protocol` | `main` | `0601df8` | `40` | Gitea | needs dirty review / owner pick |
|
||
| `/Users/ogt/Documents/VibeWork` | `main` | `48275cc` | `180` | Gitea SSH | needs dirty review / owner pick |
|
||
| `/Users/ogt/stockplatform-v2` | `main` | `1ef097e` | `117` | Gitea | needs dirty review / owner pick |
|
||
| `/Users/ogt/tsenyang-website` | `main` | `b369ed8` | `7` | SSH internal repo | needs internal repo export / dirty review |
|
||
| `/Users/ogt/bitan-pharmacy` | `main` | `e122c8c` | `279` | SSH internal repo | needs internal repo export / dirty review |
|
||
| `/Users/ogt/Documents/2026FIFAWorldCup` | `main` | `118954e` | status heavy | Gitea + GitHub | requires narrow drift tool; do not run broad status in routine gate |
|
||
| `/Users/ogt/VTuber` | abnormal | no valid `HEAD` | `32` observed before HEAD failure | not reasserted | repair repository state / inventory only |
|
||
|
||
## 5. Priority Order
|
||
|
||
| Priority | Goal | Current completion | Gate |
|
||
|----------|------|-------------------:|------|
|
||
| P0 | Keep AWOOOI controlled dev usable on both Macs | 84% topic-level, AWOOOI ready | verify MacBook Pro artifact sync when reachable |
|
||
| P0 | Create safe all-product Gitea dev baseline | 38.6% overall | product-by-product owner/preflight, no raw `.git` sync |
|
||
| P1 | MOMO Pro dev baseline | candidate | tree clean; needs explicit owner-approved `dev` branch policy |
|
||
| P1 | AwoooGo dev baseline | ready | Mac Mini and MacBook Pro workspaces both branch from Gitea `dev` |
|
||
| P1 | Dirty product drift review | blocked | VibeWork, StockPlatform, Bitan, Agent Bounty, Tsenyang, ClawBot need local change triage |
|
||
| P2 | External MacBook Pro Codex operation | partial | use Gitea + docs + Start Here; never raw conversation/session sync |
|
||
| P3 | Raw work-window sync | forbidden | replace with summaries, handoff docs, LOGBOOK, snapshots |
|
||
|
||
## 6. Hard Gates
|
||
|
||
- Do not copy `~/.codex/auth.json`, SQLite DB, sessions, raw Codex / ChatGPT conversations, `.env`, runtime volumes, or raw `.git` directories.
|
||
- Do not create remote `dev` branches for products whose owner preflight is blocked.
|
||
- Do not push dirty worktrees as "latest" without a drift review and owner-selected include/exclude list.
|
||
- Do not treat MacBook Pro being reachable as proof that all project state is synchronized.
|
||
- Do not treat Gitea `main` existing as proof that production runtime is latest.
|
||
- Use Gitea as source of truth for code; use backup / DB / route / runtime readback as source of truth for service state.
|
||
|
||
## 7. Next Safe Actions
|
||
|
||
1. Refresh MacBook Pro reachability and artifact sync readback without copying raw sessions.
|
||
2. For MOMO Pro and AwoooGo, use the existing Gitea `dev` workspaces and branch into `codex/*`; do not edit `dev` directly.
|
||
3. For VibeWork / StockPlatform / Agent Bounty / Bitan / Tsenyang / ClawBot, run narrow dirty-tree summaries and prepare owner pick lists.
|
||
4. For 2026FIFA, build a narrow drift command that avoids full untracked scan.
|
||
5. For VTuber, repair local repository HEAD / inventory before any Gitea action.
|
||
6. Update Start Here / dashboard snapshots only after readback, not by assumption.
|
||
|
||
## 8. 2026-06-24 12:03 dev bootstrap readback
|
||
|
||
Machine-readable snapshot:
|
||
|
||
```text
|
||
docs/operations/codex-gitea-dev-bootstrap-preflight.snapshot.json
|
||
```
|
||
|
||
| Product | Local state | Remote state | Workspace | Readback result |
|
||
|---------|-------------|--------------|-----------|------------------|
|
||
| MOMO Pro | `/Users/ogt/momo-pro-system`, `main`, `76a89a70986b`, dirty `0` | `wooo/ewoooc` main/dev both at `76a89a70986b`; external HTTPS readback works | `/Users/ogt/codex-workspaces/momo-pro-dev`, branch `dev`, dirty `0` | Mac Mini dev workspace ready |
|
||
| AwoooGo | `/Users/ogt/Documents/AwoooGo`, `main`, `8471b376d97c`, dirty `0` | `wooo/AwoooGo` dev `8471b376d97c`, main `18be716e8578`; MacBook SSH readback verified | `/Users/ogt/codex-workspaces/awooogo-dev`, branch `dev`, dirty `0`; `/Users/ooo/codex-workspaces/awooogo-dev`, branch `dev`, dirty `0` | Mac Mini and MacBook Pro dev workspaces ready |
|
||
|
||
Completed:
|
||
|
||
```text
|
||
1. Remote dev branches were created from verified main commits.
|
||
2. Clean Mac Mini Codex workspaces were cloned from Gitea, not copied from raw local .git directories.
|
||
3. Both workspaces read back branch=dev and dirty=0.
|
||
4. No runtime .env / runtime volumes / raw conversations were copied.
|
||
```
|
||
|
||
Still blocked / remaining:
|
||
|
||
```text
|
||
remote_dev_branch_create=2
|
||
remote_write_performed=true
|
||
raw_git_sync_allowed=false
|
||
raw_conversation_sync_allowed=false
|
||
env_or_runtime_volume_sync=false
|
||
Superseded by 2026-06-24 13:33 readback: AwoooGo MacBook Pro SSH access and local dev workspace are now verified. Continue to use `dev` only as the clean base; task work must branch into `codex/*`.
|
||
```
|
||
|
||
## 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 | `dev` at `8471b376d97c`; `main` at `18be716e8578`; Mac Mini and MacBook workspaces ready | branch from `dev` into `codex/*` per task |
|
||
|
||
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...`; full status dirty count `40` | owner pick list for A2A / traffic / propose changes |
|
||
| StockPlatform v2 | local HEAD equals Gitea main, but full status dirty count `117` | owner pick list before any `dev` branch |
|
||
| VibeWork | local HEAD `48275cc...` differs from Gitea main `76a4ee1...`; full status dirty count `180` | owner pick list for growth / admin / runtime changes |
|
||
| ClawBot / OpenClaw | local HEAD `f4b84d7...` differs from Gitea main `22074fb...`; full status 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=patched_locally_pending_repo_tooling_capture
|
||
dashboard_generator_drops_latest_artifact_sync=patched_locally_and_shared_artifacts_refreshed
|
||
```
|
||
|
||
The candidate readback root mapping was patched locally and re-run with `candidates=5 ready=0 drift=5 missing=0`. The dashboard generator was also patched locally to preserve `latest_artifact_sync`; shared `~/.codex` registry / dashboard / Start Here were regenerated and now read back `registry_ready=3`, `registry_blocked=8`, `latest_dev_on_gitea=3`, `artifact_sync_blocked=1`.
|
||
|
||
## 10. 2026-06-24 12:49 shared Start Here refresh
|
||
|
||
Updated shared artifacts:
|
||
|
||
```text
|
||
~/.codex/codex-gitea-workspace-registry.snapshot.json
|
||
~/.codex/codex-workstation-sync-dashboard.snapshot.json
|
||
~/.codex/codex-start-here.snapshot.json
|
||
~/.codex/CODEX-START-HERE.md
|
||
```
|
||
|
||
Readback:
|
||
|
||
| Metric | Value |
|
||
|--------|------:|
|
||
| `registry_ready` | `3` |
|
||
| `registry_blocked` | `8` |
|
||
| `latest_dev_on_gitea` | `3` |
|
||
| `production_on_gitea` | `8` |
|
||
| `owner_preflight_ready` | `0` |
|
||
| `owner_preflight_blocked` | `2` |
|
||
| `artifact_sync_synced` | `1` |
|
||
| `artifact_sync_blocked` | `1` |
|
||
|
||
`can_start_awoooi_controlled_dev=True` and `can_start_all_products_dev=False` remain correct. Raw history sync remains `False`.
|
||
|
||
## 11. 2026-06-24 12:55 MacBook Pro MOMO Pro workspace readback
|
||
|
||
MacBook Pro host `192.168.0.111` is reachable over SSH as `ooo`.
|
||
|
||
| Product | MacBook Pro workspace | Branch | Commit | Dirty | Result |
|
||
|---------|-----------------------|--------|--------|------:|--------|
|
||
| MOMO Pro | `/Users/ooo/codex-workspaces/momo-pro-dev` | `dev` | `76a89a70986b7428704a12ffbb7180f159db151f` | `0` | ready |
|
||
| AwoooGo | `/Users/ooo/codex-workspaces/awooogo-dev` | `dev` | `8471b376d97c1436d4612ece17f51ba0950f114d` | `0` | ready |
|
||
|
||
MOMO Pro workspace was cloned from Gitea `dev` on the MacBook Pro. Readback found only `.env.example`; no `.env` or runtime volume was copied.
|
||
|
||
MacBook Pro can now open Codex against MOMO Pro via:
|
||
|
||
```bash
|
||
cd /Users/ooo/codex-workspaces/momo-pro-dev
|
||
git checkout -b codex/<task-slug>
|
||
```
|
||
|
||
Do not edit `dev` directly. AwoooGo is now verified on MacBook Pro via Gitea SSH; new Codex work must start from `/Users/ooo/codex-workspaces/awooogo-dev` and branch into `codex/*`.
|
||
|
||
## 12. 2026-06-24 13:33 MacBook Pro AwoooGo workspace closeout
|
||
|
||
Machine-readable snapshot:
|
||
|
||
```text
|
||
docs/operations/codex-macbook-awooogo-access-readback.snapshot.json
|
||
```
|
||
|
||
Readback:
|
||
|
||
| Gate | Result |
|
||
|------|--------|
|
||
| MacBook Gitea SSH auth | key name `MacBook Pro Codex 20260624` accepted by Gitea |
|
||
| AwoooGo `dev` ref | `8471b376d97c1436d4612ece17f51ba0950f114d` |
|
||
| AwoooGo `main` ref | `18be716e8578eaeefb1e31f9a2a2f467ca33b12a` |
|
||
| MacBook workspace | `/Users/ooo/codex-workspaces/awooogo-dev` |
|
||
| Branch / upstream / dirty | `dev` / `gitea/dev` / `0` |
|
||
| Safe handoff artifact hash match | `9/9` |
|
||
|
||
MacBook project-window sync now has `projects=6`, `ready=3`, `blocked=3`. Ready projects are AWOOOI, MOMO Pro, and AwoooGo. Blocked projects are still 2026FIFA main-review, Agent Bounty main-review, and AWOOOI main. This closes the AwoooGo MacBook auth blocker but does not change all-product readiness: registry remains `ready=3`, `blocked=8`.
|