• Extracted the Supermemory command functionality into a neutral reusable prompt file, and created both a Cursor AI and a GitHub Copilot command which simply reference said prompt.
  • Updated the History and Copy buttons on the Transcript page to use the new ActionIconButton component, which also gave them the Hover state Pranav asked for.
  • Generated DocStrings for every single new function in the project that I've modified.
  • Created a first version of unit tests for all the functions I've modified and got it running.
  • Playing around with Windsurf code maps to find a way to explain the code to others, and also to make coding a lot easier for myself. Learned that they're an insanely good tool. Disregarding whether people want to use Windsurf or not, this specific feature speeds up understanding the codebase and gets the AI to code better, too.
  • Created more Stories for components that didn't have them yet. (I'm probably still missing some.)
  • Updated Linear tasks with all the issues I've found, and spent some time testing what works, what doesn't, and what could be improved. One example is the enhance transcript button, which frankly makes no sense. Why not just enhance it when people hit regenerate, and give them a nice tutorial prompt the first time they open it, or similar? Much more intuitive.
  • Started working on introducing PWA functionality to the web app. That way we don't need a desktop app just yet. (Though, I'll look into wrapping our web app once it's nice enough.)
  • Started working on introducing keyboard navigation to make things more intuitive.
    • Adding a shortcut for opening the searchbar without having to click on it.
    • Adding a key to switch between “Notes” and “Chats”. Its annoying to not be able to easily switch. (Not even sure why they're not the same thing, anyways.)
    • Ensuring that if people type while on the home page and nothing is selected, we instantly select the chat box.
  • Spent some time trying to figure out how to make the transcript editing feel nicer, like Daniel asked. (Mainly getting rid of all the buttons and annoyances, as well as the fact it looks completely different when you edit.)
  • November 16, 2025 12:02 PM (GMT+1) Working on resolving all the issues that were present in the PR I created.
    • Fixed a ton of issues where Buttons didn’t have ARIA labels.
  • Set up a more robust Git worktree workflow so I can juggle multiple branches without losing my mind.
    • Created a dedicated VS Code workspace file for the main project so extensions and settings are scoped correctly instead of leaking into everything.
    • Installed and enabled the Git Worktree Manager extension only for that workspace, and pinned its list view so I can quickly see and switch worktrees.
    • Cleaned up a bunch of old/prunable worktrees and branches so the list is no longer an unreadable mess.
    • Verified that I can run npm run dev from the specific worktree that includes the keyboard navigation changes, so I can test those without messing with main.
  • Used CodeRabbit to review my big PR, then worked around its file-limit annoyance.
    • Tried running the CodeRabbit CLI through Ubuntu/WSL to get the review running at all.
    • Accepted that its mocked “max file” limit is going to cut it off, and instead focused on the actually useful comments.
    • Ignored noise about minor documentation and “extract this tiny component” suggestions, and focused on accessibility, keyboard navigation, and real technical debt.
  • Addressed a long list of PR comments focused on accessibility and better button semantics.
    • Added type="button" to chat UI buttons, toolbar buttons, and other interactive elements so they don’t accidentally act like form submits.
    • Replaced clickable divs (like the reasoning/think toggle) with proper <button> elements so keyboard users and screen readers can actually interact with them.
    • Added and cleaned up ARIA attributes for toolbar icons and other controls so they are announced correctly instead of being random decorative SVGs.
  • Put in a lot of work on keyboard navigation so the app feels like something a power user would actually want to use.
    • Wired up a global keyboard listener so Ctrl+K opens the search popover and focuses the search input.
    • Made sure pressing Ctrl+K again closes the search and unfocuses it, instead of leaving my cursor stuck in the field.
    • Hooked up Escape to close the search popover and clear focus so people can get out of search without touching the mouse.
    • Added Ctrl+. as a shortcut to focus the chat input directly.
  • Fought with all the fun edge cases of global keyboard handlers and focus.
    • Found that some shortcuts stopped working when inputs were focused because the events never reached the window listener.
    • Experimented with using the capture phase / attaching handlers to document instead, so Ctrl+K / Ctrl+. keep working even when inputs are focused.
    • Double-checked that these listeners don’t interfere with normal typing and only respond to the very specific combos I care about.
  • Pulled keyboard logic out into more reusable hooks instead of keeping everything in a giant navbar file.
    • Extracted the core “toggle focus based on a keyboard shortcut” behavior into a reusable hook (think useToggleFocusShortcut) that:
      • Knows how to focus an element on the first key press.
      • Knows how to blur/unfocus it when pressed again or when appropriate.
      • Can call additional callbacks on blur (for example, closing all dropdowns).
    • Refactored the navbar keyboard handling to use this hook, so adding more shortcuts later is just a matter of reusing the same pattern.
    • Left TODOs and notes about replacing the boolean jungle with composition and variants once there’s more time.
  • Made the search popover navigation feel intentional instead of accidental.
    • Implemented logic so that when the search popover is open, pressing Tab cycles between the “Notes” and “Chats” tabs.
    • Ensured that this special Tab behavior only triggers when the popover is actually visible.
    • Connected it into a hook that knows which tab is active and can toggle cleanly without weird side effects.
  • Gave the UI a layer of polish around search and chat.
    • Added keybind hints (small Ctrl+K, Ctrl+. badges) that show up on hover on the search bar and chat input so people can discover shortcuts without cluttering the UI.
    • Tweaked the hover styles on both elements until they feel “present” but not aggressive.
    • Adjusted rounding and small visual details to keep these elements in line with the rest of the app’s aesthetic.
  • Went through CodeRabbit’s technical-debt comments and actually fixed a lot of the important ones.
    • Took magic “wait a bit for the backend” timeouts and turned them into properly named constants in a shared constants file.
    • Updated JSDoc / comments and TODOs where the code had changed but the text hadn’t, especially around summary/autosave behavior.
    • Left explicit notes and TODOs around the boolean-heavy components with the plan to replace them with more composable variants.
    • Improved some Storybook stories by wiring them into proper interaction logging instead of having empty callbacks everywhere.