Skip to content

refactor(canvas): finish strict TypeScript integration - #57

Merged
lukasoppermann merged 38 commits into
mainfrom
lukasoppermann-canvas-typescript-integration
Oct 22, 2026
Merged

lukasoppermann merged 38 commits into
mainfrom
lukasoppermann-canvas-typescript-integration

Conversation

@lukasoppermann

@lukasoppermann lukasoppermann commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Why

Finish checking the canvas's authored Node implementation with strict TypeScript while keeping the installed plugin independent of a compiler or package installation. This final migration layer includes the runtime work landed in #56.

What changes

Convert canvas registration, asset checking, the shared test-context helper and the remaining Pick & polish implementation to authored TypeScript with committed JavaScript output. This includes note storage, conversation validation, batch projection, author profiles and setup-page rendering; shared identity patterns are inherited from the earlier migration layers. Registration and action declarations use the real SDK types from an exact, locked Hub development dependency; the host still supplies the runtime SDK.

Saved connection fields and URLs are checked before restoration, and explicit URL input still overrides saved state. Pick & polish validates stored notes and batches, action inputs and remote responses before using their fields. The guide describes the completed inventory: 65 authored TypeScript modules, two JavaScript entry shims, generated browser assets and validators, and 55 Node runtime test files that exercise the distributed output.

Browser assets and installer behavior remain unchanged from the landed parent. The project provider reload, discovery and invalid-input rejection were verified in the real host; a final installation and connected-action smoke check in the separate prototype consumer session remains pending.

lukasoppermann and others added 5 commits October 21, 2026 14:25
Convert remote branch lookup to strict TypeScript while retaining its generated JavaScript runtime. Include migrated modules in lint, type checks, and plugin freshness checks.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9d7306a9-9831-4c78-89e7-3c5b581c895e
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1aff284a-77f1-4bcf-8245-e30889a2f392
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2e9f29a3-a43f-469a-a5aa-8318559d915a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dbbad477-1ff0-4721-b2a8-01308dc63448
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
@lukasoppermann
lukasoppermann requested review from a team and nshki as code owners October 21, 2026 13:47
Copilot AI max review requested due to automatic review settings October 21, 2026 13:47
@lukasoppermann
lukasoppermann added this pull request to stack #58 October 21, 2026 13:49

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

Installed-plugin registration and connected actions still need the pending consumer-session smoke check.

1 open issue
1 file not reviewed
  • hub/package-lock.json: Generated file
What changed in this PR

Completes the canvas extension’s strict TypeScript migration while keeping installed plugins independent of a compiler or package installation.

Changes:

  • Migrates remaining Node implementation modules to TypeScript with committed JavaScript output.
  • Checks canvas and action contracts against locked SDK types.
  • Validates saved connections, preserves explicit URL overrides, and updates tests and documentation.
File Description
hub/​package.json Adds the SDK development dependency.
hub/​package-lock.json Locks SDK and transitive dependencies.
hub/​docs/​prototype-canvas.md Documents the completed migration and runtime boundaries.
.github/​extensions/​replica-prototype/​tsconfig.json Maps SDK types for compilation.
.github/​extensions/​replica-prototype/​test-support/​with-context/​index.mts Adds the typed test-context helper.
.github/​extensions/​replica-prototype/​test-support/​with-context/​index.mjs Regenerates the JavaScript helper.
.github/​extensions/​replica-prototype/​register-prototype-canvas/​index.test.mjs Tests invalid saved connections and explicit overrides.
.github/​extensions/​replica-prototype/​register-prototype-canvas/​index.mts Adds typed registration and connection validation.
.github/​extensions/​replica-prototype/​register-prototype-canvas/​index.mjs Updates distributed registration output.
.github/​extensions/​replica-prototype/​comment-actions/​index.mts Uses SDK action and schema types.
.github/​extensions/​replica-prototype/​check-prototype-server/​index.mts Defines explicit server-status variants.
.github/​extensions/​replica-prototype/​check-assets/​index.mts Adds typed asset verification.
.github/​extensions/​replica-prototype/​check-assets/​index.mjs Regenerates asset-checking output.

Review effort: Max

Comment thread .github/extensions/replica-prototype/register-prototype-canvas/index.mts Outdated
lukasoppermann and others added 12 commits October 22, 2026 08:01
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 2e9f29a3-a43f-469a-a5aa-8318559d915a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dbbad477-1ff0-4721-b2a8-01308dc63448
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2e9f29a3-a43f-469a-a5aa-8318559d915a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 2e9f29a3-a43f-469a-a5aa-8318559d915a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dbbad477-1ff0-4721-b2a8-01308dc63448
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dbbad477-1ff0-4721-b2a8-01308dc63448
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3d99a971-b97e-45c6-a109-5fa860c3e63e
Migrate local servers, preview proxy, connection storage and development-server lifecycle to strict TypeScript while retaining generated JavaScript runtime modules. Keep host capabilities and explicit startup behavior unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 20ca3725-52e8-4e11-9258-99515de7789d
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3d99a971-b97e-45c6-a109-5fa860c3e63e
@lukasoppermann
lukasoppermann force-pushed the lukasoppermann-canvas-typescript-integration branch from f8e48fc to 01445aa Compare October 22, 2026 06:14
lukasoppermann and others added 5 commits October 22, 2026 17:14
…-hub-connection' into lukasoppermann-canvas-typescript-hub-connection
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2e9f29a3-a43f-469a-a5aa-8318559d915a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dbbad477-1ff0-4721-b2a8-01308dc63448
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dbbad477-1ff0-4721-b2a8-01308dc63448
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dbbad477-1ff0-4721-b2a8-01308dc63448
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2e9f29a3-a43f-469a-a5aa-8318559d915a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
Comment thread hub/docs/prototype-canvas.md Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 20ca3725-52e8-4e11-9258-99515de7789d
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 20ca3725-52e8-4e11-9258-99515de7789d
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
…as-typescript-collaboration' into lukasoppermann-canvas-typescript-runtime
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: dbbad477-1ff0-4721-b2a8-01308dc63448
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2c5cb6d7-c080-4957-a125-07380321d056
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 20ca3725-52e8-4e11-9258-99515de7789d
…as-typescript-collaboration' into lukasoppermann-canvas-typescript-runtime
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 20ca3725-52e8-4e11-9258-99515de7789d
Base automatically changed from lukasoppermann-canvas-typescript-runtime to main October 22, 2026 17:30
Merge the verified runtime layer, check the remaining Pick & polish implementation with strict TypeScript, and preserve generated plugin output and saved-state recovery.

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

Copilot-Session: 3d99a971-b97e-45c6-a109-5fa860c3e63e
GitHub retargeted this layer to main after #56 landed. The main tree exactly matches the verified runtime parent; retain the validated integration tree while recording its landed ancestry.

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

Copilot-Session: 3d99a971-b97e-45c6-a109-5fa860c3e63e
@lukasoppermann
lukasoppermann merged commit 537a526 into main Oct 22, 2026
40 checks passed
@lukasoppermann
lukasoppermann deleted the lukasoppermann-canvas-typescript-integration branch October 22, 2026 17:51
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.

3 participants