Skip to content

feat(canvas): refine Notes workflow - #103

Open
Owen-Richard wants to merge 43 commits into
mainfrom
owen/10-22-canvas-polish
Open

Owen-Richard wants to merge 43 commits into
mainfrom
owen/10-22-canvas-polish

Conversation

@Owen-Richard

@Owen-Richard Owen-Richard commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

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 S shortcut 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+Enter or Control+Enter submission with compact keycaps.

Storybook screenshots

Components/Prototype canvas/Improvement threads — Pins Without Sidebar (light; 1440×900)

Improvement Threads story with a Notes toggle and one canvas pin

Components/Prototype canvas/Improvement threads — Active Notes (light; 1440×900)

Improvement Threads story with the active Notes sidebar

Components/Prototype canvas/Improvement threads — Blocked Notes (light; 1440×900)

Improvement Threads story with two blocked notes and overflow actions

Components/Prototype canvas/Improvement threads — Copilot Answer (light; 1440×900)

Improvement Threads story with a note ready to review

Components/Prototype canvas/Improvement threads — Author Identity Unavailable (light; 1440×900)

Improvement Threads story with the author identity warning

Components/Prototype canvas/Improvement threads — No Pending Requests (light; 1440×900)

Improvement Threads story with the empty Notes state

Components/Prototype canvas/Follow-up thread sample — Sample (light; 1440×900)

Follow-up Thread Sample story with three notes and canvas pins

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
@Owen-Richard
Owen-Richard requested review from a team and nshki as code owners October 23, 2026 18:55
Copilot AI max review requested due to automatic review settings October 23, 2026 18:55
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

Copilot AI 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.

🟡 Changes recommended

Confirmed interaction and keyboard-handling regressions can hide draft controls, interrupt prototype input, and prevent cancellation.

7 open issues
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

Comment thread hub/app/javascript/utils/is-annotation-shortcut/index.ts Outdated
Comment thread hub/app/javascript/application/prototype-preview-bridge/index.ts
Comment thread hub/app/javascript/features/prototype-canvas-improvement-notes/index.tsx Outdated
Comment thread hub/app/javascript/features/prototype-canvas-improvement-notes/index.tsx Outdated
Comment thread hub/app/javascript/features/prototype-canvas-improvement-threads/index.tsx Outdated
Comment thread hub/app/javascript/utils/is-annotation-shortcut/index.ts Outdated
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 nshki left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread .github/workflows/dependency-age.yml Outdated
@Owen-Richard Owen-Richard changed the title Improve prototype canvas Notes workflow feat(canvas): refine Notes workflow Oct 23, 2026
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
@Owen-Richard
Owen-Richard requested a review from nshki October 23, 2026 20:59
@Owen-Richard Owen-Richard self-assigned this Oct 23, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: a2eb9311-df5e-4a24-9722-b52c1e2eaeca
Comment thread hub/app/javascript/utils/is-annotation-shortcut/index.ts
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>
Owen-Richard and others added 2 commits October 23, 2026 16:02
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
Owen-Richard enabled auto-merge (squash) October 23, 2026 23:38
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.

4 participants