Files
Codewalkers/docs/wireframes/review-tab.md
Lukas May 89db580ca4 docs: Add ASCII wireframe mockups for all frontend pages
Covers: app layout, initiatives list, initiative detail (4 tabs),
agents page, inbox, settings (health + projects), and all dialogs.
2026-03-02 17:28:14 +09:00

9.5 KiB

Review Tab (?tab=review)

Two-column layout: diff viewer (main) + review sidebar (300px). Shows code diffs for phases pending review.

Default State

+============================================================================+
|  < Back                                                                    |
|  Auth System Overhaul    [ACTIVE]  [REVIEW]  [git] main  [P] backend     |
|  [ Content ]  [ Plan ]  [ Execution ]  [*Review*]                        |
+============================================================================+
|                                                                 |          |
|  Phase: [Phase 2: OAuth] [Phase 3: UI]    <-- pill selector    | Review   |
|                                                                 |          |
|  +-----------------------------------------------------------+ | Phase 2  |
|  | [play] Start Preview                                      | | OAuth    |
|  +-----------------------------------------------------------+ | Flow     |
|                                                                 |          |
|  +-----------------------------------------------------------+ |[PENDING] |
|  | src/auth/oauth.ts                              +42  -8    | |          |
|  |---------------------------------------------------------  | | Author   |
|  |  37 |   import { OAuth2Client } from 'google...'         | | agent-3  |
|  |  38 | + export async function initOAuth(config) {         | |          |
|  |  39 | +   const client = new OAuth2Client({               | | Branch   |
|  |  40 | +     clientId: config.clientId,                    | | cw/auth  |
|  |  41 | +     clientSecret: config.clientSecret,            | |  -> main |
|  |  42 | +   });                                            | |          |
|  |  43 | +   return client;                                  | |----------+
|  |  44 | + }                                                 | |          |
|  |     |                                                     | |[Approve] |
|  |  58 | - function legacyAuth() {                           | |[Request  |
|  |  59 | -   // old implementation                           | | Changes] |
|  |  60 | - }                                                 | |          |
|  |     |                                                     | |----------+
|  |  [+ Add comment]                                         | | Discuss. |
|  +-----------------------------------------------------------+ | 3 cmnts  |
|                                                                 | 2 reslvd |
|  +-----------------------------------------------------------+ | 1 open   |
|  | src/auth/routes.ts                             +28  -3    | |----------+
|  |---------------------------------------------------------  | | Changes  |
|  |  12 | + router.get('/auth/login', ...                     | | 4 files  |
|  |  13 | + router.get('/auth/callback', ...                  | | +120 -45 |
|  |  14 | + router.post('/auth/logout', ...                   | |----------+
|  +-----------------------------------------------------------+ | Files    |
|                                                                 | oauth.ts |
|                                                                 |  (2) +42 |
|                                                                 | routes.ts|
|                                                                 |      +28 |
|                                                                 | config.ts|
|                                                                 |      +35 |
|                                                                 | test.ts  |
|                                                                 |      +15 |
+============================================================================+

Phase Selector (multiple phases pending review)

  Phase: [*Phase 2: OAuth*]  [Phase 3: UI Components]
          ^^^^^^^^^^^^^^^^
          active pill (filled background)

Only shown when 2+ phases are in pending_review status.

Preview Panel

No Preview Running

+------------------------------------------------------------------------+
|  [play]  Start Preview                                                 |
+------------------------------------------------------------------------+

Building

+------------------------------------------------------------------------+
|  [spinner]  Building preview...                                        |
+------------------------------------------------------------------------+

Running

+------------------------------------------------------------------------+
|  [*]  Preview running: http://localhost:9100/preview/abc123    [ Stop ] |
+------------------------------------------------------------------------+

Failed

+------------------------------------------------------------------------+
|  [!]  Preview failed                                          [ Retry ]|
+------------------------------------------------------------------------+

Diff Viewer (left panel)

File Card (expanded)

+------------------------------------------------------------------------+
| src/auth/oauth.ts                                         +42  -8      |
|------------------------------------------------------------------------|
|  37 |   import { OAuth2Client } from 'google-auth-library';            |
|  38 | + export async function initOAuth(config: OAuthConfig) {          |
|  39 | +   const client = new OAuth2Client({                             |
|  40 | +     clientId: config.clientId,                                  |
|  41 | +     clientSecret: config.clientSecret,                          |
|  42 | +   });                                                           |
|  43 | +   return client;                                                |
|  44 | + }                                                               |
|     |   ...                                                             |
|  58 | - function legacyAuth() {                                         |
|  59 | -   // old implementation                                         |
|  60 | - }                                                               |
|     |                                                                   |
|  [+ Add comment]                                                       |
+------------------------------------------------------------------------+
  • Unified diff format with line numbers
  • Green + lines for additions, red - lines for deletions
  • Context lines (unchanged) in grey
  • Inline comment form: click [+ Add comment] to expand textarea
  • Hunk separators (...) between non-contiguous sections

Inline Comment Thread

|  42 | +   });                                                           |
|     | +--------------------------------------------------------------+ |
|     | | user: Should this use env vars instead of config?            | |
|     | |        [Resolve]                                             | |
|     | |                                                              | |
|     | | [Reply...________________________________]  [Comment]         | |
|     | +--------------------------------------------------------------+ |
|  43 | +   return client;                                                |

Review Sidebar (300px, right)

+---------------------------+
|  Review                   |
|                           |
|  Phase 2: OAuth Flow      |
|  [PENDING REVIEW]         |
|                           |
|  Author                   |
|  agent-3 (blue-fox)       |
|                           |
|  Branch                   |
|  cw/auth-overhaul         |
|    -> main                |
|                           |
|---------------------------|
|                           |
|  [ Approve ]              |     <-- disabled if unresolved threads
|  [ Request Changes ]      |
|                           |
|  -- or after action: --   |
|  [v] Approved             |
|  [!] Changes Requested    |
|                           |
|---------------------------|
|                           |
|  Discussions              |
|  3 comments               |
|  2 resolved               |
|  1 open                   |
|                           |
|---------------------------|
|                           |
|  Changes                  |
|  4 files changed          |
|  +120 additions           |
|  -45 deletions            |
|                           |
|---------------------------|
|                           |
|  Files                    |
|  oauth.ts      (2) +42-8 |     <-- (2) = comment count, clickable
|  routes.ts         +28-3  |
|  config.ts         +35-0  |
|  test.ts           +15-2  |
|                           |
+---------------------------+
  • File list items are clickable (scrolls diff viewer to that file)
  • Comment count shown per file
  • Approve button disabled when unresolved comment threads exist

Empty State

+============================================================================+
|                                                                            |
|                   No phases pending review                                 |
|                                                                            |
+============================================================================+

Source

  • packages/web/src/components/review/ReviewTab.tsx
  • packages/web/src/components/review/DiffViewer.tsx
  • packages/web/src/components/review/ReviewSidebar.tsx
  • packages/web/src/components/review/PreviewPanel.tsx
  • packages/web/src/components/review/FileCard.tsx