Files
Codewalkers/docs/wireframes/inbox.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

7.3 KiB

Inbox Page (/inbox)

Two-column layout: message list (left) + detail panel (400px right).

Default State

+============================================================================+
|  CODEWALK DISTRICT                                                         |
|  [ Initiatives ]  [ Agents ]  [*Inbox*]  [ Settings ]                    |
+============================================================================+
|                                                                            |
|  Agent Inbox (3)                                        [ Refresh ]        |
|                                                                            |
|  [*All*] [Waiting (2)] [Completed (1)]                                    |
|  [Newest v] [Oldest]                                                       |
|                                                                            |
|  +-------------------------------+  +----------------------------------+   |
|  |                               |  |                                  |   |
|  | (*) red-elk-3 (waiting)       |  |  red-elk-3 -> You               |   |
|  |     "Should I use JWT or      |  |  2 minutes ago                  |   |
|  |      session tokens f..."     |  |  Task: #task-42                 |   |
|  |                      2m ago   |  |  View in context                |   |
|  |                               |  |                                  |   |
|  |-------------------------------|  |  +----------------------------+  |   |
|  |                               |  |  | Q1: Should I use JWT or   |  |   |
|  | (*) blue-fox-7 (waiting)      |  |  |     session tokens?       |  |   |
|  |     "Which OAuth provider     |  |  |                           |  |   |
|  |      should I priorit..."     |  |  | ( ) JWT with refresh      |  |   |
|  |                      5m ago   |  |  | (*) Session cookies       |  |   |
|  |                               |  |  | ( ) Let me specify:       |  |   |
|  |-------------------------------|  |  |     [________________]    |  |   |
|  |                               |  |  |                           |  |   |
|  | ( ) grey-owl-1 (completed)    |  |  | Q2: What session          |  |   |
|  |     "Task completed           |  |  |     duration?             |  |   |
|  |      successfully."           |  |  |                           |  |   |
|  |                      1h ago   |  |  | [24 hours____________]   |  |   |
|  |                               |  |  |                           |  |   |
|  +-------------------------------+  |  |                           |  |   |
|                                     |  | [Cancel] [Dismiss]        |  |   |
|                                     |  |          [Send Answers]   |  |   |
|                                     |  +----------------------------+  |   |
|                                     |                                  |   |
|            flex-1                   +----------------------------------+   |
|                                                 400px                      |
+============================================================================+

Filter Bar

  [*All*]  [Waiting (2)]  [Completed (1)]

Sort Bar

  [*Newest*]  [Oldest]

Message Card (in left list)

Requires Response (waiting)

+-------------------------------+
| (*) red-elk-3 (waiting)       |    <-- filled orange dot
|     "Should I use JWT or      |    <-- message preview (truncated 80 chars)
|      session tokens f..."     |
|                      2m ago   |    <-- relative timestamp
+-------------------------------+

No Response Needed (completed)

+-------------------------------+
| ( ) grey-owl-1 (completed)    |    <-- empty dot
|     "Task completed           |
|      successfully."           |
|                      1h ago   |
+-------------------------------+
  • Orange filled dot = requires response
  • Empty dot = no response needed
  • Click selects agent and shows detail panel
  • Selected card gets highlight background

Inbox Detail Panel (400px right)

Header

+----------------------------------+
|  [<]  red-elk-3 -> You           |    <-- mobile back button (hidden on desktop)
|  2 minutes ago                   |
|  Task: #task-42                  |    <-- task ID link
|  View in context                 |    <-- link to initiative detail
+----------------------------------+

Structured Questions (waiting_for_input)

+----------------------------------+
|  Q1: Should I use JWT or         |
|      session tokens?             |
|                                  |
|  ( ) JWT with refresh tokens     |
|  (*) Session cookies             |
|  ( ) Let me specify:             |
|      [________________________]  |
|                                  |
|  Q2: What session duration       |
|      do you want?                |
|                                  |
|  [24 hours___________________]   |    <-- free text input (textarea)
|                                  |
|  [Cancel]  [Dismiss]             |
|            [Send Answers]        |    <-- disabled until all answered
+----------------------------------+

Plain Message (notification, no structured questions)

+----------------------------------+
|  Task completed successfully.    |
|  Created 3 files, modified 2.   |
|                                  |
|                     [ Dismiss ]  |
+----------------------------------+

Loading State

+----------------------------------+
|                                  |
|       [spinner] Loading...       |
|                                  |
+----------------------------------+

Waiting for Questions

+----------------------------------+
|                                  |
|  Waiting for structured          |
|  questions...                    |
|                                  |
+----------------------------------+

No Agent Selected (right panel)

+----------------------------------+
|                                  |
|  - - - - - - - - - - - - -      |
|  Select a message to view        |
|  - - - - - - - - - - - - -      |
|                                  |
+----------------------------------+

Empty State (no messages)

+============================================================================+
|                                                                            |
|  Agent Inbox (0)                                        [ Refresh ]        |
|                                                                            |
|                                                                            |
|                    No pending messages                                     |
|                                                                            |
|                                                                            |
+============================================================================+

Mobile Layout

On small screens, left list takes full width. When an agent is selected, detail panel takes full width with a back button [<] visible.

Source

  • packages/web/src/routes/inbox.tsx
  • packages/web/src/components/InboxList.tsx
  • packages/web/src/components/InboxDetailPanel.tsx
  • packages/web/src/components/MessageCard.tsx
  • packages/web/src/components/QuestionForm.tsx
  • packages/web/src/components/OptionGroup.tsx
  • packages/web/src/components/FreeTextInput.tsx