adventure-table

P3-D Closeout Checklist

P3-D — AI Controller, Scoped Token & Handoff closeout scope。編號對應 實作規格 的「完成後必須為真」。

Verification evidence

分支 p3-d-ai-controller-scoped-token-handoff,code SHA 6db34ea

Alembic heads
  0015_character_state_revision (character) (head)
  0020_p3d_ai_controller_grants (web)       (head)

本機指令
  apps/server  pytest                       1294 collected, exit 0, 無 fail
                                            (14 skip 為需 P3_POSTGRES_URL 的
                                              test_p3d_postgres_controller*.py)
  apps/server  pytest tests/test_p3d_*.py    47 selected:33 passed, 14 skipped
  apps/web     npm test -- --run             67 files / 298 passed
  apps/web     npm run build                 tsc --noEmit + vite build 通過
  repo root    docker compose config         pass
  apps/web     npm run test:e2e:docker       改動畫面對應 spec(p2a / p2d /
                                             p2f-session-lifecycle / p2f-cross-campaign /
                                             p3b / p3c):12 passed
  apps/web     npm run test:e2e:docker       全套 114:111 passed, 3 skipped (7.8m)
                                             第二輪 xge-less m03c-character-import.spec.ts:7 passed

E2E 的 3 skipped 是既有的 intentional skip(m01j direct high-level create 與 m03c 兩條需要缺 pack 後端的案例),後者由同一次 test:e2e:docker 的第二輪實際執行並通過。P3-D 沒有新增 E2E spec,全套是合併回 main 的 gate。

GitHub Actions:P3 Non-E2E run 34455746357,exact SHA 6db34ea,四個 job 全 success。

test_p3_workflow_contract.py 已同步 p3-non-e2e.yml 的分支清單與 PostgreSQL test file 清單,避免新增的兩支 P3-D PostgreSQL 測試在 CI 靜默漏跑。

Boundary

app.domain.rooms.ai_controllersapp.domain.rooms.ai_controller_tokensapp.persistence.rooms.ai_controllersapp.api.rooms.ai_controllers 全部含 .rooms. 區段,落在 test_m03_import_boundary.py 既有的 FORBIDDEN_MODULE_RE 內,不需擴充 regex。ai_controller_grants 只建立在 web migration track(0020),character track 仍停在 0015,standalone SQLite 不會長出 controller grant 表。全套 pytest 內的 test_m03_import_boundary.pytest_m03d_schema_parity.py 通過。

已知限制

Handoff

P3-D 已完成並關門。下一步是 P3-E — AI Tool Surface & Event Delivery

P3-E 直接繼承以下 substrate,不得再造第二套: