Repository navigation
fix(canvas): retrieve improvement notes through comment actions - #71
Open
lukasoppermann wants to merge 33 commits into
Open
lukasoppermann wants to merge 33 commits into
lukasoppermann wants to merge 33 commits into
Conversation
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
There was a problem hiding this comment.
🔵 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
This was referenced Oct 22, 2026
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
force-pushed
the
lukasoppermann-canvas-improvement-filters
branch
from
October 22, 2026 15:30
d539ba5 to
2f7336a
Compare
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
nshki
approved these changes
Oct 23, 2026
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
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
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_commentsand full-detaillist_repository_commentsnow acceptimprovementNotes: "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.