Skip to content

Add multi-client support docs and dynamic port forwarding#30

Merged
AnExiledDev merged 1 commit intomainfrom
docs/multi-client-support
Feb 26, 2026
Merged

Add multi-client support docs and dynamic port forwarding#30
AnExiledDev merged 1 commit intomainfrom
docs/multi-client-support

Conversation

@AnExiledDev
Copy link
Owner

@AnExiledDev AnExiledDev commented Feb 26, 2026

Summary

  • Dynamic port forwarding — all ports auto-forward in VS Code (previously only 7847 was static); no impact on CLI users
  • Multi-client documentation — updated prerequisites, installation, and requirements to cover all five supported DevContainer clients: VS Code, DevContainer CLI, JetBrains Gateway, DevPod, and GitHub Codespaces
  • New port forwarding reference page — dedicated docs page covering VS Code auto-detect, devcontainer-bridge (dbr), and SSH tunneling with a "which should I use" guide
  • Tabbed installation instructions — Starlight <Tabs> component on the installation page so users see client-specific steps
  • Bugfix — removed stale merge conflict marker in first-session.md

Files changed (10)

File Change
devcontainer.json Empty forwardPorts, *notify
README.md Multi-client prerequisites + quick start
docs/.../requirements.md "VS Code" → "DevContainer Client" table
docs/.../installation.md Tabbed Step 2 + multi-client rebuild/troubleshooting
docs/.../first-session.md Remove merge conflict marker
docs/.../reference/port-forwarding.md NEW — port forwarding reference
docs/astro.config.mjs Sidebar entry for new page
.devcontainer/CLAUDE.md Updated port forwarding section
.devcontainer/README.md Multi-client intro note
.devcontainer/CHANGELOG.md Changelog entries

Test plan

  • npm run build passes — all internal links valid, 35 pages built
  • Verify tabs render correctly on installation page (npm run dev)
  • Confirm VS Code auto-detects ports dynamically after container rebuild
  • Spot-check docs pages for any remaining VSCode-only language

Summary by CodeRabbit

  • Documentation

    • Expanded setup and Quick Start to support multiple DevContainer clients and client-specific instructions.
    • Added a comprehensive Port Forwarding reference describing three access mechanisms (auto-detect, bridge, SSH) and guidance for choosing/configuring them.
    • Clarified installation, prerequisites, and troubleshooting across clients.
  • Bug Fixes

    • Removed a stale merge-conflict marker from first-session docs.
  • Style

    • Normalized config and content formatting for consistency.

@coderabbitai
Copy link

coderabbitai bot commented Feb 26, 2026

📝 Walkthrough

Walkthrough

Adds multi-client DevContainer documentation and a new Port Forwarding reference; updates devcontainer.json to disable auto-forwarding of port 7847 and change portsAttributes default to notify. Primarily documentation and configuration edits; no runtime code changes.

Changes

Cohort / File(s) Summary
DevContainer metadata & config
.devcontainer/CHANGELOG.md, .devcontainer/CLAUDE.md, .devcontainer/README.md, .devcontainer/devcontainer.json
Documented port-forwarding mechanisms (VS Code auto-detect, devcontainer-bridge, SSH tunneling); adjusted forwardPorts (removed 7847) and changed portsAttributes["*"] from silent to notify; updated changelog/metadata text.
Repository README
README.md
Expanded Quick Start and prerequisites to list multiple DevContainer clients (VS Code, devcontainer CLI, Codespaces, JetBrains Gateway, DevPod) and added client-agnostic instructions.
Docs site config
docs/astro.config.mjs
Stylistic reformatting (quotes/import order) and added Port Forwarding entry to the reference sidebar; no functional runtime change.
Getting Started docs
docs/src/content/docs/getting-started/installation.md, docs/src/content/docs/getting-started/requirements.md, docs/src/content/docs/getting-started/first-session.md
Replaced VS Code–centric instructions with multi-client tabbed guidance, clarified first-build/rebuild steps per client, updated requirements table and port-forwarding tips; minor formatting fix in first-session.
Port Forwarding reference
docs/src/content/docs/reference/port-forwarding.md
New comprehensive page describing three port-forwarding approaches, configuration examples (forwardPorts, portsAttributes), client-specific behavior, setup and verification commands, and selection guidance.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • AnExiledDev/CodeForge#13: Implements the devcontainer-bridge (dbr) tool referenced by the new Port Forwarding documentation.

Poem

🐰 Hopping through tunnels, ports in sight,

Bridges, auto-detect, and SSH light.
Clients abound — all now can play,
Forwarding dreams, night and day.
🥕🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add multi-client support docs and dynamic port forwarding' directly and clearly summarizes the two main changes: multi-client documentation support and dynamic port forwarding configuration.
Description check ✅ Passed The description comprehensively covers all major changes, includes a detailed files-changed table, aligns with the template structure, and provides a clear test plan with progress tracking.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/multi-client-support

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/src/content/docs/getting-started/installation.md (1)

57-119: ⚠️ Potential issue | 🟡 Minor

Step 2 references DevPod support but provides no DevPod setup path.

This page tells users to choose any client and later explicitly names DevPod, but the tabbed install section has no DevPod instructions. Please add a DevPod tab (or a clear link to a dedicated DevPod setup page) so the documented support is actionable.

As per coding guidelines, "User-facing documentation changes MUST be reflected in relevant pages in docs/ if the docs site exists."

Also applies to: 276-278

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/getting-started/installation.md` around lines 57 - 119,
Add a missing DevPod client option to the tabbed clients list: inside the
existing <Tabs> block that uses <TabItem> components (look for TabItem label="VS
Code", "DevContainer CLI", "JetBrains", "Codespaces"), add a new <TabItem
label="DevPod"> that provides either step-by-step DevPod setup commands or a
clear link to a dedicated DevPod setup page; ensure the text mirrors the
style/format of other tabs (command snippets, steps, and a note about port
forwarding) and update any nearby mention of DevPod elsewhere on the page so the
documentation is consistent.
🧹 Nitpick comments (1)
README.md (1)

135-142: Add an explicit pointer for JetBrains Gateway and DevPod in Quick Start.

Quick Start currently lists only VS Code/CLI/Codespaces, while prerequisites advertise 5 supported clients. Add a short “JetBrains/DevPod: see Installation Step 2” bullet to avoid mixed messaging for first-time readers.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 135 - 142, Quick Start is missing bullets for
JetBrains Gateway and DevPod under the "Open in Container" section; add two
short entries alongside VS Code/CLI/Codespaces such as "JetBrains Gateway: open
the repo with JetBrains Gateway (see Installation Step 2)" and "DevPod: follow
DevPod client instructions (see Installation Step 2)" so readers know other
supported clients are available—update the paragraph header "2. **Open in
Container**" in README.md and link each new bullet back to the Installation Step
2 reference used elsewhere in the doc.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@docs/src/content/docs/getting-started/installation.md`:
- Around line 57-119: Add a missing DevPod client option to the tabbed clients
list: inside the existing <Tabs> block that uses <TabItem> components (look for
TabItem label="VS Code", "DevContainer CLI", "JetBrains", "Codespaces"), add a
new <TabItem label="DevPod"> that provides either step-by-step DevPod setup
commands or a clear link to a dedicated DevPod setup page; ensure the text
mirrors the style/format of other tabs (command snippets, steps, and a note
about port forwarding) and update any nearby mention of DevPod elsewhere on the
page so the documentation is consistent.

---

Nitpick comments:
In `@README.md`:
- Around line 135-142: Quick Start is missing bullets for JetBrains Gateway and
DevPod under the "Open in Container" section; add two short entries alongside VS
Code/CLI/Codespaces such as "JetBrains Gateway: open the repo with JetBrains
Gateway (see Installation Step 2)" and "DevPod: follow DevPod client
instructions (see Installation Step 2)" so readers know other supported clients
are available—update the paragraph header "2. **Open in Container**" in
README.md and link each new bullet back to the Installation Step 2 reference
used elsewhere in the doc.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b2261ed and 22ca9cc.

📒 Files selected for processing (10)
  • .devcontainer/CHANGELOG.md
  • .devcontainer/CLAUDE.md
  • .devcontainer/README.md
  • .devcontainer/devcontainer.json
  • README.md
  • docs/astro.config.mjs
  • docs/src/content/docs/getting-started/first-session.md
  • docs/src/content/docs/getting-started/installation.md
  • docs/src/content/docs/getting-started/requirements.md
  • docs/src/content/docs/reference/port-forwarding.md

CodeForge is editor-agnostic but docs were VSCode-first. Update all
documentation to reflect the five supported DevContainer clients:
VS Code, DevContainer CLI, JetBrains Gateway, DevPod, and Codespaces.

- Switch to dynamic port forwarding for all ports in devcontainer.json
- Add tabbed client-specific instructions on the installation page
- Add dedicated port forwarding reference page (VS Code, dbr, SSH)
- Update prerequisites in README and docs to list all clients
- Fix stale merge conflict marker in first-session.md
@AnExiledDev AnExiledDev force-pushed the docs/multi-client-support branch from 22ca9cc to dc58121 Compare February 26, 2026 21:36
@AnExiledDev
Copy link
Owner Author

Review Summary

Reviewed 10 files (375+/148-) covering multi-client documentation, dynamic port forwarding, tabbed installation instructions, and a new port forwarding reference page.

Verified changes:

  • devcontainer.json — dynamic port forwarding (forwardPorts: [], *: notify) correct for VS Code auto-detect
  • Multi-client documentation (VS Code, CLI, JetBrains Gateway, DevPod, Codespaces) — accurate across all docs
  • Tabbed installation instructions using Starlight <Tabs> component
  • New port forwarding reference page — correctly covers all three mechanisms
  • Merge conflict marker removed from first-session.md
  • All internal links valid (verified via npm run build)

Conflict resolution: Rebased on main (which now includes PRs #27-#29). Resolved conflicts in CHANGELOG.md (combined entries), astro.config.mjs (merged sidebar entries including git-workflow, prompt-snippets, and port-forwarding), and first-session.md (trivial whitespace).

Issues found: None
Verdict: Approved — merging.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
docs/src/content/docs/getting-started/installation.md (1)

275-279: Note placement interrupts troubleshooting list.

The :::note[Using a different client?] block is inserted between two VS Code–specific troubleshooting bullets (lines 273-274 about the extension, and line 279 about VS Code version), which breaks the logical flow of the VS Code troubleshooting section.

Consider moving this note either:

  1. Before the "VS Code doesn't show..." section header, or
  2. After the "VS Code version" bullet point (after line 279)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/getting-started/installation.md` around lines 275 -
279, The placement of the `:::note[Using a different client?]` block interrupts
the VS Code troubleshooting bullets; relocate that note so the VS Code tips
remain contiguous — either move the `:::note[Using a different client?]` block
to immediately before the "VS Code doesn't show..." section header or place it
after the "VS Code version — DevContainers requires VS Code 1.85 or later."
bullet, ensuring the extension/version bullets are adjacent.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/src/content/docs/getting-started/installation.md`:
- Around line 93-96: Add a language specifier to the fenced code block
containing the command "docker exec -it <container-name> zsh": change the
opening backticks to include "bash" so the block becomes a bash code fence,
ensuring proper syntax highlighting and accessibility for that snippet in
installation.md.

In `@docs/src/content/docs/reference/port-forwarding.md`:
- Line 81: The sentence stating "SSH access to the container, which is available
when connecting via the `devcontainer` CLI" is misleading; update the wording to
clarify that the `devcontainer` CLI provides shell access via container tooling
(e.g., `docker exec`) rather than SSH, and note that true SSH access requires an
SSH server in the container or Docker SSH configuration. Locate the sentence in
the port-forwarding docs (the line containing "SSH access to the container,
which is available when connecting via the `devcontainer` CLI") and replace it
with a clearer statement such as: "This requires SSH access to the container —
note that the `devcontainer` CLI provides shell access via container tooling
(e.g., `docker exec`), and true SSH access requires an SSH server inside the
container or additional Docker SSH setup." Ensure the revised text mentions both
alternatives (shell via devcontainer/docker exec and explicit SSH setup).

---

Nitpick comments:
In `@docs/src/content/docs/getting-started/installation.md`:
- Around line 275-279: The placement of the `:::note[Using a different client?]`
block interrupts the VS Code troubleshooting bullets; relocate that note so the
VS Code tips remain contiguous — either move the `:::note[Using a different
client?]` block to immediately before the "VS Code doesn't show..." section
header or place it after the "VS Code version — DevContainers requires VS Code
1.85 or later." bullet, ensuring the extension/version bullets are adjacent.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 22ca9cc and dc58121.

📒 Files selected for processing (10)
  • .devcontainer/CHANGELOG.md
  • .devcontainer/CLAUDE.md
  • .devcontainer/README.md
  • .devcontainer/devcontainer.json
  • README.md
  • docs/astro.config.mjs
  • docs/src/content/docs/getting-started/first-session.md
  • docs/src/content/docs/getting-started/installation.md
  • docs/src/content/docs/getting-started/requirements.md
  • docs/src/content/docs/reference/port-forwarding.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • .devcontainer/devcontainer.json
  • README.md
  • docs/src/content/docs/getting-started/requirements.md
  • docs/src/content/docs/getting-started/first-session.md

Comment on lines +93 to +96

```bash
docker exec -it <container-name> zsh
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add language specifier to fenced code block.

The code block at line 93 lacks a language specifier, which may affect syntax highlighting and accessibility.

Proposed fix
-```
-docker exec -it <container-name> zsh
-```
+```bash
+docker exec -it <container-name> zsh
+```
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 93-93: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/getting-started/installation.md` around lines 93 - 96,
Add a language specifier to the fenced code block containing the command "docker
exec -it <container-name> zsh": change the opening backticks to include "bash"
so the block becomes a bash code fence, ensuring proper syntax highlighting and
accessibility for that snippet in installation.md.

ssh -L 3000:localhost:3000 -L 7847:localhost:7847 <container-user>@<container-host>
```

This requires SSH access to the container, which is available when connecting via the `devcontainer` CLI or any Docker SSH setup.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Clarify SSH access availability.

The statement "SSH access to the container, which is available when connecting via the devcontainer CLI" may be misleading. The devcontainer CLI itself doesn't provide SSH access — it uses docker exec for shell access. SSH access requires additional setup (e.g., an SSH server in the container or Docker SSH configurations).

Consider revising to:

-This requires SSH access to the container, which is available when connecting via the `devcontainer` CLI or any Docker SSH setup.
+This requires SSH access to the container, which needs additional configuration (e.g., an SSH server running in the container or Docker's SSH transport).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
This requires SSH access to the container, which is available when connecting via the `devcontainer` CLI or any Docker SSH setup.
This requires SSH access to the container, which needs additional configuration (e.g., an SSH server running in the container or Docker's SSH transport).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/reference/port-forwarding.md` at line 81, The sentence
stating "SSH access to the container, which is available when connecting via the
`devcontainer` CLI" is misleading; update the wording to clarify that the
`devcontainer` CLI provides shell access via container tooling (e.g., `docker
exec`) rather than SSH, and note that true SSH access requires an SSH server in
the container or Docker SSH configuration. Locate the sentence in the
port-forwarding docs (the line containing "SSH access to the container, which is
available when connecting via the `devcontainer` CLI") and replace it with a
clearer statement such as: "This requires SSH access to the container — note
that the `devcontainer` CLI provides shell access via container tooling (e.g.,
`docker exec`), and true SSH access requires an SSH server inside the container
or additional Docker SSH setup." Ensure the revised text mentions both
alternatives (shell via devcontainer/docker exec and explicit SSH setup).

@AnExiledDev AnExiledDev merged commit 2656c02 into main Feb 26, 2026
6 checks passed
@AnExiledDev AnExiledDev deleted the docs/multi-client-support branch February 26, 2026 21:39
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.

1 participant