Skip to content

feat(web): add persisted project notes sidebar#1268

Open
MaximIJ wants to merge 2 commits intopingdotgg:mainfrom
MaximIJ:feature/project-notes
Open

feat(web): add persisted project notes sidebar#1268
MaximIJ wants to merge 2 commits intopingdotgg:mainfrom
MaximIJ:feature/project-notes

Conversation

@MaximIJ
Copy link

@MaximIJ MaximIJ commented Mar 21, 2026

What Changed

  • add a persisted project notes sidebar for chat threads/projects
  • persist notes through the orchestration projection and project metadata flow
  • support clearing notes, desktop usage, resizing the notes sidebar, and preserving the note cursor while typing
  • avoid rerender/cleanup flushes and stale note syncs from moving the textarea caret to the end of the note
  • add tests covering the notes projection, sidebar layout behavior, and the notes typing regression

Why

This adds a lightweight place to keep notes attached to a thread/project without leaving the app. I find myself coming up with new ideas/approaches while writing prompts and this feels like an easy way to offload those ideas for a later moment while keeping them project scoped and in one place.

A follow-up bug showed up while editing longer notes: under some rerender paths the pending notes flush could run during normal updates and the textarea caret would jump to the end of the note. This PR now keeps the notes editor stable while typing.

UI Changes

  • adds a project notes sidebar to the chat view
  • fixes a typing bug where the notes cursor could jump to the bottom/end mid-edit
  • screenshots/video not included in this PR body

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Add persisted project notes sidebar to the chat view

  • Adds a new ProjectNotesSidebar component to the chat view with a resizable, debounced-persist textarea; notes are flushed on blur, unmount, or project change.
  • Notes are toggled via a UI button, mod+shift+e keybinding, or a new 'Toggle Notes' desktop menu item (CmdOrCtrl+Shift+E).
  • Persists notes end-to-end: a notes column is added to projection_projects (migration 016_ProjectionProjectNotes.ts), the decider propagates notes through project.meta.update commands, and the client store maps notes into Project objects.
  • Plan and notes sidebars are mutually exclusive in the UI.
  • Behavioral Change: the compact composer footer switches to compact layout at 820px instead of 720px to accommodate the new notes toggle button.

Macroscope summarized c9d2aaf.

@coderabbitai
Copy link

coderabbitai bot commented Mar 21, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 3de721a9-3a85-4659-8b23-4ed8892974ce

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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 and usage tips.

Tip

CodeRabbit can approve the review once all CodeRabbit's comments are resolved.

Enable the reviews.request_changes_workflow setting to automatically approve the review once all CodeRabbit's comments are resolved.

@github-actions github-actions bot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 21, 2026
@maria-rcks
Copy link
Collaborator

pls attach images of the ui changes and/or a video demo

@MaximIJ
Copy link
Author

MaximIJ commented Mar 21, 2026

Yes, my bad sorry!

Here are some screenshots.

UI without the notes open:

Screenshot 2026-03-21 at 15 54 08

Notes open:

Screenshot 2026-03-21 at 15 54 17

When the notes sidebar is dragged to be larger, the chat component adapts to the space available using the ... dropdown so there is no collision:

Screenshot 2026-03-21 at 15 52 27

We could make the notes implementation markdown with preview so you can make nicer looking notes but this wasn't priority tbh.

@MaximIJ
Copy link
Author

MaximIJ commented Mar 21, 2026

A follow-up bug showed up while editing longer notes: under some rerender paths the pending notes flush could run during normal updates and the textarea caret would jump to the end of the note. This PR now keeps the notes editor stable while typing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants