Skip to content

Remove SSH Agent deep dive - #828

Merged
neuronull merged 9 commits into
mainfrom
dn/pm-32892/update-ssh-agent-deep-dive
Jul 10, 2026
Merged

Remove SSH Agent deep dive#828
neuronull merged 9 commits into
mainfrom
dn/pm-32892/update-ssh-agent-deep-dive

Conversation

@neuronull

@neuronull neuronull commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-32892

📔 Objective

With the v2 of the SSH Agent, we completely re-architected it to be our own native solution and not depend on bitwarden-russh fork.

The existing deep dive on the subject is mostly generalized background information for on SSH key and agent mechanics.

bitwarden/clients#21791 presents an actual documentation of the SSH Agent v2 architecture.

The present deep dive is essentially a background context on SSH keys and an SSH Agent, which we don't need to explain to users.

@neuronull neuronull self-assigned this Jul 2, 2026
@neuronull neuronull added the documentation Improvements or additions to documentation label Jul 2, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 2, 2026

Copy link
Copy Markdown

Deploying contributing-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: f8b9821
Status: ✅  Deploy successful!
Preview URL: https://f1ca023e.contributing-docs.pages.dev
Branch Preview URL: https://dn-pm-32892-update-ssh-agent.contributing-docs.pages.dev

View logs

@neuronull
neuronull requested review from MGibson1 and quexten July 2, 2026 21:05
@neuronull
neuronull marked this pull request as ready for review July 2, 2026 21:05
@neuronull
neuronull requested a review from a team as a code owner July 2, 2026 21:05
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

This PR removes the SSH Agent deep-dive documentation, deleting docs/architecture/deep-dives/ssh/agent.md and docs/architecture/deep-dives/ssh/index.md, and removing the SSH agent subsection from lock-states.md. The v2 SSH Agent architecture is documented separately in clients PR 21791, and the removed content was general SSH background that does not need to be maintained here.

Code Review Details

No findings. Verified the removal is complete:

  • No remaining references to the deleted ssh/ pages anywhere in the repo (docs, src/, sidebars.js, static assets).
  • commit-signing.mdx and memory-hardening.md mention SSH conceptually but do not link to the deleted deep-dive pages, so no broken internal links result.
  • The lock-states.md edit correctly removes the subsection that previously linked to the now-deleted ./ssh/agent.md; the surrounding "Feature impact" section still reads cleanly.

The two remaining unresolved review threads reference bitwarden-ssh-agent-architecture.md, which is no longer part of this PR's scope; they are outdated relative to the current diff.

Comment thread docs/architecture/deep-dives/ssh/bitwarden-ssh-agent-architecture.md Outdated
Comment thread docs/architecture/deep-dives/ssh/bitwarden-ssh-agent-architecture.md Outdated
quexten
quexten previously approved these changes Jul 3, 2026
@withinfocus withinfocus added the ai-review Request a Claude code review label Jul 6, 2026
Comment thread docs/architecture/deep-dives/ssh/bitwarden-ssh-agent-architecture.md Outdated
Comment thread docs/architecture/deep-dives/ssh/index.mdx Outdated

@withinfocus withinfocus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I wasn't able to see this until now but it seems we have not gotten the word out sufficiently on where documentation should go -- see https://bitwarden.atlassian.net/wiki/spaces/EN/pages/1774977070/Documentation+Patterns. There is essentially a moratorium on expanding these deep dive pages and they should exist "close to code" so that they can aid other engineers and AI more directly. This being in GitHub will also empower you to render your diagrams natively.

I don't know how heavily linked this is, but the page(s) should leave entirely or be more of a launch point, and deep dives that do remain are more of a necessary evil when the spread of a feature goes beyond a single repo.

Comment thread docs/architecture/deep-dives/ssh/index.mdx Outdated
Comment thread docs/architecture/deep-dives/ssh/bitwarden-ssh-agent-architecture.md Outdated
Comment thread docs/architecture/deep-dives/ssh/what-are-ssh-keys.md Outdated
@@ -0,0 +1,188 @@
# Bitwarden SSH Agent architecture

![`Bitwarden SSH Agent high level`](./ssh-agent-v2-highlevel.png#center)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

❌ We use Mermaid for all documentation diagrams (via code) now.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done in the clients changes

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@withinfocus , I attempted to convert all three of my diagrams to Mermaid. I spent a fair amount of time on it both manually and using Claude.

https://github.com/bitwarden/clients/pull/21791/changes

I'm not really pleased with the results especially of the third diagram (in section "The SSH Agent") , in comparison with the PNG files they look objectively worse. Do you have any recommendations to improve them?

Seems like one hard limitation I hit was https://mermaid.ai/open-source/syntax/flowchart.html#limitation

@neuronull

Copy link
Copy Markdown
Contributor Author

👋 Per feedback from @withinfocus , I will shift this PR to just remove the existing ssh agent deep dive docs.

The v2 architecture has moved to https://github.com/bitwarden/clients/pull/21791/changes

Note that I have open questions about how to make the Mermaid diagrams look decent, at present they look worse than the PNGs from draw.io

@neuronull neuronull closed this Jul 10, 2026
@neuronull neuronull reopened this Jul 10, 2026
@neuronull neuronull changed the title Update SSH Agent deep dive with architecture of v2 Remove SSH Agent deep dive Jul 10, 2026

#### agent

The agent crate itself is a the orchestrator of all the above components. It starts and stops the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎨 SUGGESTED: Grammar errors in newly-added prose (cspell won't catch these since all words are individually valid).

Details and fix
  • Line 76: "is a the orchestrator" → "is the orchestrator"
  • Line 25: "handle any each new client connection" → "handle each new client connection"
  • Line 22: "it's keystore populated" → "its keystore populated" (possessive)
  • Line 106: "based on it's authorization policy" → "based on its authorization policy" (possessive)

These are the same its/it's class of typos flagged earlier; a couple instances remain in the current file.

@neuronull
neuronull requested a review from withinfocus July 10, 2026 17:27

@withinfocus withinfocus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

A link to the documentation over in the repo is still valuable, if we want that. Is there no value in the agent having a mention here?

@neuronull

Copy link
Copy Markdown
Contributor Author

A link to the documentation over in the repo is still valuable, if we want that. Is there no value in the agent having a mention here?

This comment: #828 (review)

, noted that documentation should move closer to code and be here for things that span repos. The agent is isolated to clients repo.

Combined with this comment : #828 (comment)

, if I move the new v2 architecture documentation over to clients (in my linked PR) , then all that is left is the present key and agent background info, which I would tend to agree with the prior comment stating that it's not really beneficial info that users couldn't get elsewhere.

Somewhat feeling like getting conflicting feedback 🤔 Can totally link to the client repo's README but it seems to clash with the earlier feeback.

@withinfocus withinfocus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The agent is isolated to clients repo.

That's the one key piece of feedback that answers my question. I at least wondered if it needed broader documentation, but if that's not the case this can go just like it is.

@neuronull
neuronull merged commit d3ea2da into main Jul 10, 2026
10 checks passed
@neuronull
neuronull deleted the dn/pm-32892/update-ssh-agent-deep-dive branch July 10, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Request a Claude code review documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants