Skip to content

feat: redesign Ideas page as read-only timeline#464

Merged
raphaeltm merged 3 commits intomainfrom
sam/ideas-page-read-only-01km31
Mar 21, 2026
Merged

feat: redesign Ideas page as read-only timeline#464
raphaeltm merged 3 commits intomainfrom
sam/ideas-page-read-only-01km31

Conversation

@simple-agent-manager
Copy link
Contributor

@simple-agent-manager simple-agent-manager bot commented Mar 19, 2026

Summary

  • Redesign Ideas page from a write-heavy task management UI to a read-only timeline view
  • Remove all write actions: New Idea button, NewIdeaDialog, Brainstorm, Execute, Delete buttons and their handlers
  • Compact card design with timeline accent borders, session counts, and creation timestamps
  • Updated empty state to reflect chat-first vision

Validation

  • pnpm lint
  • pnpm typecheck
  • pnpm test — 12 tests pass
  • Additional validation run (if applicable)

Staging Verification (REQUIRED for all code changes — merge-blocking)

  • Staging deployment greenDeploy Staging workflow triggered manually and passed for this branch
  • Live app verified via Playwright — logged into app.sammy.party (staging) using test credentials and actively tested the application
  • Existing workflows confirmed working — navigated dashboard, projects, and settings; confirmed no regressions in core flows
  • New feature/fix verified on staging — the specific changes in this PR work correctly on the live staging environment
  • Infrastructure verification completed — N/A: no infra changes
  • Mobile and desktop verification notes added for UI changes

Staging Verification Evidence

Verified on staging (app.sammy.party) via Playwright:

  1. Ideas page renders as read-only timeline with status groups (Done, Parked) — no write action buttons
  2. Compact card design with title, description snippet, session count, and creation time
  3. Timeline accent border visible on left side of each status group
  4. Expand/collapse groups works (Done collapsed by default, expands on click showing 6 ideas)
  5. Card click navigates to idea detail page (/projects/:id/ideas/:taskId)
  6. Search input and status filter dropdown present on single row
  7. No "New Idea", "Brainstorm", "Execute", or "Delete" buttons anywhere on the page
  8. Screenshot saved at .codex/tmp/playwright-screenshots/ideas-page-timeline.png

Regression checks:

  • Dashboard loads with project cards
  • Settings page loads with cloud provider data
  • No new console errors

UI Compliance Checklist (Required for UI changes)

  • Mobile-first layout verified — search+filter on single line with shrink-0 filter dropdown
  • Accessibility checks completed — all cards are buttons with aria-labels, group headers have aria-expanded/aria-controls, decorative icons have aria-hidden, min-h touch targets (56px cards, 44px headers)
  • Shared UI components used or exception documented — uses Spinner from @simple-agent-manager/ui

End-to-End Verification (Required for multi-component changes)

  • Data flow traced from user input to final outcome with code path citations
  • Capability test exercises the complete happy path across system boundaries
  • All spec/doc assumptions about existing behavior verified against code
  • If any gap exists between automated test coverage and full E2E, manual verification steps documented below

Data Flow Trace

  1. User visits Ideas page → IdeasPage component mounts
    apps/web/src/pages/IdeasPage.tsx:loadData()
  2. Data loaded from API → listProjectTasks() + listChatSessions()
    apps/web/src/lib/api.ts
  3. Ideas grouped by status → groupedIdeas useMemo
  4. User clicks idea card → handleIdeaClick()navigate(/projects/:id/ideas/:taskId)
  5. User searches → searchQuery state → filteredIdeas useMemo filters

Untested Gaps

N/A: Frontend-only change, full flow covered by 12 automated tests covering render, search, filter, navigation, expand/collapse, session counts, timestamps, and timeline styling. Additionally verified on live staging via Playwright.

Post-Mortem (Required for bug fix PRs)

N/A: not a bug fix

Exceptions (If any)

  • Scope: N/A
  • Rationale: N/A
  • Expiration: N/A

Agent Preflight (Required)

  • Preflight completed before code changes

Classification

  • external-api-change
  • cross-component-change
  • business-logic-change
  • public-surface-change
  • docs-sync-change
  • security-sensitive-change
  • ui-change
  • infra-change

External References

N/A: No external APIs involved. Reviewed existing IdeasPage.tsx code, design system tokens, and mobile UX audit notes.

Codebase Impact Analysis

  • apps/web/src/pages/IdeasPage.tsx — complete rewrite from write-heavy to read-only timeline
  • apps/web/tests/unit/pages/ideas-page.test.tsx — tests rewritten for read-only behavior
  • No other files affected. API functions (createProjectTask, etc.) remain in api.ts for use elsewhere.

Documentation & Specs

N/A: No documentation references the IdeasPage implementation details.

Constitution & Risk Check

  • Principle XI (No Hardcoded Values): Verified — IDEAS_FETCH_LIMIT and IDEAS_SESSION_FETCH_LIMIT remain configurable via env vars
  • No new URLs, timeouts, or limits introduced
  • All existing configurable values preserved

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

raphaeltm and others added 2 commits March 19, 2026 12:45
Remove all write actions (New Idea button, Brainstorm, Execute, Delete)
and NewIdeaDialog component. Ideas are now created through chat
conversations, not manual forms.

- Compact card design (~60px vs previous ~170px) with single-line layout
- Timeline accent border on left side of each status group
- Status group headers with colored icon badges
- Session count and creation time shown on each card
- Search + filter always on one line (no mobile stacking)
- Empty state: "Ideas emerge from your conversations"
- Tests updated: removed write-action tests, added timeline/read-only tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add aria-hidden to decorative icons in status config and chevrons
- Add min-h touch targets (56px cards, 44px group headers)
- Add aria-labelledby/aria-controls linking sections to their headers
- Add id attributes for proper disclosure pattern semantics

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove stale reference to handleDelete confirmation guard since all
write actions were removed in the read-only Ideas page redesign.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sonarqubecloud
Copy link

@raphaeltm raphaeltm merged commit 406f0c9 into main Mar 21, 2026
17 checks passed
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