Repository navigation
feat(canvas): refine Notes workflow - #103
Open
Owen-Richard wants to merge 43 commits into
Open
Owen-Richard wants to merge 43 commits into
Owen-Richard wants to merge 43 commits into
Conversation
Start selection immediately, retain captured note provenance, and ignore cancelled capture results. Cover delayed capture and direct hover-to-pick behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Support V in the canvas and preview, preserve Escape cancellation, and leave typing and dialogs alone. Document the shortcut and cover authenticated forwarding and packaged browser behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Replace the V shortcut with S across the canvas, preview bridge, accessible metadata, copy, documentation, tests, and built assets. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Keep S shortcut cancellation from moving focus to the Pick & polish toolbar button while retaining existing focus restoration for direct controls and Escape flows. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
There was a problem hiding this comment.
🟡 Changes recommended
Confirmed interaction and keyboard-handling regressions can hide draft controls, interrupt prototype input, and prevent cancellation.
7 open issues
Guard missing keyboard keys before normalization · New Preserve ordinary comment behavior on pointer dismissal · New Route Notes counter close through guarded sidebar dismissal · New Allow S to cancel a target while source capture is pending · New Cancel pending preview selection on Escape · New Preserve filter and sidebar close control behavior · New Exclude shadow-root inputs from S shortcut handling · New
2 files not reviewed
.github/extensions/replica-prototype/assets/renderer-improvement-notes-prototype.js: Generated file.github/extensions/replica-prototype/assets/renderer-prototype-canvas-improvement-threads.js: Generated file
What changed in this PR
Refines the prototype canvas’s Pick & polish Notes workflow, making selection faster and conversation controls more consistent.
Changes:
- Adds S-key selection toggling and immediate selection during source capture.
- Updates conversation dismissal, filtering, deletion, labels, and the Notes counter.
- Adds Save shortcuts and keycaps, expands interaction coverage, and refreshes extension assets and documentation.
| File | Description |
|---|---|
hub/vite.prototype-canvas.config.mjs |
Includes the shortcut helper in the Notes bundle. |
hub/script/check-prototype-canvas-renderer.mjs |
Expands renderer interaction checks. |
hub/docs/prototype-canvas.md |
Documents the updated Notes workflow. |
hub/app/javascript/utils/is-annotation-shortcut/index.ts |
Adds shared S-key shortcut detection. |
hub/app/javascript/features/prototype-canvas-improvement-threads/styles.css |
Styles header actions and direct deletion. |
hub/app/javascript/features/prototype-canvas-improvement-threads/index.tsx |
Updates conversation dismissal and row actions. |
hub/app/javascript/features/prototype-canvas-improvement-threads/index.test.tsx |
Covers dismissal, draft protection, and deletion. |
hub/app/javascript/features/prototype-canvas-improvement-threads/en.ts |
Revises Notes, filter, and deletion labels. |
hub/app/javascript/features/prototype-canvas-improvement-notes/use-preview-selection/index.ts |
Handles preview toggles and dismissal metadata. |
hub/app/javascript/features/prototype-canvas-improvement-notes/styles.css |
Adds Save keycaps and adjusts pin focus styling. |
hub/app/javascript/features/prototype-canvas-improvement-notes/index.tsx |
Adds immediate selection, counter toggling, and submission shortcuts. |
hub/app/javascript/features/prototype-canvas-improvement-notes/en.ts |
Updates selection hints and composer labels. |
hub/app/javascript/application/prototype-preview-bridge/index.ts |
Forwards shortcuts and preview pointer dismissal. |
hub/app/javascript/application/prototype-preview-bridge/improvement-selection.test.ts |
Tests shortcut authentication and dismissal behavior. |
hub/app/javascript/application/prototype-canvas/tests/improvement-notes.test.tsx |
Expands capture, cancellation, submission, and focus coverage. |
.github/extensions/replica-prototype/assets/renderer-prototype-canvas-improvement-threads.js |
Refreshes bundled conversation presentation. |
.github/extensions/replica-prototype/assets/renderer-improvement-notes-prototype.js |
Refreshes bundled Notes orchestration and shortcuts. |
Review effort: Max
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
nshki
requested changes
Oct 23, 2026
nshki
left a comment
Contributor
There was a problem hiding this comment.
Thanks for the polish here, @Owen-Richard! Left a couple change requests. Also if you don't mind, could you ask your agent to update the PR title and description according to our conventions?
Happy to chat about this in the channel if needed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca # Conflicts: # .github/extensions/replica-prototype/assets/canvas-bridge.js # .github/extensions/replica-prototype/assets/renderer.css # .github/extensions/replica-prototype/assets/renderer.js
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
nshki
added a commit
that referenced
this pull request
Oct 23, 2026
<!-- Use a conventional commit-style title, such as "fix(hub): retain prototype history". --> ## Why <!-- Explain the problem and why this change matters in a short, plain-English paragraph. Link the issue when applicable. --> Bundler Audit can block a pull request when a security fix is available but still too new for the seven-day dependency policy. This conflict is blocking #103. ## What changes <!-- Describe what becomes different for a first-time reader. Explain necessary terms. Include accurate Mermaid diagrams when they clarify the proposal, using before/after diagrams when helpful. Add screenshots for meaningful UI changes. --> <!-- Omit validation sections, checklists, and routine test/CI summaries such as "CI is green" or "tests passed". Mention only known verification gaps that affect the change, not disclaimers about drafting this description. --> <!-- For UI changes, prune obsolete and duplicate stories in the affected catalogues as part of the change. Explain removed UI or consolidated coverage where needed; see hub/docs/storybook.md#ui-changes-and-pull-request-evidence. --> Removes the Bundler Audit job from Hub's GitHub Actions workflow and updates the dependency-policy guide. Dependabot remains responsible for dependency vulnerability alerts. The seven-day dependency checks, lockfiles, local Bundler Audit command, and local `bin/ci` audit step stay unchanged. The branch rules for `main` still require `Bundler audit`. An administrator must remove that required check when merging this change so GitHub does not wait for a job that no longer exists. This PR does not change repository rules. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Nishiki Liu <hello@nshki.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Owen-Richard
enabled auto-merge (squash)
October 23, 2026 23:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Why
People reviewing a prototype need to add and manage targeted notes without losing context or interrupting the preview. The Pick & polish flow needed clearer Notes language, predictable dismissal, and keyboard support.
What changes
Pick & polish now starts target selection immediately and supports the
Sshortcut from the canvas and preview. Typing, modified keys, handled events, and inputs inside open shadow roots remain unaffected.Notes now use the selected element as the conversation heading, protect unfinished drafts, and dismiss without stealing focus from the preview or ordinary Hub comments. The panel has concise labels, guarded close and delete flows, a hover action for single deletes, an overflow menu for multiple actions, a Retry icon, accessible focus and contrast, and
Command+EnterorControl+Entersubmission with compact keycaps.Storybook screenshots
Components/Prototype canvas/Improvement threads — Pins Without Sidebar (light; 1440×900)
Components/Prototype canvas/Improvement threads — Active Notes (light; 1440×900)
Components/Prototype canvas/Improvement threads — Blocked Notes (light; 1440×900)
Components/Prototype canvas/Improvement threads — Copilot Answer (light; 1440×900)
Components/Prototype canvas/Improvement threads — Author Identity Unavailable (light; 1440×900)
Components/Prototype canvas/Improvement threads — No Pending Requests (light; 1440×900)
Components/Prototype canvas/Follow-up thread sample — Sample (light; 1440×900)