Skip to content

Resume-doc screenshot, settings unsaved-changes guard, plan completion check, composer typewriter, chat empty state#52

Merged
BotCoder254 merged 1 commit into
mainfrom
feat/resume-pipeline
Jul 6, 2026
Merged

Resume-doc screenshot, settings unsaved-changes guard, plan completion check, composer typewriter, chat empty state#52
BotCoder254 merged 1 commit into
mainfrom
feat/resume-pipeline

Conversation

@BotCoder254

@BotCoder254 BotCoder254 commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Summary

A batch of UI fixes/polish on top of the Resume Pipeline branch. All changes respect the strict pure-black dark-only theme, the renderer-only/process boundary, and reuse existing primitives.

  1. Resume docs — embedded the new assets/screenshots/resumeupdate.PNG capture into docs/architecture/subsystems/resume-pipeline.md under User interface (correct ../../../assets/... relative path so it renders on GitHub/GitLab) and refreshed the surrounding prose.
  2. Settings — unsaved-changes guard — settings still save write-through (live appearance previews intact), but the modal now snapshots settings when it opens and, on an ambiguous close (X / backdrop / Escape), shows a centered confirm listing the changed settings. Discard reverts to the opening baseline; Keep editing returns; Done commits and closes. New diffSettings.ts + UnsavedSettingsDialog.tsx (built to the existing ResumeDeltaDialog/HooksConfirmDialog idiom).
  3. Plan completion — a prominent, modern self-drawing SuccessCheck (SVG stroke-dashoffset draw, success token, reduced-motion aware) shown in a completion card when plan.status === 'completed'.
  4. Composer — the placeholder now cycles through example prompts via the existing useTypewriter hook (same effect as Global Search), with distinct build/plan phrase sets; it pauses the moment the user types or in special states (not installed / restricted / disabled).
  5. Chat empty state — replaced the generic Sparkles icon with a large, professional app-Logo branded empty state.

Verification

  • npx vite build --config vite.renderer.config.mts — clean.
  • npm run lint — clean.

🤖 Generated with Claude Code


Note

Low Risk
Renderer-only UX and documentation; settings discard intentionally reverts to the modal-open snapshot via the existing store update path.

Overview
UI polish across settings, plan activity, workspace chrome, and resume documentation.

Settings snapshots AppSettings when the modal opens and routes ambiguous closes (X, backdrop, Escape) through attemptClose: if diffSettings finds changes (excluding layout), UnsavedSettingsDialog lists humanized paths; Discard reapplies the opening baseline via the settings store, Keep editing dismisses the confirm. Done still closes without that prompt.

Plan panel shows a success-styled Execution complete banner with animated SuccessCheck when plan.status === 'completed', plus task-count copy when progress is available.

Composer rotates build vs plan example placeholders through useTypewriter (paused while typing or in blocked states). Center workspace replaces the Sparkles EmptyState with a branded Logo empty state for new sessions.

Docs embed the resume UI screenshot and short copy tying ResumeBanner, the revalidating chip, and ResumeDeltaDialog together. index.css adds stroke-draw keyframes for the checkmark.

Reviewed by Cursor Bugbot for commit a58eab4. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • New Features

    • Added a completion banner for finished plans, with a success checkmark and task-count messaging.
    • Added a rotating, typewriter-style composer placeholder for a more dynamic empty-state experience.
    • Added a confirmation dialog when closing Settings with unsaved changes, including a list of what changed.
  • Bug Fixes

    • Settings now preserve your last saved state if you discard changes.
    • Escape, backdrop clicks, and close actions now consistently respect unsaved changes.
  • Documentation

    • Updated the resume pipeline docs with a UI screenshot and brief surface overview.

… completion check, composer typewriter, chat empty state

- docs(resume): embed resumeupdate.PNG and refresh the User interface section
- feat(settings): confirm on close when settings differ from the opening
  baseline (diffSettings + UnsavedSettingsDialog); Discard reverts, Keep editing
  returns, Done commits. Live-apply stays intact; layout excluded from the diff.
- feat(plan): prominent self-drawing SuccessCheck when a plan run completes
- feat(composer): rotating typewriter placeholder (reuses useTypewriter), build
  and plan phrase sets, pauses on input/special states
- feat(chat): branded large-Logo empty state replacing the Sparkles icon

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@amazon-q-developer amazon-q-developer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a well-crafted UI polish pass that adds several professional touches to the app. All changes follow existing patterns and maintain the pure-black dark theme consistently.

Key additions:

  • SuccessCheck component: Self-drawing SVG checkmark with GPU-accelerated animations, properly respecting reduced-motion preferences
  • Settings unsaved-changes guard: Captures baseline on modal open, diffs on close, and shows confirmation dialog with changed settings listed
  • Composer typewriter: Rotating placeholder prompts using existing useTypewriter hook, paused during user input
  • Chat empty state: Replaced generic icon with branded Logo component for professional appearance
  • Documentation: Added screenshot to resume-pipeline.md with correct relative path

The implementation is clean with no critical issues found. The code demonstrates good practices including proper error handling, accessibility attributes, and reduced-motion support.


You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.

@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6deb688a-1848-49f2-b600-d76893e2fa00

📥 Commits

Reviewing files that changed from the base of the PR and between e84dfbb and a58eab4.

⛔ Files ignored due to path filters (1)
  • assets/screenshots/resumeupdate.PNG is excluded by !**/*.png
📒 Files selected for processing (10)
  • docs/architecture/subsystems/resume-pipeline.md
  • src/renderer/components/ui/SuccessCheck.tsx
  • src/renderer/components/ui/index.ts
  • src/renderer/features/activity/PlanPanel.tsx
  • src/renderer/features/settings/SettingsModal.tsx
  • src/renderer/features/settings/UnsavedSettingsDialog.tsx
  • src/renderer/features/settings/diffSettings.ts
  • src/renderer/features/workspace/CenterWorkspace.tsx
  • src/renderer/features/workspace/Composer.tsx
  • src/renderer/styles/index.css

📝 Walkthrough

Walkthrough

This PR adds a SuccessCheck SVG component with CSS animations used in a new PlanPanel completion banner, introduces an unsaved-changes confirmation flow for SettingsModal (via diffSettings utility and UnsavedSettingsDialog), updates Composer with rotating typewriter placeholders, simplifies CenterWorkspace's empty state, and updates resume pipeline documentation.

Changes

Settings Unsaved-Changes Confirmation

Layer / File(s) Summary
Settings diff utility
src/renderer/features/settings/diffSettings.ts
Adds diffSettings for recursive comparison of settings objects returning changed dot-notation paths, and humanizeSettingPath for readable labels.
UnsavedSettingsDialog component
src/renderer/features/settings/UnsavedSettingsDialog.tsx
New modal listing changed settings with Keep editing/Discard actions, Escape interception, and backdrop click handling.
SettingsModal close-confirmation wiring
src/renderer/features/settings/SettingsModal.tsx
Captures baseline settings snapshot, computes pending changes, routes close actions (backdrop, X, Escape) through attemptClose, and conditionally renders UnsavedSettingsDialog.

Estimated code review effort: 3 (Moderate) | ~25 minutes

UI and Workspace Updates

Layer / File(s) Summary
SuccessCheck component and animation
src/renderer/components/ui/SuccessCheck.tsx, src/renderer/components/ui/index.ts, src/renderer/styles/index.css
New SVG checkmark component with configurable size/className plus CSS keyframe animations for a self-drawing effect.
PlanPanel completion banner
src/renderer/features/activity/PlanPanel.tsx
Displays an "Execution complete" banner using SuccessCheck when plan status is completed, with per-task or generic messaging.
Composer rotating placeholder text
src/renderer/features/workspace/Composer.tsx
Adds build/plan-mode placeholder lists and uses useTypewriter for dynamic rotating placeholder text, pausing on typing.
CenterWorkspace empty state simplification
src/renderer/features/workspace/CenterWorkspace.tsx
Replaces EmptyState/Sparkles usage with an inline Logo-based layout for the no-messages view.
Resume pipeline documentation update
docs/architecture/subsystems/resume-pipeline.md
Adds a screenshot and description of ResumeBanner, the Revalidating chip, and ResumeDeltaDialog.

Estimated code review effort: 2 (Simple) | ~15 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant SettingsModal
  participant diffSettings
  participant UnsavedSettingsDialog
  participant SettingsStore

  User->>SettingsModal: attemptClose (X, backdrop, Escape)
  SettingsModal->>diffSettings: compare baseline vs current
  diffSettings-->>SettingsModal: changed paths
  alt no pending changes
    SettingsModal->>SettingsModal: close immediately
  else pending changes
    SettingsModal->>UnsavedSettingsDialog: show changes list
    User->>UnsavedSettingsDialog: Keep editing / Discard
    UnsavedSettingsDialog-->>SettingsModal: onKeepEditing / onDiscard
    SettingsModal->>SettingsStore: update(baseline) on discard
    SettingsModal->>SettingsModal: close
  end
Loading

Related PRs: None identified.

Suggested labels: ui, enhancement, settings

Suggested reviewers: None identified.

🐰 A checkmark glows with gentle grace,
Settings pause before they chase,
Discard or keep, the choice is thine,
Placeholders drift in typed design,
Hop along, review this space!

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/resume-pipeline

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

src/renderer/styles/index.css

Parsing error: Expression expected.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@BotCoder254 BotCoder254 merged commit adda88b into main Jul 6, 2026
3 of 11 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