Files
geo/docs
root 256f507bff docs(desktop-client): spec v2.3 from architect-level review
Fourth-round Claude+Codex+Gemini architect review produced 1C + 7W
issues. All applied:

Plan 0 scope lock-in (Codex C1 Partial → Closed):
- §12 Plan 0 explicitly adopts narrow-workspace Phase 1 strategy:
  workspace first-class ONLY on desktop_clients / platform_accounts /
  desktop_tasks / desktop_publish_jobs / tenant_monitoring_quotas.
  Existing articles / brands / kol-templates / publish-batches /
  images lines keep tenant==workspace (no multi-workspace UI).
- WorkspaceScope middleware attached to a specific route whitelist only.
- Eight concrete Plan 0 deliverables with three exit-bar categories.

Spec consistency sweep (Codex W3):
- §6.4 idempotency contract rewritten: pause/resume references
  removed; correct new lease ops enumerated (extend/cancel/result/
  park/trace + lease + lease?from_parked).
- §7.5 crash recovery: lease_client_id → target_client_id (the former
  never existed after the v2.2 schema restructure).
- §6.6 platform_accounts DDL gains delete_requested_at column so
  §6.8.6 two-phase delete protocol actually has its storage.
- §6.4 routes table adds POST /api/tenant/tasks/{id}/reconcile and
  POST /api/tenant/accounts/{id}/request-delete (previously only in
  prose).
- §14 Waiting-user glossary rewritten to reflect parked+CAS model.
- §13 v2.2 changelog annotated with "v2.3+ supersedes".

Parked / reconcile protocol closure (Codex W2 Partial → Closed):
- §5.3 adds Parked Recovery Protocol: strict CAS SQL sketch for
  POST /tasks/{id}/lease?from_parked, five error scenarios with
  client action mapping, idempotent repeat-request rule, and five
  target_client-offline/revoke/swap/72h-timeout strategies with
  a "never auto-rebind" core principle.
- Reconcile moved from /api/desktop/* to /api/tenant/* (Web owns
  reconciliation).
- Parked auto-abort threshold lifted 24h → 72h to avoid weekend
  false-kills.

Mermaid diagrams pulled forward (Gemini W10):
- §15.1 Lease state machine (Mermaid stateDiagram-v2) inlined.
- §15.2 Account CAS + Tombstone resync sequence diagram inlined.
- §15.3 reserves three remaining diagrams for Plan A.

Spike operability (Codex W4):
- §12 Plan A Spike specs owner pair (runtime + provider owner),
  artifact (electron-chromium-cdp-matrix.md with capture/screenshot
  evidence), three-state outcome (supported / degraded / blocked),
  and fallback decision tree for blocked case.

Modal refactor split (Gemini C1):
- §12 Plan A Block H splits into H1 (weeks 1-2: ui-shared skeleton +
  design tokens + useAccountSelection composable + shared components)
  and H2 (weeks 4-5: PublishArticleModal rewrite on top of H1).

Design tokens explicit (Gemini W2):
- H1 now required to produce CSS variables (light/dark) + Ant Design
  Theme Config as first deliverables of ui-shared.

credential_holder DDL promise softened (Codex W3 Partial → Closed):
- §2 hard constraint 9 reverts to naming soft-convention only; DDL
  keeps workspace_id / client_id / target_client_id.
- §11 risk note adjusted.

Header status updated to v2.4. Total effort unchanged at 28-33 weeks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 23:19:49 +08:00
..