Skip to content

refactor: reorganize Plane AI documentation into structured sub-pages#273

Merged
danciaclara merged 8 commits into
masterfrom
chore-update-self-hosted-ai
May 27, 2026
Merged

refactor: reorganize Plane AI documentation into structured sub-pages#273
danciaclara merged 8 commits into
masterfrom
chore-update-self-hosted-ai

Conversation

@akhil-vamshi-konam
Copy link
Copy Markdown
Collaborator

@akhil-vamshi-konam akhil-vamshi-konam commented May 11, 2026

Description

Restructures the Plane AI self-hosting docs from a single monolithic page into a focused sub-page structure under /self-hosting/govern/plane-ai/.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Improvement (change that would cause existing functionality to not work as expected)
  • Code refactoring
  • Performance improvements
  • Documentation update

Screenshots and Media (if applicable)

Test Scenarios

References

Summary by CodeRabbit

  • Documentation
    • Reorganized Plane AI self-hosting documentation with improved navigation structure.
    • Added comprehensive guides for configuring embedding models across Cohere, OpenAI, and AWS Bedrock.
    • Added detailed Plane AI configuration documentation covering LLM setup, OpenSearch integration, and service enablement.
    • Updated documentation links and configuration defaults for clarity.

Review Change Stack

@vercel
Copy link
Copy Markdown

vercel Bot commented May 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
developer-docs Ready Ready Preview, Comment May 27, 2026 3:22pm

Request Review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 11, 2026

Warning

Review limit reached

@danciaclara, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 51 minutes and 56 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8c55c1d2-6bab-4b9d-88e2-7bb532539b3c

📥 Commits

Reviewing files that changed from the base of the PR and between 762ddc9 and 8be4cc5.

📒 Files selected for processing (6)
  • docs/.vitepress/config.mts
  • docs/self-hosting/govern/environment-variables.md
  • docs/self-hosting/govern/plane-ai/aws-opensearch-embedding.md
  • docs/self-hosting/govern/plane-ai/configure-embedding-model.md
  • docs/self-hosting/govern/plane-ai/configure-plane-ai.md
  • vercel.json
📝 Walkthrough

Walkthrough

This PR restructures Plane AI self-hosting documentation from a single comprehensive guide into modular topic-specific pages. The sidebar navigation is reorganized with a collapsible hierarchy, two new configuration guides are introduced (core setup and embedding models), internal documentation links are updated, and a backward-compatibility redirect is added.

Changes

Plane AI Documentation Reorganization

Layer / File(s) Summary
Sidebar navigation restructuring
docs/.vitepress/config.mts
VitePress sidebar config updated to establish Plane AI as a collapsible parent linking to configure-plane-ai with child sections for embedding model and AWS OpenSearch embedding.
Core Plane AI configuration guide
docs/self-hosting/govern/plane-ai/configure-plane-ai.md
New comprehensive setup guide documenting prerequisites, database and OpenSearch configuration, LLM provider keys (OpenAI/Anthropic), custom LLM model setup (OpenAI-compatible and AWS Bedrock with IAM/IRSA profiles), PI-to-Plane deployment wiring, service enablement for Docker Compose and Kubernetes, optional voice input and S3 file uploads, and deployment restart procedures.
Embedding model configuration guide
docs/self-hosting/govern/plane-ai/configure-embedding-model.md
New guide for embedding model setup covering supported providers (Cohere, OpenAI, AWS Bedrock) with output dimensions, configuration paths (existing OpenSearch model vs. auto-deployment), vectorization workflows for Docker and Kubernetes, and model-change procedures with dimension-mismatch warnings.
Cross-reference updates and cleanup
docs/self-hosting/govern/environment-variables.md, docs/self-hosting/govern/aws-opensearch-embedding.md, vercel.json
Updated documentation links in environment variables and AWS OpenSearch embedding pages to point to new guides, adjusted PI custom LLM token default from 128000 to 64000, and added Vercel redirect from old /self-hosting/govern/plane-ai path to new /self-hosting/govern/plane-ai/configure-plane-ai.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • sriramveeraghanta

Poem

🐰 A guide once sprawling, now splits with care,
Each section crystal clear, and easy to share,
The sidebar blooms with branches new,
Embedding models and AI truth,
Docs restructured, docs made right!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the primary change: restructuring Plane AI documentation from a single page into multiple organized sub-pages, matching the core objective of the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore-update-self-hosted-ai

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@akhil-vamshi-konam akhil-vamshi-konam marked this pull request as ready for review May 20, 2026 07:50
Copy link
Copy Markdown

@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: 7

🧹 Nitpick comments (1)
docs/self-hosting/govern/plane-ai/getting-started.md (1)

50-50: 💤 Low value

Consider completing the sentence for clarity.

The phrase "Can be a read replica." is grammatically incomplete. While understandable in context, completing it would improve readability.

✏️ Suggested improvement
-- **`FOLLOWER_POSTGRES_URI`** — Read connection to the main Plane database. PI reads workspace data (issues, pages, projects) directly from here. Can be a read replica.
+- **`FOLLOWER_POSTGRES_URI`** — Read connection to the main Plane database. PI reads workspace data (issues, pages, projects) directly from here. This can be a read replica.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/self-hosting/govern/plane-ai/getting-started.md` at line 50, The
sentence describing FOLLOWER_POSTGRES_URI is incomplete; update the line for
**`FOLLOWER_POSTGRES_URI`** to finish the thought (e.g., "Can be a read replica
of the primary database.") so it reads as a full sentence and clearly explains
that this URI may point to a read replica used for read-only access to workspace
data.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/self-hosting/govern/plane-ai/custom-llm.md`:
- Line 95: The long documentation sentence "Plane AI activates inference profile
mode automatically when a profile ARN or ID is set and ambient AWS credentials
are present (`AWS_ROLE_ARN`, `AWS_WEB_IDENTITY_TOKEN_FILE`,
`AWS_CONTAINER_CREDENTIALS_FULL_URI`, or
`AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE`)." exceeds 120 characters; break it
into shorter lines (e.g., two sentences or a short paragraph) or convert the
credential list into a bulleted list so no line exceeds 120 characters, update
the surrounding text to keep meaning unchanged, and run Prettier to ensure the
formatting check passes.
- Line 17: The sentence "Use a model with at least 1 trillion parameters" is
inconsistent with the examples (llama-3.3-70b-versatile and llama3); update that
requirement to the correct minimum (e.g., "70+ billion parameters" or "1
billion+" as appropriate for Plane AI features) so the guidance matches the
examples, and edit the sentence in custom-llm.md accordingly (referencing the
exact string "Use a model with at least 1 trillion parameters" and the example
model names "llama-3.3-70b-versatile" and "llama3" to locate and verify
consistency).
- Line 13: The table row under the "OpenAI-compatible" cell is over the 120-char
Prettier limit; shorten or reformat that cell to pass CI by either truncating
the provider list (e.g., "OpenAI-compatible (Ollama, Groq, vLLM, LiteLLM, ...)")
or breaking the content into multiple table rows or a wrapped multiline cell so
the line length is ≤120; update the cell text that currently reads "Your model
is served via an OpenAI Chat Completions API (Ollama, Groq, vLLM, LiteLLM,
Cerebras, etc.)" accordingly.
- Line 88: Add a brief clarifying comment next to the CUSTOM_LLM_MODEL_KEY entry
to explain that this value is the simplified inference profile ID (used for
cross-Region system-defined Bedrock inference profiles) and intentionally
differs from the full foundation model ID used with standard credentials;
reference the symbol CUSTOM_LLM_MODEL_KEY and include an example of the full
format (e.g., anthropic.claude-3-5-sonnet-20241022-v2:0) vs the simplified ID
(claude-sonnet-4-6) so readers understand the distinction.

In `@docs/self-hosting/govern/plane-ai/getting-started.md`:
- Line 11: Remove the duplicate sentence "For an overview of what Plane AI can
do, see [Plane AI](https://docs.plane.so/ai/pi-chat)." so it appears only once
in the document; locate both occurrences of that exact string and delete one of
them (either the instance at the earlier position or the later one) to eliminate
redundancy.
- Around line 26-27: Update the listed model versions in the getting-started
docs to remove non-existent entries and replace them with the currently
available recommended versions: remove "GPT-5.2" and any mention of "Claude
Sonnet 4.5", and add OpenAI models "GPT-5.5", "GPT-5.4", "GPT-5.4-mini",
"GPT-5.4-nano" and Anthropic models "Claude Opus 4.7", "Claude Sonnet 4.6",
"Claude Haiku 4.5" where "GPT-5.2" and the old Sonnet entry appear so
configuration examples and defaults reference valid model IDs.

In `@docs/self-hosting/govern/plane-ai/semantic-search.md`:
- Line 32: The doc currently says a mismatch for OPENSEARCH_EMBEDDING_DIMENSION
"breaks indexing" but later notes it "breaks indexing silently"; make these
consistent by updating the earlier sentence that mentions
OPENSEARCH_EMBEDDING_DIMENSION so it reads that a mismatch "breaks indexing
silently" (or equivalent phrasing) and verify the later sentence uses the same
wording to avoid ambiguity.

---

Nitpick comments:
In `@docs/self-hosting/govern/plane-ai/getting-started.md`:
- Line 50: The sentence describing FOLLOWER_POSTGRES_URI is incomplete; update
the line for **`FOLLOWER_POSTGRES_URI`** to finish the thought (e.g., "Can be a
read replica of the primary database.") so it reads as a full sentence and
clearly explains that this URI may point to a read replica used for read-only
access to workspace data.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e1990a1a-0622-4690-ab6a-4449ffb83678

📥 Commits

Reviewing files that changed from the base of the PR and between 92279d1 and 23671a1.

📒 Files selected for processing (7)
  • docs/.vitepress/config.mts
  • docs/self-hosting/govern/aws-opensearch-embedding.md
  • docs/self-hosting/govern/environment-variables.md
  • docs/self-hosting/govern/plane-ai.md
  • docs/self-hosting/govern/plane-ai/custom-llm.md
  • docs/self-hosting/govern/plane-ai/getting-started.md
  • docs/self-hosting/govern/plane-ai/semantic-search.md
💤 Files with no reviewable changes (1)
  • docs/self-hosting/govern/plane-ai.md

Comment thread docs/self-hosting/govern/plane-ai/custom-llm.md Outdated
Comment thread docs/self-hosting/govern/plane-ai/custom-llm.md Outdated
Comment thread docs/self-hosting/govern/plane-ai/custom-llm.md Outdated
Comment thread docs/self-hosting/govern/plane-ai/custom-llm.md Outdated
Comment thread docs/self-hosting/govern/plane-ai/getting-started.md Outdated
Comment thread docs/self-hosting/govern/plane-ai/getting-started.md Outdated
Comment thread docs/self-hosting/govern/plane-ai/semantic-search.md Outdated
Comment thread docs/self-hosting/govern/plane-ai/custom-llm.md Outdated
Copy link
Copy Markdown

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/self-hosting/govern/environment-variables.md`:
- Line 213: The docs show two different defaults for CUSTOM_LLM_MAX_TOKENS (one
entry lists 64000, another lists 128000); pick the correct canonical default and
update both occurrences so they match—specifically change the standalone
environment variable row describing CUSTOM_LLM_MAX_TOKENS and the Plane
Intelligence table entry that references CUSTOM_LLM_MAX_TOKENS to the same value
and wording (e.g., “Defaults to `64000`” or “Defaults to `128000`”) to eliminate
the conflict.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 51f2c0a8-11da-477c-aa90-edaf4bcaa088

📥 Commits

Reviewing files that changed from the base of the PR and between 23671a1 and 279d582.

📒 Files selected for processing (4)
  • docs/self-hosting/govern/environment-variables.md
  • docs/self-hosting/govern/plane-ai/custom-llm.md
  • docs/self-hosting/govern/plane-ai/getting-started.md
  • docs/self-hosting/govern/plane-ai/semantic-search.md
💤 Files with no reviewable changes (1)
  • docs/self-hosting/govern/plane-ai/getting-started.md
✅ Files skipped from review due to trivial changes (2)
  • docs/self-hosting/govern/plane-ai/custom-llm.md
  • docs/self-hosting/govern/plane-ai/semantic-search.md

Comment thread docs/self-hosting/govern/environment-variables.md
Copy link
Copy Markdown

@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: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/self-hosting/govern/plane-ai/configure-embedding-model.md`:
- Line 98: The markdown heading has two spaces after the level-2 marker ("## 
Restart Plane") which fails the linter; update the heading string to use a
single space after the "##" (i.e., "## Restart Plane") so the formatter/prettier
checks pass.

In `@docs/self-hosting/govern/plane-ai/configure-plane-ai.md`:
- Line 50: The description for FOLLOWER_POSTGRES_URI uses a sentence fragment;
update the text for the **`FOLLOWER_POSTGRES_URI`** entry so the read-replica
guidance is a full sentence (e.g., "This can be a read replica.") and ensure the
line reads: "**`FOLLOWER_POSTGRES_URI`** - Read connection to the main Plane
database. PI reads workspace data (issues, pages, projects) directly from here.
This can be a read replica." Replace the fragment "Can be a read replica." with
the full sentence and keep the surrounding context unchanged.
- Around line 88-90: Fix the malformed tip text: replace the incomplete sentence
"Proxy any model through  - it exposes any LLM behind the OpenAI API." and the
run-on sentence around "LiteLLM" with a single clear sentence that names the
product and fixes spacing/punctuation (e.g., "Proxy any model through LiteLLM —
it exposes any LLM behind the OpenAI API. If you need a non-OpenAI/Anthropic LLM
(such as an open-source model or a regional provider for compliance), proxy it
through LiteLLM and then use the OpenAI-compatible setup below."), updating the
lines that mention "Proxy any model through  - it exposes any LLM behind the
OpenAI API." and the subsequent "LiteLLM" sentence.
- Line 37: Update the broken internal link
"/self-hosting/govern/plane-ai/custom-llm" in the sentence referencing
Ollama/Groq/LiteLLM/AWS Bedrock/OpenAI-compatible endpoints so it points to a
valid VitePress page or create that target page; either change the href to the
existing docs route (e.g., the correct slug for the Custom LLM docs) or add a
new page at that path and ensure the link text and route match (identify the
link string "/self-hosting/govern/plane-ai/custom-llm" in the file and replace
or create accordingly).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 106b1a69-2239-48a2-b5fb-252bc2154725

📥 Commits

Reviewing files that changed from the base of the PR and between 279d582 and 762ddc9.

📒 Files selected for processing (4)
  • docs/.vitepress/config.mts
  • docs/self-hosting/govern/plane-ai/configure-embedding-model.md
  • docs/self-hosting/govern/plane-ai/configure-plane-ai.md
  • vercel.json

Comment thread docs/self-hosting/govern/plane-ai/configure-embedding-model.md Outdated
Comment thread docs/self-hosting/govern/plane-ai/configure-plane-ai.md Outdated
```

- **`PLANE_PI_DATABASE_URL`** - PI's own dedicated database. Must not be shared with the main Plane application database.
- **`FOLLOWER_POSTGRES_URI`** - Read connection to the main Plane database. PI reads workspace data (issues, pages, projects) directly from here. Can be a read replica.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use a complete sentence for DB read replica guidance.

“Can be a read replica.” is a fragment; make it a full sentence for clarity.

🧰 Tools
🪛 LanguageTool

[style] ~50-~50: To form a complete sentence, be sure to include a subject or ‘there’.
Context: ...s, pages, projects) directly from here. Can be a read replica. Both are checked at...

(MISSING_IT_THERE)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/self-hosting/govern/plane-ai/configure-plane-ai.md` at line 50, The
description for FOLLOWER_POSTGRES_URI uses a sentence fragment; update the text
for the **`FOLLOWER_POSTGRES_URI`** entry so the read-replica guidance is a full
sentence (e.g., "This can be a read replica.") and ensure the line reads:
"**`FOLLOWER_POSTGRES_URI`** - Read connection to the main Plane database. PI
reads workspace data (issues, pages, projects) directly from here. This can be a
read replica." Replace the fragment "Can be a read replica." with the full
sentence and keep the surrounding context unchanged.

Comment on lines +88 to +90
Proxy any model through - it exposes any LLM behind the OpenAI API. Then use the OpenAI-compatible setup below.

If you need to use an LLM that isn't from OpenAI or Anthropic - for example, an open-source model or a regional provider for compliance reasons - you can proxy it through [LiteLLM](https://docs.litellm.ai).Then use the OpenAI-compatible setup below.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Clean up malformed sentence in the tip block.

The current text has a missing product name and spacing/punctuation issues, which makes the guidance unclear.

Suggested diff
-Proxy any model through  - it exposes any LLM behind the OpenAI API. Then use the OpenAI-compatible setup below.
-
-If you need to use an LLM that isn't from OpenAI or Anthropic - for example, an open-source model or a regional provider for compliance reasons - you can proxy it through [LiteLLM](https://docs.litellm.ai).Then use the OpenAI-compatible setup below.
+Proxy any model through [LiteLLM](https://docs.litellm.ai) — it exposes LLMs behind an OpenAI-compatible API. Then use the OpenAI-compatible setup below.
📝 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
Proxy any model through - it exposes any LLM behind the OpenAI API. Then use the OpenAI-compatible setup below.
If you need to use an LLM that isn't from OpenAI or Anthropic - for example, an open-source model or a regional provider for compliance reasons - you can proxy it through [LiteLLM](https://docs.litellm.ai).Then use the OpenAI-compatible setup below.
Proxy any model through [LiteLLM](https://docs.litellm.ai) — it exposes LLMs behind an OpenAI-compatible API. Then use the OpenAI-compatible setup below.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/self-hosting/govern/plane-ai/configure-plane-ai.md` around lines 88 -
90, Fix the malformed tip text: replace the incomplete sentence "Proxy any model
through  - it exposes any LLM behind the OpenAI API." and the run-on sentence
around "LiteLLM" with a single clear sentence that names the product and fixes
spacing/punctuation (e.g., "Proxy any model through LiteLLM — it exposes any LLM
behind the OpenAI API. If you need a non-OpenAI/Anthropic LLM (such as an
open-source model or a regional provider for compliance), proxy it through
LiteLLM and then use the OpenAI-compatible setup below."), updating the lines
that mention "Proxy any model through  - it exposes any LLM behind the OpenAI
API." and the subsequent "LiteLLM" sentence.

@danciaclara danciaclara merged commit 3b1d721 into master May 27, 2026
8 checks passed
@danciaclara danciaclara deleted the chore-update-self-hosted-ai branch May 27, 2026 15:47
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.

4 participants