Skip to content

docs: document iron-remote-desktop API design philosophy#1192

Merged
Benoît Cortier (CBenoit) merged 9 commits intomasterfrom
docs/document-iron-remote-desktop-design-philosophy
Mar 31, 2026
Merged

docs: document iron-remote-desktop API design philosophy#1192
Benoît Cortier (CBenoit) merged 9 commits intomasterfrom
docs/document-iron-remote-desktop-design-philosophy

Conversation

@CBenoit
Copy link
Copy Markdown
Member

@CBenoit Benoît Cortier (CBenoit) commented Mar 31, 2026

The core rule is: a method belongs in the base API (UserInteraction / Session / SessionBuilder) if the web component itself needs to call it for transparent behaviour, or if the feature is universal across all remote protocol backends. Protocol-specific concepts must go through the extension mechanism instead.

The core rules is: a method belongs in the base API (UserInteraction /
Session / SessionBuilder) if the web component itself needs to call it
for transparent behaviour, or if the feature is universal across all
remote protocol backends. Protocol-specific concepts must go through
the extension mechanism instead.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR documents the intended API boundary and layering rules for the iron-remote-desktop web component / NPM package and its backend extension mechanism, aiming to keep the base API protocol-agnostic and push protocol-specific features into backend extensions.

Changes:

  • Adds a “Design Philosophy” section explaining protocol-agnostic boundaries and the extension mechanism.
  • Updates the web-client README API guidance to emphasize ConfigBuilder + extensions rather than protocol-specific connect(...) parameters.
  • Codifies the same invariant in repo-level docs (ARCHITECTURE.md, AGENTS.md) and the Rust helper crate README.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.

File Description
web-client/iron-remote-desktop/README.md Adds protocol-agnostic design rules + extension mechanism docs; updates public API usage docs.
crates/iron-remote-desktop/README.md Documents the same protocol-agnostic philosophy for the Rust-side traits and extension passthrough.
ARCHITECTURE.md Adds an architectural invariant for the web-client layering and extension mechanism.
AGENTS.md Adds guidance for contributors/reviewers to enforce the web-client layering and extension rule.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@glamberson
Copy link
Copy Markdown
Contributor

Benoît Cortier (@CBenoit) It's like you're reading my mind. Thank you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 31, 2026

Coverage Report 🤖 ⚙️

Past:
Total lines: 38512
Covered lines: 25652 (66.61%)

New:
Total lines: 38512
Covered lines: 25652 (66.61%)

Diff: +0.00%

[this comment will be updated automatically]

@CBenoit Benoît Cortier (CBenoit) enabled auto-merge (squash) March 31, 2026 14:16
@CBenoit Benoît Cortier (CBenoit) merged commit 9bb909e into master Mar 31, 2026
10 checks passed
@CBenoit Benoît Cortier (CBenoit) deleted the docs/document-iron-remote-desktop-design-philosophy branch March 31, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants