Skip to content

fix(canvas): retrieve improvement notes through comment actions - #71

Open
lukasoppermann wants to merge 33 commits into
mainfrom
lukasoppermann-canvas-improvement-filters
Open

lukasoppermann wants to merge 33 commits into
mainfrom
lukasoppermann-canvas-improvement-filters

Conversation

@lukasoppermann

Copy link
Copy Markdown
Contributor

Why

Hub can return Pick & polish conversations, but canvas comment actions neither expose the filter nor accept their payloads. Agents therefore cannot retrieve synchronized improvements through the normal comment workflow.

What changes

list_comments and full-detail list_repository_comments now accept improvementNotes: "exclude" | "include" | "only". The default remains review-only. Improvement results preserve requests, answers and author history, with bounded message pages and filter-bound snapshots. Both snapshot thread actions can retrieve the remaining messages.

Improvement IDs use an improvement_note- prefix so overlapping review IDs stay distinct and cannot become ordinary comment mutation targets. Existing authorization, review defaults and review-only summaries remain unchanged. The canvas guides explain the filter and continuation inputs.

The full Rails run hit a learning-lock retry failure outside this change; a focused rerun did not reproduce it.

lukasoppermann and others added 29 commits October 20, 2026 11:59
Keep creator note synchronization separate from review conversations and learning. Preserve append-only thread history, owner snapshots, revision guards, and deletion tombstones.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b55e539f-c9ba-4320-b39f-bf94f18c0f33
Extract the local improvement runtime, guarded actions, immutable batches and Hub synchronization from the frozen Pick & polish source. Keep renderer changes for the next layer.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9f678139-aaa7-4c9a-90a4-2f091027b85c
Extract the final canvas selection, saved-thread presentation, and UI polish layer over the guarded actions and synchronization contracts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 96b94d6f-ee24-4ed6-861e-c1005213ed83
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03c141fe-2f30-4317-81df-1051bac1d3ab
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03c141fe-2f30-4317-81df-1051bac1d3ab
Paginate note-bearing collections within a 2 MiB JSON budget before loading capture payloads. Reject malformed scalars, reflect write access in note capabilities, and accept immutable owner snapshots captured before a login rename.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b55e539f-c9ba-4320-b39f-bf94f18c0f33
Reserve serialized answers, preserve unattributed originals, invalidate retried batch requests, isolate per-note sync conflicts and traverse complete paginated collections before synchronizing. Keep canonical anchor geometry and explicit URL reopen semantics.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9f678139-aaa7-4c9a-90a4-2f091027b85c
Forward authenticated preview dismissal through the existing draft-protected conversation path. Validate captured collection identity and note revision before Retry or Return to active, with regression coverage and regenerated renderer assets.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 96b94d6f-ee24-4ed6-861e-c1005213ed83
Merge the updated lower-layer contracts to resolve the reported PR base conflict and validate the runtime against bounded collection reads and historical owner snapshots.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9f678139-aaa7-4c9a-90a4-2f091027b85c
Merge shipped main fixes while retaining both the protected-note persistence regression and publishing-failure regression at their shared insertion point.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9f678139-aaa7-4c9a-90a4-2f091027b85c
Merge the final validated actions layer while retaining the complete canvas experience and review fixes. Preserve both skill discovery coverage and current plugin metadata, reconcile the canonical guide, and regenerate conflicting renderer assets.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 96b94d6f-ee24-4ed6-861e-c1005213ed83
Use the normal semantic foreground and semibold author for unresolved improvement rows, leaving resolved and genuinely disabled states distinct. Match ordinary comment hover gutters without moving text or reducing selection targets, with light/dark desktop/mobile renderer regressions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 96b94d6f-ee24-4ed6-861e-c1005213ed83
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Capture source when selecting a target and require a matching published Build before initial synchronization. Retain its identity across retries, follow-ups, and deletion.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the live adapter and small presentation stories, replace cosmetic assertions with a functional renderer smoke, and minify the generated anchor validator through the existing Vite build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve overlapping local-review capture, Hub client renames, canvas selection and documentation changes. Rebuild generated bridge and renderer assets from the merged source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Capture source before target selection and require a matching successful published Build. Save the initial Build before dispatching an upload and retain it for later changes. Minify the generated anchor validator through the existing Vite build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve the existing UI layer while integrating relational comments, publication-gated runtime storage and current main. Keep the canonical guide aligned with the separate comment models and immutable Build contract.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Retain the live-only adapter, small component stories and functional renderer smoke in the existing UI PR. Preserve the revised persistence and publication contracts from its parent layers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove unshipped conversation versions and collection limits. Keep complete-feed consumers aligned with the persistence contract.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Integrate the updated persistence layer and use one current conversation contract. Remove legacy conversion, collection budgets and paginated batch retrieval while preserving identity, revision and source guards.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Integrate the simplified synchronization layer and align UI, batch instructions and generated assets with the current conversation contract.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve the persistence UUID validation and main's reviewer-profile import, then regenerate renderer assets from the combined source.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b55e539f-c9ba-4320-b39f-bf94f18c0f33
Regenerate the renderer from combined persistence and current main source after the review layout update.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b55e539f-c9ba-4320-b39f-bf94f18c0f33
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9f678139-aaa7-4c9a-90a4-2f091027b85c
Merge the validated actions parent, retain the latest Pick and polish conversation refinements, and regenerate the conflicting renderer assets from combined source.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 96b94d6f-ee24-4ed6-861e-c1005213ed83
Expose exclude/include/only filtering and preserve full improvement conversations with collision-safe read-only IDs and bounded snapshot continuations.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5731532a-7a4f-49c3-95ea-f6c7a21a7b4e
@lukasoppermann
lukasoppermann requested a review from nshki as a code owner October 22, 2026 11:59
@lukasoppermann
lukasoppermann requested a review from a team as a code owner October 22, 2026 11:59
Copilot AI max review requested due to automatic review settings October 22, 2026 11:59
@lukasoppermann
lukasoppermann added this pull request to stack #43 October 22, 2026 12:00

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.

🔵 Needs a closer look

The new agent-facing ID schema and snapshot contracts need human confirmation in the canvas host.

No open issues 🎉

What changed in this PR

Enables agents to retrieve synchronized Pick & polish conversations through existing canvas comment actions while preserving review-only defaults.

Changes:

  • Adds opt-in improvement filters and namespaced note IDs.
  • Extends bounded pagination and snapshot consistency checks to improvement conversations.
  • Adds regression coverage and documents retrieval and continuation inputs.
File Description
hub/​docs/​prototype-canvas.md Documents improvement retrieval and snapshot behavior.
.github/​extensions/​replica-prototype/​review-action/​index.test.mjs Covers filters, payloads, pagination, compatibility and conflicts.
.github/​extensions/​replica-prototype/​review-action/​index.mjs Implements improvement retrieval and snapshot continuations.
.github/​extensions/​replica-prototype/​register-prototype-canvas/​index.test.mjs Checks registered actions against Hub improvement responses.
.github/​extensions/​replica-prototype/​README.md Explains filters, note IDs and message continuations.
.github/​extensions/​replica-prototype/​comment-actions/​index.test.mjs Checks filter and thread-ID schemas.
.github/​extensions/​replica-prototype/​comment-actions/​index.mjs Exposes improvement inputs and action guidance.

Review effort: Max

Base automatically changed from lukasoppermann-pick-and-polish-experience to main October 22, 2026 15:29
Expose exclude/include/only filtering and preserve full improvement conversations with collision-safe read-only IDs and bounded snapshot continuations.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5731532a-7a4f-49c3-95ea-f6c7a21a7b4e
@lukasoppermann
lukasoppermann force-pushed the lukasoppermann-canvas-improvement-filters branch from d539ba5 to 2f7336a Compare October 22, 2026 15:30
Reconcile divergent history while retaining the remote TypeScript migration, updated menu layout, Storybook coverage, and existing improvement retrieval behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5731532a-7a4f-49c3-95ea-f6c7a21a7b4e
Merge origin/main while preserving improvement-note filters, namespaced snapshot reads and bounded conversation pagination in the authored TypeScript modules.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5731532a-7a4f-49c3-95ea-f6c7a21a7b4e
Comment thread .github/extensions/replica-prototype/review-action/index.test.mjs
Keep representative metadata and conversation failures, revision and same-revision conflicts, and filter rejection. Remove overlapping continuation and validation permutations without changing production behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5731532a-7a4f-49c3-95ea-f6c7a21a7b4e
Comment thread .github/extensions/replica-prototype/review-action/index.mts
Comment thread .github/extensions/replica-prototype/review-action/index.mjs
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.

5 participants