Files
geo/docs
root ef978ddbbf docs(desktop-client): spec v2.3 from architect-level review
Third-round Claude+Codex+Gemini architect review surfaced foundation-
level issues that prior local patches missed. Codex verdict was
Needs-rework; Gemini verdict was Ready-with-caveats. v2.3 lands all
2 Critical + 9 Warning + 3 Info.

Critical:
- C1 workspace-as-first-class: Prior drafts added a WorkspaceScope
  middleware, but Codex verified code: Actor/Claims carry only tenant_id,
  cache_support keys scope to tenant, workspaces table migration does
  not exist, tenant_monitoring_quotas tracks primary_installation_id.
  Add a new Plan 0 (Workspace foundation uplift, 2-3w, blocks Plan A)
  covering workspaces + memberships migrations, claims extension,
  cache-key rewrite, and the full monitoring-domain migration checklist
  (new §6.1.1). §2 hard-constraint 8 rewritten; new hard-constraint 9
  reserves credential_holder / account_home naming for future evolution.
- C2 CDP stream-capture path was still inconsistent: Fetch.continueResponse
  + takeResponseBodyAsStream cannot chain per CDP semantics. v2.3 moves
  EventSource to Network.eventSourceMessageReceived, fetch-stream to
  Network.streamResourceContent + dataReceived (Chromium >=120, OK on
  Electron 41), and reserves Fetch only for must-mutate scenarios
  without chained continueResponse. Plan A now requires a provider x
  transport spike matrix (0.5w) before any adapter work.

Warning:
- W1 Patch-channel minimal loop (G1) promoted from Plan C to Plan B,
  so Beta exit criteria are satisfiable.
- W2 waiting_user decoupled from lease: becomes a parked state that
  releases the lease, survives hours of human review, and is resumed
  via POST /tasks/{id}/lease?from_parked=true.
- W3 credential_holder/account_home evolution seam formalized.
- W4 §6.1.1 lists 8 monitoring-domain migration items that were
  previously hidden inside "sqlc rename".
- W5 Deep-link nonce becomes a one-time opaque code bound to
  target_client_id, Redis-jti consumed on verify.
- W6 §10.3 block H raised from 1.5w to 2.5-3w after Gemini verified
  PublishArticleModal's accounts[0] assumption needs a real rewrite.
- W7 MarkdownPreview extracted into packages/ui-shared so Web preview
  and Desktop manual review use the same renderer.
- W8 packages/http-client gains a standardized SseClient (backoff +
  Last-Event-ID + snapshot + dedup), shared by both apps.
- W9 Trace viewer now runs inside a CSP-sandboxed iframe with hash
  routing for file:// loads; trace data flows in via postMessage.

Info:
- I1 §14 adapter map appendix; Hunyuan renamed to Yuanbao with the
  correct entry domain (yuanbao.tencent.com).
- I2 UNKNOWN tasks gain a reconcile workflow (mark-succeeded /
  mark-failed / ignore / recreate), plus weekly in-app nudge.
- I3 New §15 listing the 5 Mermaid diagrams Plan A must produce
  (sequence, lease state machine, account resync, multi-instance
  topology, component tree).

Total effort re-estimated from 24-28w to 28-33w; split expands from
3 plans to 4 (Plan 0 -> A -> B -> C).

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