Skip to content

v2.12.1: to-do web/TUI language switch, actor-based status, work document and wide layout - #57

Closed
cskwork wants to merge 7 commits into
mainfrom
feat/todo-web-wide
Closed

cskwork wants to merge 7 commits into
mainfrom
feat/todo-web-wide

Conversation

@cskwork

@cskwork cskwork commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Changes

  • Wide screens show the whole list at a glance. At 1024 px and wider the page grows to 1280 px and each row puts its title and its status, project, ticket and phase side by side.
  • Every waiting row says what it waits for. The first waiting row keeps its highlight and "Needs you"; the others show their question or gate with a Review button instead of only a "Waiting" badge.
  • Details shows the work document of every open sdlc item. /api/artifact now returns the item's intent.md, or PLAN.md once one exists, read-only with gate: "" when the item has no approval gate. A question used to show "Could not load what needs approval: item has no approval gate"; it now shows the intent under "Work document" above Reply. Only approve intent or approve plan adds the decision form, and /api/approve still refuses an item without a gate.
  • Status is colour-coded. Waiting (amber), blocked (red), in progress (blue), open (grey) and done (green) show as pills with their word, a matching left bar on the row and a matching check ring. Every pair meets 4.5:1 contrast in light and dark mode.
  • Details sits beside the list on wide screens. At 1100 px and wider the page has two panes: a compact list (at least 26 rem, 38% of the width) and Details as a persistent, non-modal pane that scrolls on its own. Clicking a row, or Enter or Space on a focused row, shows it there and marks the row (aria-current); before any choice the pane shows the row where agents stop, else the first open item, and an empty list says so. The choice survives live updates and falls back the same way when its item disappears; keyboard activation moves focus to the pane, mouse clicks and live updates do not. From 1024 to 1099 px Details is a full-screen dialog with the work document on the left, the decision, reply and history beside it, and the fields in two columns; narrower screens keep the dialog, and crossing the breakpoint swaps dialog and pane without losing the selection. A− and A+ set its text size from 80% to 160% in 10% steps; the size lasts until reload because the page never uses Web Storage. On phones the controls sit above the title. In the stacked pane (below 1600 px) the document scrolls in its own box so the decision and reply stay in view, row tools move to the row's bottom end, and a loading line shows while the server reads the document.
  • Approving needs no typed note. The web approve form's note is optional. A blank note is sent empty and the server records approved as shown in the to-do web page (version <sha12>) as the sdlc.sh --human note, which sdlc.sh requires; the --sha binding to the shown bytes is unchanged. A typed note is still recorded as written (up to 500 characters).
  • Text no longer breaks badly. Korean wraps between words instead of mid-word (word-break: keep-all; long tokens still wrap). The Details Close button no longer shrinks into "Clos/e". The · before a ticket link is no longer underlined.
  • English or Korean UI, and statuses that say who acts next. The TUI and web page take --lang en|ko (or SDLC_TODO_LANG; the flag wins, default English, an invalid flag is a usage error) and switch at runtime with L or the page's language menu, re-rendering open rows and Details; the page never stores the choice. Phase names (Intent, Plan, Build, Evidence, Deliver) are translated too; an unknown phase shows as written. Locales live in todo/locales/<code>.mjs behind one registry in todo/i18n.mjs, which also sets the served files, so adding a language is a data-only change. The ambiguous "Waiting", "Needs you" and "In progress" became Approve intent, Approve plan or Answer needed (your turn, amber), Agent working (blue), Not started (grey), Blocked — fix needed (red) and Done; the row where agents stop says "Agents stop here until you decide" (or "…until this is fixed"), open rows below it say they are queued, your-turn rows offer "Approve…" or "Answer…", and the header counts your turn, agent, blocked and done. todo.md, item text, sdlc actions, server errors and CLI help stay as they are.
  • Hover tools no longer reserve a column. Between 561 and 1023 px the row tools float over the row's end on hover, so titles use the full width.

Validation

  • macOS local (Node 22.19.0): to-do Node tests 180/180 passed. The new work-document tests (two page, one web) fail on v2.12.0 (red) and pass with this change; the status contrast and text-size checks are new assertions. The 12 language and status tests (8 in tests/todo-i18n.test.mjs, two page, one TUI, one web) fail before this change (9 red with only the new locale and status modules present) and pass with it; three older assertions now expect the actor-based counts and the "Your next step" field. The four side-pane page tests (default stop item, row click and keyboard focus, selection across live snapshots, modal on narrow screens and resizing) fail before the pane (4 red) and pass with it.
  • Chrome at 1440, 800 and 390 px, light and dark: no element extends past the page or the open Details dialog, for a question item and a plan-approval item.
  • tests/selftest.sh was not run locally (a local hook blocks its git reset --hard fixtures); CI runs it.

…사유 전체 표시·한글 단어 단위 줄바꿈·닫기 버튼 잘림 수정 (v2.12.1)
@cskwork
cskwork marked this pull request as draft October 26, 2026 02:47
@cskwork cskwork changed the title v2.12.1: to-do web shows the work document and fits wide screens v2.12.1: to-do web shows the work document, colours status and fits wide screens Oct 26, 2026
… 누가 다음에 움직이는지 보여 주는 상태 표시(내 차례·에이전트·막힘·완료)
@cskwork cskwork changed the title v2.12.1: to-do web shows the work document, colours status and fits wide screens v2.12.1: to-do web/TUI language switch, actor-based status, work document and wide layout Oct 26, 2026
@cskwork

cskwork commented Oct 26, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #58 (→ dev) and #59 (dev → main) for v2.13.0.

@cskwork cskwork closed this Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant