chore: Upgrade Docusaurus from 3.6.3 to 3.9.2#1926
Conversation
Upgrades all Docusaurus packages to the latest version, including support for DocSearch v4 with AI features, improved i18n configuration, and React 19 compatibility. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Dependency ReviewThe following issues were found:
Scanned Files
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1926 +/- ##
==========================================
+ Coverage 74.02% 74.03% +0.01%
==========================================
Files 769 769
Lines 69288 69288
==========================================
+ Hits 51288 51295 +7
+ Misses 14587 14583 -4
+ Partials 3413 3410 -3
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Adds AI-powered conversational search to the documentation site using Algolia's Ask AI feature. Users can now get intelligent, contextual answers from the docs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Warning Rate limit exceeded@osterman has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 19 minutes and 7 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the 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 have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR integrates Algolia DocSearch v4 Ask AI conversational search into the documentation website. Updates include Docusaurus configuration with AI search settings, dependency upgrades to Docusaurus 3.9.2, modified deployment workflow using Algolia Crawler GitHub Action, and accompanying documentation and blog content. Changes
Sequence Diagram(s)sequenceDiagram
participant GH as GitHub Actions
participant Crawler as Algolia Crawler
participant Index as Algolia Index
participant Frontend as Docusaurus Frontend
participant User as User
rect rgb(230, 245, 255)
note over GH,Index: Indexing Flow (on deploy)
GH->>Crawler: Trigger crawler<br/>(via action with<br/>credentials & site-url)
Crawler->>Crawler: Fetch & parse site<br/>(Docusaurus v3 template)
Crawler->>Index: Push indexed records<br/>(appId, apiKey, indexName)
end
rect rgb(245, 230, 255)
note over Frontend,User: Search Flow (runtime)
User->>Frontend: Open search (/ or Cmd+K)
alt Natural Language Query
User->>Frontend: Ask question
Frontend->>Index: Query (DocSearch v4)
Index-->>Frontend: Results + Ask AI context
Frontend->>Frontend: Route to ChatGPT<br/>(via assistantId)
Frontend-->>User: Conversational answer
else Keyword Search
User->>Frontend: Enter keywords
Frontend->>Index: Traditional search
Index-->>Frontend: Keyword results
Frontend-->>User: Results list
end
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
- Add blog post introducing Ask AI conversational documentation search - Add Ask AI to featured section in roadmap - Add Ask AI milestone to documentation initiative 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
✨ Finishing touches
🧪 Generate unit tests (beta)
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. Comment |
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add appId, apiKey, indexName, and suggestedQuestions to askAi config for complete DocSearch v4 Ask AI integration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The suggestedQuestions option is not allowed in Docusaurus's Algolia schema validation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
website/docusaurus.config.js (1)
495-503: SimplifyaskAito string form since it reuses parentalgoliacredentials.DocSearch v4 supports two forms for Ask AI: a simple string form (
askAi: 'assistantId') for reusing parent credentials, and an object form for pointing Ask AI at different credentials/indexes. Since your config duplicates the parentappId,apiKey, andindexName, use the string form instead:askAi: process.env.ALGOLIA_ASKAI_ASSISTANT_ID || 'xzgtsIXZSf7V',This removes the redundancy and clarifies intent.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
website/docusaurus.config.js
🧰 Additional context used
📓 Path-based instructions (1)
website/**
📄 CodeRabbit inference engine (.cursor/rules/atmos-rules.mdc)
website/**: Update website documentation in thewebsite/directory when adding new features, ensure consistency between CLI help text and website documentation, and follow the website's documentation structure and style
Keep website code in thewebsite/directory, follow the existing website architecture and style, and test website changes locally before committing
Keep CLI documentation and website documentation in sync and document new features on the website with examples and use cases
Files:
website/docusaurus.config.js
🧠 Learnings (1)
📓 Common learnings
Learnt from: osterman
Repo: cloudposse/atmos PR: 1686
File: docs/prd/tool-dependencies-integration.md:58-64
Timestamp: 2025-12-13T06:07:37.766Z
Learning: cloudposse/atmos: For PRD docs (docs/prd/*.md), markdownlint issues like MD040/MD010/MD034 can be handled in a separate documentation cleanup commit and should not block the current PR.
Learnt from: Listener430
Repo: cloudposse/atmos PR: 934
File: tests/fixtures/scenarios/docs-generate/README.md.gotmpl:99-118
Timestamp: 2025-01-25T03:51:57.689Z
Learning: For the cloudposse/atmos repository, changes to template contents should be handled in dedicated PRs and are typically considered out of scope for PRs focused on other objectives.
Learnt from: aknysh
Repo: cloudposse/atmos PR: 944
File: go.mod:206-206
Timestamp: 2025-01-17T00:18:57.769Z
Learning: For indirect dependencies with license compliance issues in the cloudposse/atmos repository, the team prefers to handle them in follow-up PRs rather than blocking the current changes, as these issues often require deeper investigation of the dependency tree.
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-11-24T17:35:37.209Z
Learning: Applies to website/** : Update website documentation in the `website/` directory when adding new features, ensure consistency between CLI help text and website documentation, and follow the website's documentation structure and style
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-30T20:13:29.819Z
Learning: Follow PR template including what/why/references. For PRs labeled minor/major: MUST include blog post (website/blog/YYYY-MM-DD-feature-name.mdx) and update website/src/data/roadmap.js
🪛 Gitleaks (8.30.0)
website/docusaurus.config.js
[high] 501-501: Identified an Algolia API Key, which could result in unauthorized search operations and data exposure on Algolia-managed platforms.
(algolia-api-key)
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Acceptance Tests (windows)
- GitHub Check: Acceptance Tests (macos)
- GitHub Check: Summary
🔇 Additional comments (1)
website/docusaurus.config.js (1)
501-501: Static analysis false positive - search-only API key.The static analysis tool flagged this as a sensitive API key. However, as noted on line 493, this is a search-only API key that's safe to include in client-side code. Search-only keys are intended for public use and don't permit write operations or sensitive data access.
The Sentry DSN was missing the protocol prefix, causing CORS errors on preview deployments. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
website/docusaurus.config.js (1)
495-503: Simplify askAi configuration to avoid redundant field duplication.The
appId,apiKey, andindexNamein theaskAiobject (lines 500–502) are unnecessary duplicates. DocSearch v4 Ask AI automatically inherits these from the parentalgoliaconfig when omitted. Either use the simpler string form (askAi: 'xzgtsIXZSf7V') or remove the duplicate fields and let inheritance handle them:askAi: { assistantId: process.env.ALGOLIA_ASKAI_ASSISTANT_ID || 'xzgtsIXZSf7V', }The Algolia API key on line 501 is correctly identified as a public search-only key (as noted on line 493), so no security concern there.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
website/docusaurus.config.js
🧰 Additional context used
📓 Path-based instructions (1)
website/**
📄 CodeRabbit inference engine (.cursor/rules/atmos-rules.mdc)
website/**: Update website documentation in thewebsite/directory when adding new features, ensure consistency between CLI help text and website documentation, and follow the website's documentation structure and style
Keep website code in thewebsite/directory, follow the existing website architecture and style, and test website changes locally before committing
Keep CLI documentation and website documentation in sync and document new features on the website with examples and use cases
Files:
website/docusaurus.config.js
🧠 Learnings (1)
📓 Common learnings
Learnt from: osterman
Repo: cloudposse/atmos PR: 1686
File: docs/prd/tool-dependencies-integration.md:58-64
Timestamp: 2025-12-13T06:07:37.766Z
Learning: cloudposse/atmos: For PRD docs (docs/prd/*.md), markdownlint issues like MD040/MD010/MD034 can be handled in a separate documentation cleanup commit and should not block the current PR.
Learnt from: Listener430
Repo: cloudposse/atmos PR: 934
File: tests/fixtures/scenarios/docs-generate/README.md.gotmpl:99-118
Timestamp: 2025-01-25T03:51:57.689Z
Learning: For the cloudposse/atmos repository, changes to template contents should be handled in dedicated PRs and are typically considered out of scope for PRs focused on other objectives.
Learnt from: aknysh
Repo: cloudposse/atmos PR: 944
File: go.mod:206-206
Timestamp: 2025-01-17T00:18:57.769Z
Learning: For indirect dependencies with license compliance issues in the cloudposse/atmos repository, the team prefers to handle them in follow-up PRs rather than blocking the current changes, as these issues often require deeper investigation of the dependency tree.
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-01T18:25:25.942Z
Learning: Applies to website/docs/**/*.mdx : Build the website after documentation changes: `cd website && npm run build` to verify no broken links, missing images, or MDX component rendering issues
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-11-24T17:35:37.209Z
Learning: Applies to website/** : Update website documentation in the `website/` directory when adding new features, ensure consistency between CLI help text and website documentation, and follow the website's documentation structure and style
🪛 Gitleaks (8.30.0)
website/docusaurus.config.js
[high] 501-501: Identified an Algolia API Key, which could result in unauthorized search operations and data exposure on Algolia-managed platforms.
(algolia-api-key)
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Acceptance Tests (macos)
- GitHub Check: Acceptance Tests (windows)
- GitHub Check: Summary
🔇 Additional comments (1)
website/docusaurus.config.js (1)
339-339: Sentry DSN fix looks good.Adding the
https://protocol prefix correctly resolves the CORS errors on preview deployments. This matches the commit message and is the right fix.
…wler The legacy algolia/docsearch-scraper Docker image was deprecated in February 2022 and was only indexing 1 record instead of ~46,000. Changes: - Replace Docker scraper with official Algolia Crawler GitHub Action - Delete legacy scraper files (website/algolia/) - Add documentation for Algolia search indexing configuration The Algolia Crawler must be configured in dashboard.algolia.com before this workflow will function. Required GitHub secrets: - ALGOLIA_CRAWLER_USER_ID - ALGOLIA_CRAWLER_API_KEY - ALGOLIA_API_KEY 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Important Cloud Posse Engineering Team Review RequiredThis pull request modifies files that require Cloud Posse's review. Please be patient, and a core maintainer will review your changes. To expedite this process, reach out to us on Slack in the |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
docs/algolia-search-indexing.md (1)
11-16: Consider specifying a language for the code fence.The ASCII architecture diagram is in a code fence without a language specifier. You can add
textor leave it empty to satisfy markdownlint.📝 Proposed fix
-``` +```text ┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────┐ │ GitHub Actions │────▶│ Algolia Crawler │────▶│ Algolia Index │ │ (website-deploy) │ │ (cloud-hosted) │ │ (atmos.tools) │ └─────────────────────┘ └──────────────────────┘ └─────────────────┘</details> </blockquote></details> </blockquote></details> <details> <summary>📜 Review details</summary> **Configuration used**: Path: .coderabbit.yaml **Review profile**: CHILL **Plan**: Pro **Disabled knowledge base sources:** - Linear integration is disabled by default for public repositories > You can enable these sources in your CodeRabbit configuration. <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 8c2e98210957ea0343ee6a4f7fee1f44faf9c674 and 1034f1cd65ecee07050e76b45fb645e2ce6de64d. </details> <details> <summary>📒 Files selected for processing (2)</summary> * `.github/workflows/website-deploy-prod.yml` * `docs/algolia-search-indexing.md` </details> <details> <summary>🧰 Additional context used</summary> <details> <summary>📓 Path-based instructions (1)</summary> <details> <summary>.github/workflows/*.{yml,yaml}</summary> **📄 CodeRabbit inference engine (.cursor/rules/atmos-rules.mdc)** > Configure CI to run unit tests, integration tests, golangci-lint, and coverage reporting on all pull requests Files: - `.github/workflows/website-deploy-prod.yml` </details> </details><details> <summary>🧠 Learnings (2)</summary> <details> <summary>📓 Common learnings</summary>Learnt from: osterman
Repo: cloudposse/atmos PR: 1686
File: docs/prd/tool-dependencies-integration.md:58-64
Timestamp: 2025-12-13T06:07:37.766Z
Learning: cloudposse/atmos: For PRD docs (docs/prd/*.md), markdownlint issues like MD040/MD010/MD034 can be handled in a separate documentation cleanup commit and should not block the current PR.Learnt from: Listener430
Repo: cloudposse/atmos PR: 934
File: tests/fixtures/scenarios/docs-generate/README.md.gotmpl:99-118
Timestamp: 2025-01-25T03:51:57.689Z
Learning: For the cloudposse/atmos repository, changes to template contents should be handled in dedicated PRs and are typically considered out of scope for PRs focused on other objectives.Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-11-24T17:35:37.209Z
Learning: Applies to website/** : Update website documentation in thewebsite/directory when adding new features, ensure consistency between CLI help text and website documentation, and follow the website's documentation structure and style</details> <details> <summary>📚 Learning: 2025-11-24T17:35:37.209Z</summary>Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-11-24T17:35:37.209Z
Learning: Applies to website/** : Update website documentation in thewebsite/directory when adding new features, ensure consistency between CLI help text and website documentation, and follow the website's documentation structure and style**Applied to files:** - `docs/algolia-search-indexing.md` </details> </details><details> <summary>🪛 Gitleaks (8.30.0)</summary> <details> <summary>docs/algolia-search-indexing.md</summary> [high] 62-62: Identified an Algolia API Key, which could result in unauthorized search operations and data exposure on Algolia-managed platforms. (algolia-api-key) </details> </details> <details> <summary>🪛 LanguageTool</summary> <details> <summary>docs/algolia-search-indexing.md</summary> [uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”. Context: ...onents 1. **GitHub Actions Workflow** (`.github/workflows/website-deploy-prod.yml`) ... (GITHUB) --- [uncategorized] ~81-~81: The official name of this software platform is spelled with a capital “H”. Context: ...hod. The GitHub Action is configured in `.github/workflows/website-deploy-prod.yml`. ##... (GITHUB) --- [typographical] ~90-~90: Consider using typographic quotation marks here. Context: ...ect the `atmos.tools` crawler. 4. Click "Start crawl" or "Restart crawling". ### Manual (API... (EN_QUOTES) --- [typographical] ~90-~90: Consider using typographic quotation marks here. Context: ...ols` crawler. 4. Click "Start crawl" or "Restart crawling". ### Manual (API) For scripting or au... (EN_QUOTES) </details> </details> <details> <summary>🪛 markdownlint-cli2 (0.18.1)</summary> <details> <summary>docs/algolia-search-indexing.md</summary> 11-11: Fenced code blocks should have a language specified (MD040, fenced-code-language) </details> </details> </details> <details> <summary>⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)</summary> * GitHub Check: Acceptance Tests (windows) * GitHub Check: Acceptance Tests (macos) * GitHub Check: Acceptance Tests (linux) * GitHub Check: Summary </details> <details> <summary>🔇 Additional comments (3)</summary><blockquote> <details> <summary>docs/algolia-search-indexing.md (2)</summary><blockquote> `1-134`: **Excellent documentation!** This is thorough, well-organized documentation that clearly explains the Algolia indexing setup, configuration, and troubleshooting. The architecture diagram, component breakdown, and step-by-step guidance make this very helpful for future maintainers. --- `59-70`: The API key in the documentation is a search-only key already exposed in your production config. No action needed—this is safe to keep as-is. </blockquote></details> <details> <summary>.github/workflows/website-deploy-prod.yml (1)</summary><blockquote> `74-81`: **Action version is valid.** The `algolia/algoliasearch-crawler-github-actions@v1` is verified to exist and is the official Algolia action. Using the major version tag `@v1` is the correct approach—it ensures you get latest patch releases with security fixes while maintaining stability on the v1 API. The configuration looks solid with all required secrets and environment variables properly referenced. </blockquote></details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
- Rename blog post to 2026-01-07 and improve intro (remove generic "We're excited") - Add Algolia + ChatGPT attribution throughout - Update roadmap: move Ask AI to Q1 2026, sort milestones by date descending - Remove Ask AI from featured (already in Documentation milestones) - Add API key ACL permissions section to Algolia docs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In @website/blog/2026-01-07-ask-ai-search.mdx:
- Line 26: There are two identical "## How It Works" headings causing duplicate
anchors; rename the second heading (the one currently "## How It Works" that
appears after the first) to a distinct title such as "## Under the Hood" or "##
Technical Implementation", update any local links or anchor references that
pointed to the old heading, and ensure the new heading text is used consistently
in the document (search for the second occurrence of "## How It Works" to locate
and change it).
- Line 24: The sentence "**Seamless experience** - Switch between keyword search
and AI assistant without leaving the search dialog" is missing terminal
punctuation; edit that line in the blog post and add a period (or appropriate
punctuation) at the end so it reads "...search dialog." to properly terminate
the paragraph before the next heading.
🧹 Nitpick comments (1)
docs/algolia-search-indexing.md (1)
11-16: Consider adding language identifier to code block.The fenced code block contains ASCII art but lacks a language identifier. Add
textfor proper syntax highlighting.📝 Proposed fix
-``` +```text ┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────┐ │ GitHub Actions │────▶│ Algolia Crawler │────▶│ Algolia Index │ │ (website-deploy) │ │ (cloud-hosted) │ │ (atmos.tools) │ └─────────────────────┘ └──────────────────────┘ └─────────────────┘ -``` +```
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
docs/algolia-search-indexing.mdwebsite/blog/2026-01-07-ask-ai-search.mdxwebsite/src/data/roadmap.js
🧰 Additional context used
📓 Path-based instructions (2)
website/**
📄 CodeRabbit inference engine (.cursor/rules/atmos-rules.mdc)
website/**: Update website documentation in thewebsite/directory when adding new features, ensure consistency between CLI help text and website documentation, and follow the website's documentation structure and style
Keep website code in thewebsite/directory, follow the existing website architecture and style, and test website changes locally before committing
Keep CLI documentation and website documentation in sync and document new features on the website with examples and use cases
Files:
website/src/data/roadmap.jswebsite/blog/2026-01-07-ask-ai-search.mdx
website/blog/*.mdx
📄 CodeRabbit inference engine (CLAUDE.md)
PRs labeled
minorormajorMUST include a blog post atwebsite/blog/YYYY-MM-DD-feature-name.mdxwith YAML frontmatter, using only tags defined inwebsite/blog/tags.yml
Files:
website/blog/2026-01-07-ask-ai-search.mdx
🧠 Learnings (5)
📓 Common learnings
Learnt from: osterman
Repo: cloudposse/atmos PR: 1686
File: docs/prd/tool-dependencies-integration.md:58-64
Timestamp: 2025-12-13T06:07:37.766Z
Learning: cloudposse/atmos: For PRD docs (docs/prd/*.md), markdownlint issues like MD040/MD010/MD034 can be handled in a separate documentation cleanup commit and should not block the current PR.
Learnt from: Listener430
Repo: cloudposse/atmos PR: 934
File: tests/fixtures/scenarios/docs-generate/README.md.gotmpl:99-118
Timestamp: 2025-01-25T03:51:57.689Z
Learning: For the cloudposse/atmos repository, changes to template contents should be handled in dedicated PRs and are typically considered out of scope for PRs focused on other objectives.
📚 Learning: 2026-01-04T00:55:21.720Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-04T00:55:21.720Z
Learning: PRs labeled `minor` or `major` MUST update `website/src/data/roadmap.js` with shipped milestones, status, changelog link, PR number, and initiative progress percentage
Applied to files:
website/src/data/roadmap.js
📚 Learning: 2025-12-13T06:07:37.766Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 1686
File: docs/prd/tool-dependencies-integration.md:58-64
Timestamp: 2025-12-13T06:07:37.766Z
Learning: cloudposse/atmos: For PRD docs (docs/prd/*.md), markdownlint issues like MD040/MD010/MD034 can be handled in a separate documentation cleanup commit and should not block the current PR.
Applied to files:
website/src/data/roadmap.js
📚 Learning: 2025-11-24T17:35:37.209Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-11-24T17:35:37.209Z
Learning: Applies to website/** : Update website documentation in the `website/` directory when adding new features, ensure consistency between CLI help text and website documentation, and follow the website's documentation structure and style
Applied to files:
docs/algolia-search-indexing.md
📚 Learning: 2025-11-07T14:52:55.217Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 1761
File: docs/prd/claude-agent-architecture.md:331-439
Timestamp: 2025-11-07T14:52:55.217Z
Learning: In the cloudposse/atmos repository, Claude agents are used as interactive tools, not in automated/headless CI/CD contexts. Agent documentation and patterns should assume synchronous human interaction.
Applied to files:
website/blog/2026-01-07-ask-ai-search.mdx
🪛 Gitleaks (8.30.0)
docs/algolia-search-indexing.md
[high] 81-81: Identified an Algolia API Key, which could result in unauthorized search operations and data exposure on Algolia-managed platforms.
(algolia-api-key)
🪛 LanguageTool
docs/algolia-search-indexing.md
[uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”.
Context: ...onents 1. GitHub Actions Workflow (.github/workflows/website-deploy-prod.yml) ...
(GITHUB)
[uncategorized] ~100-~100: The official name of this software platform is spelled with a capital “H”.
Context: ...hod. The GitHub Action is configured in .github/workflows/website-deploy-prod.yml. ##...
(GITHUB)
[typographical] ~109-~109: Consider using typographic quotation marks here.
Context: ...ect the atmos.tools crawler. 4. Click "Start crawl" or "Restart crawling". ### Manual (API...
(EN_QUOTES)
[typographical] ~109-~109: Consider using typographic quotation marks here.
Context: ...ols` crawler. 4. Click "Start crawl" or "Restart crawling". ### Manual (API) For scripting or au...
(EN_QUOTES)
website/blog/2026-01-07-ask-ai-search.mdx
[typographical] ~21-~21: Consider using a typographic opening quote here.
Context: ...language queries** - Ask questions like "How do I configure AWS SSO authenticatio...
(EN_QUOTES)
[typographical] ~21-~21: Consider using a typographic close quote here.
Context: ...w do I configure AWS SSO authentication?" or "What's the difference between stack...
(EN_QUOTES)
[typographical] ~21-~21: Consider using a typographic opening quote here.
Context: ...I configure AWS SSO authentication?" or "What's the difference between stacks and...
(EN_QUOTES)
[typographical] ~21-~21: Consider using a typographic close quote here.
Context: ...ifference between stacks and components?" - Contextual answers - Responses ar...
(EN_QUOTES)
[grammar] ~24-~24: Please add a punctuation mark at the end of paragraph.
Context: ...AI assistant without leaving the search dialog ## How It Works Ask AI uses Algolia's...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~40-~40: Consider using a typographic opening quote here.
Context: ...h dialog. Try asking questions like: - "How do I set up AWS SSO with Atmos?" - "...
(EN_QUOTES)
[typographical] ~40-~40: Consider using a typographic close quote here.
Context: ... - "How do I set up AWS SSO with Atmos?" - "What is the difference between impor...
(EN_QUOTES)
[typographical] ~41-~41: Consider using a typographic opening quote here.
Context: ..."How do I set up AWS SSO with Atmos?" - "What is the difference between imports a...
(EN_QUOTES)
[typographical] ~41-~41: Consider using a typographic close quote here.
Context: ...ference between imports and inheritance?" - "How do I create a custom workflow?" ...
(EN_QUOTES)
[typographical] ~42-~42: Consider using a typographic opening quote here.
Context: ...nce between imports and inheritance?" - "How do I create a custom workflow?" - "W...
(EN_QUOTES)
[typographical] ~42-~42: Consider using a typographic close quote here.
Context: ...?" - "How do I create a custom workflow?" - "What YAML functions are available?" ...
(EN_QUOTES)
[typographical] ~43-~43: Consider using a typographic opening quote here.
Context: ... "How do I create a custom workflow?" - "What YAML functions are available?" The...
(EN_QUOTES)
[typographical] ~43-~43: Consider using a typographic close quote here.
Context: ...?" - "What YAML functions are available?" The AI assistant will provide detailed...
(EN_QUOTES)
🪛 markdownlint-cli2 (0.18.1)
docs/algolia-search-indexing.md
11-11: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Acceptance Tests (windows)
- GitHub Check: Acceptance Tests (macos)
- GitHub Check: Acceptance Tests (linux)
- GitHub Check: Summary
🔇 Additional comments (2)
website/src/data/roadmap.js (1)
388-392: LGTM!The new roadmap milestones are well-structured and align with the PR objectives. All required fields are present and consistent with existing entries.
docs/algolia-search-indexing.md (1)
78-89: No issue—this API key is intentionally search-only.The exposed key is confirmed as a search-only read-only key, as documented in
website/docusaurus.config.jswith the comment "this is SEARCH ONLY API key and is not sensitive information." Algolia search keys are safe for frontend exposure per security best practices. No change needed.
- Add missing period at end of list item - Rename duplicate "How It Works" heading to "Under the Hood" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…urus from 3.6.3 to 3.9.2 (#1926)
|
These changes were released in v1.204.0-rc.3. |
) * index on osterman/aqua-zip-exe-install: 083d3de chore: Upgrade Docusaurus from 3.6.3 to 3.9.2 (#1926) * fix: Fix Aqua registry factory and add darwin_all pattern support - Fix nil registry factory by injecting real Aqua registry factory - Load configured registries from atmos.yaml in NewInstaller() - Add Asset field to AquaPackage for github_release types - Support platform-specific asset patterns (e.g., darwin_all) - Add test for replicated darwin_all override pattern - Move test fixtures to proper testdata directories - Clean up unnecessary aqua config files - Refactor FindTool to reduce complexity and improve logging Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * chore: Remove duplicate test fixture directory Remove toolchain/installer/atmos/ which was accidentally committed alongside the proper test fixture at toolchain/installer/testdata/atmos/. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add platform overrides support to atmos inline registry - Add parseOverrides() to parse platform-specific asset/format overrides in atmos inline registry (goos/goarch matching with custom asset templates) - Fix toolchain info command to show correct registry name from tool metadata instead of always showing "aqua-public" - Add debug/warning logging when loading registries from atmos.yaml to help diagnose registry configuration issues - Add comprehensive test fixture with all supported package types (github_release, http) and formats (tar.gz, zip, pkg, raw) - Add CLI test cases for toolchain help, info, registry search, and error handling - Fix lint errors in pkg/template/ast.go and pkg/utils/git_test.go Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Use WithBinDir in installer tests to prevent directory pollution Tests were using SetAtmosConfig() but then calling installer.New() which doesn't read from the config. This caused binaries to be installed to the current directory (toolchain/installer/atmos/) instead of temp directories. Fixed by: - Using WithBinDir(tempDir) when creating the installer - Using separate src/bin directories to avoid filename conflicts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Add sanitization to toolchain info test snapshots Add sanitize rules to replace dynamic version numbers and dates with stable placeholders (X.X.X and YYYY-MM-DD) in toolchain info tests. This prevents test failures when new tool versions are released. Affected tests: - atmos toolchain info shows atmos-inline registry - atmos toolchain info http type tool - atmos toolchain info tar.gz format tool - atmos toolchain info raw format tool - atmos toolchain info yaml output Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Restore aqua/ folder and add README The aqua/ folder was accidentally deleted, causing CI failures with "gofumpt: command not found" in the autofix workflow. The aqua-installer action needs aqua.yaml to know which tools to install. Restored: - aqua/aqua.yaml - Main Aqua config - aqua/imports/gofumpt.yaml - gofumpt v0.7.0 definition - aqua/aqua-checksums.json - Security checksums Added: - aqua/README.md - Documentation explaining the folder's purpose Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Update tests for reserved flag conflicts and toolchain logging 1. Custom command integration tests: Rename `--verbose/-v` flag to `--detailed/-d` to avoid conflicts with the new global `--verbose` flag registered on RootCmd. 2. Regenerate CLI snapshots to include new debug logs from toolchain registry loading: - "Loading toolchain registries from atmos.yaml" - "Successfully loaded configured registry from atmos.yaml" 3. Update toolchain info snapshot for CI environment (no versions installed). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: Revert custom command test changes The verbose->detailed flag rename is being handled in a separate branch: osterman/fix-custom-cmd-flag-conflict Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Remove conflicting custom command tests and fix toolchain snapshots 1. Remove TestCustomCommandIntegration_BooleanFlagDefaults and TestCustomCommandIntegration_BooleanFlagTemplatePatterns tests that use --verbose flag which conflicts with global --verbose flag. (Being handled in osterman/fix-custom-cmd-flag-conflict branch) 2. Add ignore_trailing_whitespace to toolchain info test - lipgloss table padding varies by platform/terminal width 3. Add platform sanitization (darwin/linux_arm64/amd64 -> linux_amd64) to toolchain info yaml output test 4. Regenerate toolchain snapshots with proper sanitization Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Address CodeRabbit review comments for toolchain - Fix info command to show proper error for non-existent tools instead of "incorrect usage" by adding SilenceUsage and SilenceErrors flags - Add missing test case for "atmos toolchain info non-existent tool" - Regenerate snapshots for correct CI environment (no installed tools) - Fix comment casing in clean_test.go and setup.go for godot linter - Update usage.mdx to use {{.Version}} template syntax consistently - Add notes for example version and upstream path changes in docs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Regenerate describe_config_imports snapshot with toolchain debug lines Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: increase toolchain test coverage by 50% Add comprehensive tests for toolchain packages: - extract_test.go: Tests for file extraction functions (isGzipMime, isBinaryMime, isTarGzFile, resolveBinaryName, validatePath, isSafePath, findBinaryInDir, installExtractedBinary, Unzip, copyFileFallback, copyWithLimit, extractDir) - download_test.go: Tests for download functions (writeResponseToCache, buildDownloadError, isHTTP404, downloadAsset cache behavior) - asset_test.go: Additional tests for template functions (trimPrefix, trimSuffix, replace, eq, ne, ternary) and edge cases (missing owner/name, default template) - types_test.go: Tests for wrapper functions (NewInstaller options, registry factory, builtin aliases) Coverage improved from ~5% to 55.7% for toolchain/installer package. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: make toolchain tests cross-platform compatible with Windows - Remove query string filename test case from download_test.go (? is invalid in Windows filenames and GitHub releases don't use query strings anyway) - Use filepath.FromSlash() in TestValidatePath to handle OS-specific path separators - Add windows to platform sanitization regex in toolchain.yaml so Windows-specific asset URLs are normalized in snapshots Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: improve TestIsBinaryMime and TestRealRegistryFactory assertions - TestIsBinaryMime: Refactor to actually verify isBinaryMime() behavior instead of discarding the result. Tests now create real files with appropriate content (octet-stream, zip, gzip, text) and assert the function correctly identifies binary vs non-binary MIME types. - TestRealRegistryFactory_NewAquaRegistry: Set XDG_CACHE_HOME to temp dir for hermetic testing, avoiding writes to real user cache and preventing environment-specific test flakiness. Addresses CodeRabbit review feedback. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: update constant comments to reference identifier names Update comments for unexported constants to explicitly reference the constant identifier name in parentheses, maintaining godot linter compliance while documenting the identifier: - defaultMkdirPermissions in clean_test.go - defaultDirPermissions and versionPrefix in setup.go Addresses CodeRabbit review feedback. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: fix TestIsGzipMime and replace hand-written mock with mockgen - TestIsGzipMime: Always call isGzipMime() and assert the result for all test cases (both true and false), not just when expected=true. This ensures negative cases (zip, octet-stream) are actually validated. - Replace hand-written mockToolRegistryForTypes with mockgen-generated MockToolRegistry. Add //go:generate directives to registry.go and types.go for generating mocks in both packages. Addresses CodeRabbit review feedback. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: delegate NewInstallerWithResolver to NewInstaller for registry injection The deprecated NewInstallerWithResolver was bypassing the realRegistryFactory injection by calling installer.NewInstallerWithResolver directly. Now it delegates to NewInstaller with the appropriate options, ensuring callers of the deprecated function still get the registry factory injection. Addresses CodeRabbit review feedback. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: pin mockgen to v0.6.0 and fix godot comment lints - Change mockgen@latest to mockgen@v0.6.0 in go:generate directives for reproducible builds (matches go.mod version) - Fix multi-line comment in NewInstaller to have periods on each line Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * add/update tests * address comments --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> Co-authored-by: Andriy Knysh <aknysh@users.noreply.github.com> Co-authored-by: aknysh <andriy.knysh@gmail.com>
what
why
The upgrade includes support for DocSearch v4 with AI-powered search features, improved i18n configuration options for multi-domain deployments, React 19 compatibility fixes, and new build APIs.
references
Summary by CodeRabbit
New Features
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.