Skip to content

feat: define cerebro distribution channels and dedicated docs presence#396

Merged
yacosta738 merged 14 commits into
mainfrom
feat/247-define-cerebro-distribution-channels-and-dedicated-docs-presence
Apr 2, 2026
Merged

feat: define cerebro distribution channels and dedicated docs presence#396
yacosta738 merged 14 commits into
mainfrom
feat/247-define-cerebro-distribution-channels-and-dedicated-docs-presence

Conversation

@yacosta738
Copy link
Copy Markdown
Contributor

@yacosta738 yacosta738 commented Apr 2, 2026

Summary
Defines and implements the complete Cerebro distribution and documentation presence for the Corvus platform.
Planning (all decisions closed)

  • Distribution channels: GitHub Releases + Docker (MUST), npm and crates.io deferred
  • Binary: ship only cerebro (not cerebro-serve)
  • Artifact naming: cerebro-{os}-{arch} pattern (5 targets)
  • Docker: dallay/cerebro + ghcr.io/dallay/cerebro, multi-arch, distroless
  • Versioning: aligned with monorepo (0.1.0 → 0.4.0), tracked by release-please
  • Docs: dedicated top-level section with 8 pages, EN/ES bilingual parity required
    CI/Distribution implementation
  • _build-cerebro-binaries.yml — reusable 5-target build matrix workflow
  • Dockerfile.release-prebuilt — multi-arch Docker image (distroless, non-root)
  • _publish.yml — extended with Cerebro binary builds, Docker image job, release assets
  • release-please-config.json — Cerebro Cargo.toml added to version tracking
  • Makefile — 5 new cerebro-* targets (check, test, clippy, fmt, build)
    Documentation implementation (16 pages bilingual)
  • Overview (index.mdx) EN/ES — what Cerebro is, features, architecture, installation
  • Configuration EN/ES — CerebroConfig, storage modes, env vars, SurrealDB, TUI
  • Running EN/ES — serve command, Docker, health check, logging, graceful shutdown
  • CLI Reference EN/ES — serve and migrate subcommands with all flags
  • MCP Tools Reference EN/ES — 13 tools (8 implemented, 5 planned) with JSON-RPC examples
  • Integration EN/ES — MemoryCerebroConfig, CORVUS_CEREBRO_* env vars, Docker Compose
  • Migration EN/ES — moved from guides/cerebro/ to new section
  • Operations EN/ES — storage modes, TUI dashboard, backup/restore, troubleshooting
    OpenSpec artifacts
  • openspec/changes/cerebro-docs/ — planning proposals and issue tracking
  • openspec/changes/cerebro-distribution/ — distribution decisions and issue tracking

Tested Information

  • make docs-check — ✅ PASS (0 errors, 0 warnings, biome + astro check + content validation)
  • make check-format — ✅ PASS (all spotless checks)
  • Pre-commit lychee link checker — ✅ PASS on every commit (14/14 internal links verified)
  • Pre-commit conventional commits — ✅ PASS on every commit
  • cargo update — ✅ Cerebro version correctly updated to 0.4.0 in both Cargo.lock files
    Note: make all fails on composeApp:compileCommonMainKotlinMetadata due to a pre-existing bug (java.util.UUID used in commonMain). This is unrelated to this PR — App.kt was not modified.

Documentation Impact

  • Docs updated in:
    • clients/web/apps/docs/astro.config.mjs — new Cerebro sidebar section
    • clients/web/apps/docs/src/content/docs/cerebro/ — 8 EN pages
    • clients/web/apps/docs/src/content/docs/es/cerebro/ — 8 ES pages
    • Migration guide moved from guides/cerebro/ to cerebro/ (sidebar updated, old entry removed)
  • I verified the documentation matches the current behavior.

Breaking Changes

  • Migration guide URL changes from guides/cerebro/migration to cerebro/migration. The sidebar entry has been updated. A redirect should be added if external bookmarks exist.
  • Cerebro version jumps from 0.1.0 to 0.4.0 (aligned with monorepo). Acceptable pre-1.0.

Checklist

  • I have checked that there isn't already a PR solving the same problem.
  • I have read the Contributing Guidelines (https://github.com/dallay/corvus/blob/main/.github/CONTRIBUTING.md).
  • I ensured my code follows the project's style guidelines.
  • I have added or updated tests that prove my fix is effective or that my feature works.
  • I have updated the documentation, or I explained above why no documentation update is needed.
  • I verified the documentation matches the current behavior.
  • I have documented any breaking changes in the Breaking Changes section.
  • I have linked the related issue (if any).

This pull request introduces comprehensive support for the new cerebro memory service, including build automation, Docker image publishing, release asset management, and developer documentation. The changes ensure that cerebro binaries are built and published for all major platforms, integrated into the release process, and accompanied by detailed CLI documentation for users and developers.

CI/CD and Release Pipeline Integration:

  • Adds a dedicated GitHub Actions workflow (.github/workflows/_build-cerebro-binaries.yml) to build and package cerebro binaries for Linux, macOS, and Windows, with cross-compilation support and artifact upload.
  • Integrates cerebro into the main publish pipeline (_publish.yml): verifies version, builds binaries, publishes Docker images for Linux/amd64 and arm64, and includes cerebro artifacts in the GitHub release assets. [1] [2] [3] [4]

Developer Experience:

  • Adds Makefile targets for building, testing, linting, and formatting the cerebro Rust service, making local development and CI checks easier. [1] [2]

Documentation Improvements:

  • Updates the docs site navigation to add a full "Cerebro" section with guides for configuration, running, migration, CLI reference, and more. Removes the old migration doc link in favor of the new structure. [1] [2]
  • Adds a comprehensive Cerebro CLI Reference document detailing all commands, options, and usage examples for the cerebro binary.

Related Issues

Closes #247, closes #248, closes #249, closes #250
Closes #383, closes #384, closes #385, closes #386, closes #387
Closes #388, closes #389, closes #390
Closes #391, closes #392, closes #393, closes #394, closes #395

- Bump cerebro version from 0.1.0 to 0.4.0 to match monorepo
- Add modules/cerebro/Cargo.toml to release-please extra-files
- Update Cargo.lock files to reflect version change

Closes DALLAY-234
…tifacts

- cerebro-docs: docs section IA, bilingual requirements, 8 implementation issues
- cerebro-distribution: channels, platform matrix, versioning, 5 implementation issues

Refs: DALLAY-151, DALLAY-152, DALLAY-153, DALLAY-154
Reusable workflow to build Cerebro binaries for 5 platform targets:
- x86_64-unknown-linux-gnu (native cargo)
- aarch64-unknown-linux-gnu (cross)
- x86_64-apple-darwin (native cargo)
- aarch64-apple-darwin (native cargo)
- x86_64-pc-windows-msvc (native cargo)

Builds only the cerebro binary (not cerebro-serve).
Mirrors _build-native-binaries.yml pattern used by corvus.

Closes DALLAY-231
- Add Cerebro top-level sidebar section after Agent Runtime
- Create cerebro/index.mdx (EN) with Overview content
- Create es/cerebro/index.mdx (ES) with Spanish translation
- Add stub pages for all 7 planned sub-pages (EN + ES)
- Sidebar includes all 8 pages with ES translations
- Overview covers: key features, when to use, architecture, installation

Closes DALLAY-223
- Move guides/cerebro/migration.md to cerebro/migration.md (EN)
- Move es/guides/cerebro/migration.md to es/cerebro/migration.md (ES)
- Update frontmatter slugs to new paths
- Fix mcp-schema relative link after move
- Remove old Cerebro Migration entry from Guides sidebar
- mcp-schema/*.json files remain under guides/cerebro/ (data files)

Closes DALLAY-228
- 2-stage build: busybox prep + distroless release
- Selects correct binary based on TARGETARCH (amd64/arm64)
- Embeds default config binding to 0.0.0.0:4040
- Data volume at /cerebro-data for SurrealDB persistence
- Runs as non-root (UID 65532)
- Uses same distroless base as corvus runtime

Closes DALLAY-232
- cerebro-check: cargo check
- cerebro-test: cargo test
- cerebro-clippy: clippy with -D warnings
- cerebro-fmt: format check
- cerebro-build: release build of cerebro binary

Closes DALLAY-235
- Add build-cerebro-binaries job calling reusable workflow
- Add docker-image-cerebro job for multi-arch Cerebro Docker image
  to DockerHub and GHCR with semver tags
- Extend release-assets job to download and publish Cerebro archives
  alongside corvus artifacts with SHA256 checksums
- Add cerebro version validation to release consistency check

Closes DALLAY-233
- Integration (EN/ES): MemoryCerebroConfig, CORVUS_CEREBRO_* env vars,
  Docker Compose example, security considerations
- Operations (EN/ES): storage modes, TUI dashboard, monitoring,
  backup/restore, troubleshooting guide

Closes DALLAY-229, DALLAY-230
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 2, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds Cerebro distribution and docs: reusable CI workflow to build platform binaries, publish multi-arch Docker images, include Cerebro in release assets/checksums, Makefile targets, bilingual docs and sidebar, Cargo version bump, release-please integration, Dockerfile for prebuilt images, and planning/spec artifacts.

Changes

Cohort / File(s) Summary
CI Workflows
/.github/workflows/_build-cerebro-binaries.yml, /.github/workflows/_publish.yml
New reusable workflow to build Cerebro across 5 targets (native/cross), package as .tar.gz/.zip, upload artifacts; _publish.yml now validates modules/cerebro/Cargo.toml, invokes the build workflow, builds/pushes multi-arch Docker image, and includes Cerebro artifacts and checksums in release assets.
Make targets
Makefile
Added cerebro-check, cerebro-test, cerebro-clippy, cerebro-fmt, cerebro-build and updated .PHONY.
Docs config / sidebar
clients/web/apps/docs/astro.config.mjs
Removed old Guides entry and added a top-level “Cerebro” sidebar section (EN/ES) with multiple subpages.
English docs
clients/web/apps/docs/src/content/docs/cerebro/*
Added Cerebro docs: index.mdx, configuration.md, running.md, cli-reference.md, mcp-tools.md, integration.md, operations.md, updated migration.md slug/location.
Spanish docs
clients/web/apps/docs/src/content/docs/es/cerebro/*
Added Spanish translations mirroring the EN Cerebro pages and adjusted migration slug/links.
Cerebro crate & release tooling
modules/cerebro/Cargo.toml, release-please-config.json
Bumped crate version 0.1.0 → 0.4.0 and added modules/cerebro/Cargo.toml to release-please extra-files for version propagation.
Docker (prebuilt)
modules/cerebro/Dockerfile.release-prebuilt
New two-stage Dockerfile that selects prebuilt linux-x64/linux-arm64 binary via TARGETARCH, generates default config, enforces non-root user, exposes port 4040.
Distribution & planning
openspec/changes/cerebro-distribution/..., openspec/changes/cerebro-docs/...
Added proposals, state manifests, and issues describing distribution model, artifact naming, platform matrix, docs IA, and task tracking.
Misc
.gitignore
Expanded ignore patterns to include AI agent symlink/backup variants and related backups.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor Dev
    participant GHA as "GitHub Actions"
    participant Build as "build-cerebro-binaries\n(matrix job)"
    participant Toolchain as "Rust Toolchain Resolver"
    participant Cross as "cross (conditional)"
    participant Artifact as "Artifact Storage\n(actions/upload-artifact)"
    participant Registry as "Docker Registry\n(DockerHub/GHCR)"

    Dev->>GHA: push tag / trigger publish
    GHA->>GHA: validate versions (gradle, cargos, package.json)
    GHA->>Build: workflow_call -> start matrix job (OS/target)
    Build->>Toolchain: parse rust-toolchain.toml, set channel
    Build->>Cross: install/use cross (for non-native Linux targets)
    Build->>Build: cargo / cross build `cerebro` (target-specific)
    Build->>Build: package binary -> tar.gz or .zip
    Build->>Artifact: upload archive artifact
    GHA->>Artifact: download linux artifacts for image build
    GHA->>Registry: build & push multi-arch Docker image (select binary by TARGETARCH)
    GHA->>GHA: generate checksums, attach Corvus + Cerebro assets to Release
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title follows Conventional Commits style with 'feat:' prefix and clearly describes the main objective: defining Cerebro distribution channels and documentation presence.
Description check ✅ Passed PR description is comprehensive with summary, implementation details, testing evidence, documentation impact, breaking changes, and all checklist items completed.
Linked Issues check ✅ Passed All 14 linked issues (#247#250, #383#390, #392#395) address distribution channels [#247,#250], docs architecture [#248], release automation [#249], docs implementation [#383#390,#392], CI/CD workflows [#391#393], and version alignment [#394#395]. Changes implement all core requirements.
Out of Scope Changes check ✅ Passed All changes directly support linked issue requirements: build workflows, Docker config, version updates, release automation, Makefile targets, and comprehensive bilingual documentation (16 pages). Minor scope addition (.gitignore) is preparatory for agent resource management and not disruptive.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/247-define-cerebro-distribution-channels-and-dedicated-docs-presence

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.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 2, 2026

✅ Contributor Report

User: @yacosta738
Status: Passed (12/13 metrics passed)

Metric Description Value Threshold Status
PR Merge Rate PRs merged vs closed 89% >= 30%
Repo Quality Repos with ≥100 stars 0 >= 0
Positive Reactions Positive reactions received 10 >= 1
Negative Reactions Negative reactions received 0 <= 5
Account Age GitHub account age 3078 days >= 30 days
Activity Consistency Regular activity over time 108% >= 0%
Issue Engagement Issues with community engagement 0 >= 0
Code Reviews Code reviews given to others 500 >= 0
Merger Diversity Unique maintainers who merged PRs 2 >= 0
Repo History Merge Rate Merge rate in this repo 91% >= 0%
Repo History Min PRs Previous PRs in this repo 191 >= 0
Profile Completeness Profile richness (bio, followers) 90 >= 0
Suspicious Patterns Spam-like activity detection 1 N/A

Contributor Report evaluates based on public GitHub activity. Analysis period: 2025-04-02 to 2026-04-02

Copy link
Copy Markdown
Contributor

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

Caution

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

⚠️ Outside diff range comments (1)
clients/web/apps/docs/src/content/docs/es/cerebro/migration.md (1)

74-74: ⚠️ Potential issue | 🟡 Minor

Broken relative link — path mismatch with EN version.

The EN migration doc (line 83) uses ../guides/cerebro/mcp-schema/ to reference the MCP schema directory. The ES version uses ./mcp-schema/, which would resolve to es/cerebro/mcp-schema/ — a path that likely doesn't exist.

Since the ES file is at es/cerebro/migration.md, the correct relative path should be ../../guides/cerebro/mcp-schema/.

🔗 Proposed fix
-- [`mcp-schema/`](./mcp-schema/)
+- [`mcp-schema/`](../../guides/cerebro/mcp-schema/)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@clients/web/apps/docs/src/content/docs/es/cerebro/migration.md` at line 74,
The relative link in migration.md currently points to `./mcp-schema/` (rendered
as [`mcp-schema/`](./mcp-schema/)); update that link to match the English doc by
using the correct relative path from es/cerebro/migration.md — change the href
to `../../guides/cerebro/mcp-schema/` so the link resolves to the shared guides
directory (locate the link text `mcp-schema/` in migration.md and replace the
`./mcp-schema/` target).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@clients/web/apps/docs/src/content/docs/cerebro/cli-reference.md`:
- Line 21: The architecture diagram code block lacks a language specifier, so
update the fenced code block containing the text "cerebro <COMMAND>" to include
a language (e.g., change ``` to ```text) so it renders with correct formatting
and syntax highlighting; locate the code block in cli-reference.md that shows
the architecture diagram command and add the language token after the opening
backticks.
- Around line 97-99: The log output code block in the CLI reference (the block
containing the line starting with INFO cerebro_configured=true
endpoint="http://127.0.0.1:4040/mcp") does not have a language specifier; update
that fenced code block from ``` to ```text so it renders correctly (e.g., locate
the fenced block around the log output and prefix it with "text").

In `@clients/web/apps/docs/src/content/docs/cerebro/integration.md`:
- Around line 21-24: The architecture diagram block lacks a language specifier;
update the fenced code block containing "Corvus Runtime ──MCP/HTTP──▶ Cerebro
Service ──▶ SurrealDB" (the three-line diagram including "(corvus)" and
"(cerebro serve)") to use a text language specifier by changing the opening
triple backticks to "```text" so the diagram renders as plain text in the docs.
- Around line 97-99: The fenced code block containing the log line INFO
cerebro_configured=true endpoint="http://127.0.0.1:4040/mcp" is missing a
language specifier; update the opening triple-backtick fence to include a
language (use "text") so it becomes ```text to ensure proper rendering and
syntax highlighting for that log output.
- Around line 68-70: The closing triple-backtick for the bash code fence around
"CORVUS_CEREBRO_AUTH_TOKEN=my-secret corvus" should be separated by a blank
line; edit the code block (the ```bash fence that wraps that line) to add an
empty line immediately before the closing ``` and also ensure the surrounding
admonition delimiter ":::” is present/closed after the code block so the
markdown structure is valid.

In `@clients/web/apps/docs/src/content/docs/cerebro/operations.md`:
- Around line 40-48: The TOML snippet showing storage_mode and the [surreal]
block currently includes literal credentials (username, password); update the
docs around the snippet to explicitly state these are example values only and
instruct users to use secrets management (e.g., environment variables, secret
stores) in production, replace the hard-coded username/password with
placeholders in the example, and add a one-line security note next to the
[surreal] configuration (referencing the keys username and password and the
storage_mode setting) recommending secure handling of credentials.

In `@clients/web/apps/docs/src/content/docs/cerebro/running.md`:
- Around line 108-116: Add a language specifier to the fenced code block under
the "## MCP Endpoint" heading so the URL template is recognized by the linter;
update the triple-backtick fence around "POST http://{host}:{port}/mcp" to use a
language like "text" or "http" (e.g., ```text) so MD040 is resolved and the
block renders correctly.

In `@clients/web/apps/docs/src/content/docs/es/cerebro/integration.md`:
- Around line 22-25: The fenced code block containing the ASCII diagram "Runtime
Corvus ──MCP/HTTP──▶ Servicio Cerebro ──▶ SurrealDB (corvus) (cerebro serve)
(embebido)" and the fenced block with the log line INFO cerebro_configured=true
endpoint="http://127.0.0.1:4040/mcp" should each include a language identifier;
update the first block to use ```text and the log block to use ```log so the
diagram and log output are properly classified (search for the exact diagram
text and the INFO cerebro_configured= line to locate the blocks).

In `@clients/web/apps/docs/src/content/docs/es/cerebro/operations.md`:
- Around line 40-48: Add a brief security tip after the TOML snippet that
references the storage_mode and [surreal] block and warns against embedding the
password field in plain text; instruct users to load sensitive values like the
surreal password from environment variables (e.g., CEREBRO_SURREAL_PASSWORD)
when running cerebro and show the recommended usage pattern (env var + cerebro
serve --config ...) in a small tip/notice block following the example.

In `@clients/web/apps/docs/src/content/docs/es/cerebro/running.md`:
- Around line 110-118: Add a language specifier to the fenced code block that
contains "POST http://{host}:{port}/mcp" so it matches the English version;
change the opening triple-backtick for that block to include "text" (i.e.,
```text) to ensure proper syntax highlighting and consistency.
- Around line 155-166: The table under the "Enlace de Red" heading has missing
spaces after pipe separators causing linter warnings; update the table rows and
header so every cell has a single space after each '|' (e.g., change entries
like "|`127.0.0.1`" to "| `127.0.0.1`") for all rows ("Desarrollo local",
"Docker", "Producción") and the header line to fix formatting and satisfy the
linter.

In `@modules/cerebro/Dockerfile.release-prebuilt`:
- Around line 34-46: Add a container health probe for the release image: update
the Dockerfile.release-prebuilt release stage (the stage that sets ENTRYPOINT
["cerebro"] and CMD ["serve", "--config", "/etc/cerebro/config.toml"]) to
include a HEALTHCHECK instruction or document why it’s omitted; if adding a
HEALTHCHECK, use the exec form that runs a small compiled probe binary bundled
into the image (or the cerebro binary with a --health-check subcommand) to hit
the service endpoint (e.g., localhost:4040/health) and return proper exit codes,
otherwise add a brief note to repository docs explaining that Kubernetes/Compose
liveness/readiness probes are expected and why a distroless shell prevents
in-image HEALTHCHECK scripts.
- Around line 27-29: The Dockerfile currently writes a hardcoded password
('password = "cerebro-docker-default"') into /etc/cerebro/config.toml; change
this to avoid shipping a default secret by requiring an env var (e.g.,
CEREBRO_SURREAL_PASSWORD) at runtime and failing fast if unset, or at minimum
replace the literal with a clear placeholder like "CHANGE_ME_BEFORE_PRODUCTION"
and add a prominent warning comment in the Dockerfile warning users to override
it; update the config generation step that writes to /etc/cerebro/config.toml
and any docs to reference CEREBRO_SURREAL_PASSWORD so maintainers know where to
set it.
- Line 3: The Dockerfile uses an unpinned base image "FROM busybox:latest AS
prep"; update that FROM instruction in
modules/cerebro/Dockerfile.release-prebuilt to pin busybox to a specific
immutable version or digest (for example a semver tag like busybox:1.37.0 or a
sha256 digest) so builds are reproducible and safe—modify the FROM line that
defines the "prep" stage accordingly.

In `@openspec/changes/cerebro-distribution/proposal.md`:
- Line 71: Update the proposal's "Entry point" line to match the Dockerfile's
config-based startup: replace `cerebro serve --host 0.0.0.0 --port 4040` with a
note that the container runs the `cerebro` binary (ENTRYPOINT ["cerebro"]) with
default CMD ["serve", "--config", "/etc/cerebro/config.toml"], and mention that
host/port are configured via /etc/cerebro/config.toml rather than CLI flags;
reference the ENTRYPOINT/CMD and the config file path so readers know where to
change host/port.
- Around line 86-95: The fenced code blocks containing "docker run -v
cerebro-data:/cerebro-data -p 4040:4040 dallay/cerebro:latest" and the "cerebro
serve" example need blank lines above and below the ```bash fences to satisfy
markdownlint; update the proposal text around the two ```bash blocks so there is
an empty line before each opening ```bash and an empty line after each closing
``` to ensure proper spacing and lint compliance.

In `@openspec/changes/cerebro-docs/proposal.md`:
- Around line 27-37: The fenced diagram block starting with "Cerebro
(top-level)" lacks a language specifier; change the opening fence from ``` to
```text so the IA diagram is rendered as plain text (i.e., update the fenced
code block surrounding the lines containing "Cerebro (top-level)" and its tree
entries to begin with ```text).
- Around line 103-123: The fenced code block that shows the directory trees for
src/content/docs/cerebro/ and src/content/docs/es/cerebro/ in the proposal.md is
missing a language specifier; update the opening triple-backtick for that block
to include "text" (i.e., change ``` to ```text) so the file structure diagram is
rendered with the correct syntax highlighting. Locate the fenced block
containing the two directory lists (the lines starting with
"src/content/docs/cerebro/" and "src/content/docs/es/cerebro/") and modify its
opening fence accordingly.

---

Outside diff comments:
In `@clients/web/apps/docs/src/content/docs/es/cerebro/migration.md`:
- Line 74: The relative link in migration.md currently points to `./mcp-schema/`
(rendered as [`mcp-schema/`](./mcp-schema/)); update that link to match the
English doc by using the correct relative path from es/cerebro/migration.md —
change the href to `../../guides/cerebro/mcp-schema/` so the link resolves to
the shared guides directory (locate the link text `mcp-schema/` in migration.md
and replace the `./mcp-schema/` target).
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3f65910d-2377-4d5d-bc83-e749f22515d6

📥 Commits

Reviewing files that changed from the base of the PR and between bf3f1e7 and f391660.

⛔ Files ignored due to path filters (2)
  • clients/agent-runtime/Cargo.lock is excluded by !**/*.lock
  • modules/cerebro/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (28)
  • .github/workflows/_build-cerebro-binaries.yml
  • .github/workflows/_publish.yml
  • Makefile
  • clients/web/apps/docs/astro.config.mjs
  • clients/web/apps/docs/src/content/docs/cerebro/cli-reference.md
  • clients/web/apps/docs/src/content/docs/cerebro/configuration.md
  • clients/web/apps/docs/src/content/docs/cerebro/index.mdx
  • clients/web/apps/docs/src/content/docs/cerebro/integration.md
  • clients/web/apps/docs/src/content/docs/cerebro/mcp-tools.md
  • clients/web/apps/docs/src/content/docs/cerebro/migration.md
  • clients/web/apps/docs/src/content/docs/cerebro/operations.md
  • clients/web/apps/docs/src/content/docs/cerebro/running.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/cli-reference.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/configuration.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/index.mdx
  • clients/web/apps/docs/src/content/docs/es/cerebro/integration.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/mcp-tools.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/migration.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/operations.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/running.md
  • modules/cerebro/Cargo.toml
  • modules/cerebro/Dockerfile.release-prebuilt
  • openspec/changes/cerebro-distribution/proposal.md
  • openspec/changes/cerebro-distribution/state.yaml
  • openspec/changes/cerebro-docs/issues.md
  • openspec/changes/cerebro-docs/proposal.md
  • openspec/changes/cerebro-docs/state.yaml
  • release-please-config.json
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: sonar
  • GitHub Check: pr-checks
  • GitHub Check: Cloudflare Pages
🧰 Additional context used
📓 Path-based instructions (2)
**/*

⚙️ CodeRabbit configuration file

**/*: Security first, performance second.
Validate input boundaries, auth/authz implications, and secret management.
Look for behavioral regressions, missing tests, and contract breaks across modules.

Files:

  • modules/cerebro/Cargo.toml
  • openspec/changes/cerebro-docs/state.yaml
  • clients/web/apps/docs/src/content/docs/cerebro/migration.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/migration.md
  • openspec/changes/cerebro-distribution/state.yaml
  • release-please-config.json
  • Makefile
  • clients/web/apps/docs/src/content/docs/cerebro/integration.md
  • clients/web/apps/docs/astro.config.mjs
  • clients/web/apps/docs/src/content/docs/cerebro/cli-reference.md
  • openspec/changes/cerebro-docs/issues.md
  • clients/web/apps/docs/src/content/docs/cerebro/index.mdx
  • clients/web/apps/docs/src/content/docs/es/cerebro/operations.md
  • clients/web/apps/docs/src/content/docs/cerebro/mcp-tools.md
  • modules/cerebro/Dockerfile.release-prebuilt
  • clients/web/apps/docs/src/content/docs/es/cerebro/configuration.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/cli-reference.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/mcp-tools.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/integration.md
  • clients/web/apps/docs/src/content/docs/cerebro/configuration.md
  • openspec/changes/cerebro-distribution/proposal.md
  • openspec/changes/cerebro-docs/proposal.md
  • clients/web/apps/docs/src/content/docs/cerebro/operations.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/index.mdx
  • clients/web/apps/docs/src/content/docs/cerebro/running.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/running.md
**/*.{md,mdx}

⚙️ CodeRabbit configuration file

**/*.{md,mdx}: Verify technical accuracy and that docs stay aligned with code changes.
For user-facing docs, check EN/ES parity or explicitly note pending translation gaps.

Files:

  • clients/web/apps/docs/src/content/docs/cerebro/migration.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/migration.md
  • clients/web/apps/docs/src/content/docs/cerebro/integration.md
  • clients/web/apps/docs/src/content/docs/cerebro/cli-reference.md
  • openspec/changes/cerebro-docs/issues.md
  • clients/web/apps/docs/src/content/docs/cerebro/index.mdx
  • clients/web/apps/docs/src/content/docs/es/cerebro/operations.md
  • clients/web/apps/docs/src/content/docs/cerebro/mcp-tools.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/configuration.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/cli-reference.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/mcp-tools.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/integration.md
  • clients/web/apps/docs/src/content/docs/cerebro/configuration.md
  • openspec/changes/cerebro-distribution/proposal.md
  • openspec/changes/cerebro-docs/proposal.md
  • clients/web/apps/docs/src/content/docs/cerebro/operations.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/index.mdx
  • clients/web/apps/docs/src/content/docs/cerebro/running.md
  • clients/web/apps/docs/src/content/docs/es/cerebro/running.md
🧠 Learnings (5)
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/**/Cargo.toml : Do not add heavy dependencies for minor convenience; justify new crate additions

Applied to files:

  • modules/cerebro/Cargo.toml
  • release-please-config.json
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/**/Cargo.toml : Preserve release-size profile assumptions in `Cargo.toml` and avoid adding heavy dependencies unless clearly justified

Applied to files:

  • release-please-config.json
  • .github/workflows/_publish.yml
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/**/*.rs : Run `cargo fmt --all -- --check`, `cargo clippy --all-targets -- -D warnings`, and `cargo test` for code validation, or document which checks were skipped and why

Applied to files:

  • release-please-config.json
  • Makefile
📚 Learning: 2026-02-17T07:28:38.934Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-17T07:28:38.934Z
Learning: Applies to .agents/AGENTS.md : Document agent configurations and capabilities in AGENTS.md

Applied to files:

  • clients/web/apps/docs/src/content/docs/cerebro/configuration.md
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/.github/**/*.{yml,yaml} : For workflow/template-only changes, ensure YAML/template syntax validity

Applied to files:

  • .github/workflows/_publish.yml
🪛 Checkov (3.2.510)
modules/cerebro/Dockerfile.release-prebuilt

[low] 3-3: Ensure the base image uses a non latest version tag

(CKV_DOCKER_7)


[low] 1-46: Ensure that HEALTHCHECK instructions have been added to container images

(CKV_DOCKER_2)


[low] 28-29: Base64 High Entropy String

(CKV_SECRET_6)

🪛 Hadolint (2.14.0)
modules/cerebro/Dockerfile.release-prebuilt

[warning] 3-3: Using latest is prone to errors if the image will ever update. Pin the version explicitly to a release tag

(DL3007)

🪛 LanguageTool
clients/web/apps/docs/src/content/docs/es/cerebro/operations.md

[grammar] ~19-~19: Corrige la mayúscula.
Context: ...y resolución de problemas. ## Modos de Almacenamiento Cerebro soporta múltiples backends de al...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~26-~26: Agrega un espacio.
Context: ...--------------------------| | SurrealDB embebido| Durable | Alto | Producción...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~31-~31: Agrega un signo de puntuación.
Context: ...::caution El modo remote_surreal está definido pero aún no implementado. No lo use...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)


[grammar] ~35-~35: Cambia el sustantivo.
Context: ...roducción. ::: ### SurrealDB Embebido (Default) Usa RocksDB como motor de almacenamiento...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_NOUN)


[grammar] ~58-~58: Corrige la mayúscula.
Context: ...= "/var/lib/cerebro/data" ``` ### Modo En Memoria Sin persistencia. Todos los datos se pie...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~60-~60: Cambia la palabra o signo.
Context: ...odos los datos se pierden al reiniciar. Usa solo para pruebas y desarrollo. ```tom...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_OTHER)


[grammar] ~67-~67: Corrige la mayúscula.
Context: ...torage_mode = "in_memory" ``` ### Modo Disco Persistencia basada en archivos. Menos r...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~77-~77: Corrige la mayúscula.
Context: .../cerebro/disk-data" ``` ## Respaldo de Almacenamiento Configura un backend de respaldo si el p...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~128-~128: Corrige la mayúscula.
Context: ..."session", "credential", ] ``` ### Qué Muestra el TUI - Feed en vivo de llamadas a he...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~159-~159: Corrige la mayúscula.
Context: ... cerebro serve ``` ### Verificación de Salud Envía una llamada mem_stats para verif...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~173-~173: Corrige la mayúscula.
Context: ...s o sondas de monitoreo. ## Respaldo y Restauración ### SurrealDB Embebido Los datos de Surreal...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~175-~175: Corrige la mayúscula.
Context: ... Respaldo y Restauración ### SurrealDB Embebido Los datos de SurrealDB embebido están en...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~207-~207: Corrige la mayúscula.
Context: ...p.tar.gz -C /data ``` ## Resolución de Problemas ### Problemas Comunes | Síntoma | Causa | S...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~209-~209: Corrige la mayúscula.
Context: ... Resolución de Problemas ### Problemas Comunes | Síntoma | Causa | Solución | |--------...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~219-~219: Corrige la mayúscula.
Context: ...mpilar con --features tui | ### Modo Debug Activa logging detallado para diagnostic...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~227-~227: Corrige la mayúscula.
Context: ...ttp=debug cerebro serve ``` ## Páginas Relacionadas - Configuración — Refer...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~229-~229: Agrega un signo de puntuación.
Context: ... serve ``` ## Páginas Relacionadas - Configuración — Referencia complet...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)

clients/web/apps/docs/src/content/docs/cerebro/mcp-tools.md

[style] ~52-~52: The words ‘observation’ and ‘observed’ are quite similar. Consider replacing ‘observed’ with a different word.
Context: ...at | String | No | What was observed | |why` | String |...

(VERB_NOUN_SENT_LEVEL_REP)

clients/web/apps/docs/src/content/docs/es/cerebro/configuration.md

[grammar] ~20-~20: Corrige la mayúscula.
Context: ...los valores por defecto. ## Archivo de Configuración bash cerebro serve --config cerebro.toml Formatos soportados: .toml y .json. ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~28-~28: Corrige la mayúscula.
Context: ...ados: .toml y .json. ## Referencia Completa de Configuración ```toml # Servidor ho...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~28-~28: Corrige la mayúscula.
Context: ...y.json`. ## Referencia Completa de Configuración toml # Servidor host = "127.0.0.1" # Dirección de enlace (default: 127.0.0.1) port = 4040 # Puerto de enlace (default: 4040) scheme = "http" # Esquema URL (auto-detectado) # Autenticación # auth_token = "..." # Usar CEREBRO_AUTH_TOKEN env var # audit_token = "..." # Usar CEREBRO_AUDIT_TOKEN env var # Almacenamiento storage_mode = "embedded_surreal" # Ver Modos de Almacenamiento storage_fallback = "none" # Respaldo si falla el primario storage_path = "./cerebro-data" # Ruta para almacenamiento en disco # SurrealDB (embebido) [surreal] namespace = "cerebro" # Namespace de SurrealDB database = "cerebro" # Base de datos de SurrealDB # storage_path = "..." # Ruta personalizada de RocksDB # username = "root" # Requerido en modo embebido # password = "..." # Requerido en modo embebido # embedded_bind = "127.0.0.1:0" # Dirección del motor embebido # embedded_allow_non_loopback = false # Worker en segundo plano (experimental) [worker] embeddings_enabled = false enrichment_enabled = false # Panel TUI [tui] enabled = false event_buffer = 256 refresh_ms = 500 max_payload_bytes = 4096 redact_fields = [ "password", "secret", "token", "auth", "authorization", "api_key", "apikey", "cookie", "session", "credential", ] ## Ajustes del Servidor | Campo | Tipo ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~73-~73: Corrige la mayúscula.
Context: ...n", "credential", ] ``` ## Ajustes del Servidor | Campo | Tipo | Default | De...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~79-~79: Agrega un espacio.
Context: ... | | scheme | String | auto-detectado| http para loopback, sino https| El...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~84-~84: Corrige la mayúscula.
Context: ...eme}://{host}:{port}/mcp`. ## Modos de Almacenamiento | Modo | Valor ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~88-~88: Aquí puede haber un error.
Context: ...al| Default. Respaldado por RocksDB. | | En memoria |in_memory` ...

(QB_NEW_ES)


[grammar] ~89-~89: Elimina la palabra o signo.
Context: ... | Sin persistencia. Solo pruebas. | | Disco | disk ...

(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_OTHER)


[grammar] ~90-~90: Aquí puede haber un error.
Context: ... | Persistencia basada en archivos. | | SurrealDB remoto | remote_surreal ...

(QB_NEW_ES)


[grammar] ~99-~99: Corrige la mayúscula.
Context: ...pback por defecto. ::: ### Respaldo de Almacenamiento Si el almacenamiento primario falla al i...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~106-~106: Oración con errores
Context: ... | Default. Falla si el primario falla.| | En memoria | in_memory | Pi...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)


[grammar] ~107-~107: Oración con errores
Context: ...mory | Pierde persistencia, sigue corriendo.| | Disco |disk` | Re...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)


[grammar] ~108-~108: Oración con errores
Context: ... | Respaldo a almacenamiento en disco.| | SurrealDB remoto| remote_surreal | Aú...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)


[grammar] ~111-~111: Corrige la mayúscula.
Context: ...ementado. | ## Variables de Entorno | Variable | Sobrescribe ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~145-~145: Corrige la mayúscula.
Context: ...enlace externo | ## Configuración del Panel TUI La sección [tui] configura el pa...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~162-~162: Corrige la mayúscula.
Context: ...CEREBRO_TUI_ENABLED=1`. ::: ## Ejemplo Mínimo de Producción ```toml host = "0.0.0.0"...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~162-~162: Corrige la mayúscula.
Context: ...I_ENABLED=1`. ::: ## Ejemplo Mínimo de Producción toml host = "0.0.0.0" port = 4040 storage_mode = "embedded_surreal" [surreal] namespace = "cerebro" database = "cerebro" username = "root" password = "cambiar-en-produccion" ```bash CEREBRO_AUTH_TOKEN=mi-token-secreto cerebro serve --config cerebro.toml ```

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

clients/web/apps/docs/src/content/docs/es/cerebro/cli-reference.md

[grammar] ~23-~23: Corrige la mayúscula.
Context: ...bash cerebro ``` ## Opciones Globales | Flag | Descripción ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[style] ~67-~67: Considere alternativas para este anglicismo (recomendable sobre todo en contextos más formales).
Context: ...enlaza a {host}:{port} y sirve MCP en POST /mcp. - Maneja apagado graceful en `SI...

(POST)

clients/web/apps/docs/src/content/docs/es/cerebro/mcp-tools.md

[grammar] ~13-~13: Corrige la mayúscula.
Context: ...docType: reference --- # Referencia de Herramientas MCP Cerebro expone 13 herramientas de ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[style] ~16-~16: Considere alternativas para este anglicismo (recomendable sobre todo en contextos más formales).
Context: ...s de memoria vía JSON-RPC sobre HTTP en POST /mcp. Todas las peticiones usan el pro...

(POST)


[grammar] ~19-~19: Corrige la mayúscula.
Context: ...colo MCP (JSON-RPC 2.0). ## Formato de Petición json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "<nombre_herramienta>", "arguments": { ... } } } ## Estado de las Herramientas | Estado ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~33-~33: Corrige la mayúscula.
Context: ...s": { ... } } } ``` ## Estado de las Herramientas | Estado | Significado ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~38-~38: Agrega un signo de puntuación.
Context: ...al | | Planificada | Definida pero retorna NotImplemented | --- ...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)


[grammar] ~42-~42: Corrige la mayúscula.
Context: ...otImplemented | --- ## Herramientas Implementadas ###mem_save` Guarda una nueva observación en memoria....

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~59-~59: Agrega un espacio.
Context: ... | Tema para organización | Retorna: memory_id, status --- ### `mem_sea...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~77-~77: Agrega un espacio.
Context: ... | Incluir eliminados suavemente | Retorna: results_count, truncated, lista de m...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~77-~77: Aquí puede haber un error.
Context: ...s_count, truncated, lista de memorias --- ### mem_delete` Elimina una observación de memoria. **P...

(QB_NEW_ES)


[grammar] ~93-~93: Agrega un espacio.
Context: ...Eliminar permanentemente (vs suave)| Retorna: memory_id, status, deleted --- #...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~108-~108: Agrega un espacio.
Context: ... | Incluir si fue eliminada | Retorna: memory_id, status, datos completos d...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~109-~109: Aquí puede haber un error.
Context: ...atus, datos completos de la observación --- ### mem_update` Actualiza una observación de memoria exi...

(QB_NEW_ES)


[grammar] ~127-~127: Agrega un espacio.
Context: ... | Contexto actualizado | Retorna: memory_id, status --- ### `mem_sug...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~142-~142: Agrega un espacio.
Context: ... | Texto de entrada | Retorna: topic_key, candidates_count --- ##...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~159-~159: Agrega un espacio.
Context: ...| bool | Estado del worker en segundo plano| | worker_queue_depth| Number | Tareas...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~174-~174: Agrega un espacio.
Context: ... | No | Entradas después de esta fecha| | include_deleted | bool | No ...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~175-~175: Agrega una palabra o signo.
Context: ... | Incluir eliminados suavemente | Retorna: items_count, lista de entra...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_SPACE)


[grammar] ~177-~177: Agrega un espacio.
Context: ... | Incluir eliminados suavemente | Retorna: items_count, lista de entradas de la l...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~177-~177: Aquí puede haber un error.
Context: ..., lista de entradas de la línea temporal --- ## Herramientas Planificadas :::caution Es...

(QB_NEW_ES)


[grammar] ~181-~181: Corrige la mayúscula.
Context: ...la línea temporal --- ## Herramientas Planificadas :::caution Estas herramientas están defi...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~184-~184: Agrega un signo de puntuación.
Context: ...stas herramientas están definidas en el esquema pero aún no están implementadas. Llamar...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)

clients/web/apps/docs/src/content/docs/es/cerebro/integration.md

[grammar] ~20-~20: Corrige la mayúscula.
Context: ...figuración [memory.cerebro]. ## Cómo Funciona Runtime Corvus ──MCP/HTTP──▶ Servicio Cerebro ──▶ SurrealDB (corvus) (cerebro serve) (embebido) El runtime envía operaciones de memoria ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~32-~32: Corrige la mayúscula.
Context: ...ma independiente. ## Configuración del Runtime Añade la sección [memory.cerebro] a tu...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~44-~44: Corrige la mayúscula.
Context: ...cure_loopback = true ``` ### Campos de Configuración | Campo | Tipo | D...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~58-~58: Corrige la mayúscula.
Context: ...ria a largo plazo. ::: ## Variables de Entorno | Variable ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~76-~76: Corrige la mayúscula.
Context: ...EN=mi-secreto corvus ::: ## Inicio Rápido ### 1. Iniciar Cerebro bash CEREBRO_AUTH...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~78-~78: Corrige la mayúscula.
Context: ...` ::: ## Inicio Rápido ### 1. Iniciar Cerebro bash CEREBRO_AUTH_TOKEN=secreto-compartido cerebro serve ### 2. Configurar Corvus ```toml [memory.ce...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~96-~96: Corrige la mayúscula.
Context: ...compartido corvus ``` ### 3. Verificar Conexión Los logs del runtime mostrarán Cerebro c...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~130-~130: Corrige la mayúscula.
Context: ...erebro-data: ``` ## Consideraciones de Seguridad - Los tokens deben coincidir entre Corvu...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~132-~132: Elimina el sustantivo
Context: ...eguridad - Los tokens deben coincidir entre Corvus y Cerebro. - **HTTPS se ap...

(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_NOUN)


[grammar] ~133-~133: Elimina la palabra o signo.
Context: ...re Corvus y Cerebro. - HTTPS se aplica por defecto para endpoints no loopback....

(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_OTHER)


[grammar] ~136-~136: Elimina la palabra o signo.
Context: ...ernas de Docker. - El token se redacta en la salida de debug y los logs. ## P...

(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_OTHER)


[grammar] ~138-~138: Corrige la mayúscula.
Context: ...salida de debug y los logs. ## Páginas Relacionadas - Configuración — Confi...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~140-~140: Agrega un signo de puntuación.
Context: ... los logs. ## Páginas Relacionadas - Configuración — Configuración del ...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)

clients/web/apps/docs/src/content/docs/es/cerebro/index.mdx

[grammar] ~28-~28: Corrige la mayúscula.
Context: ...les conversaciones. ## Características Principales - Punto de entrada MCP — 13 herramientas...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~34-~34: Cambia el sustantivo.
Context: ... RocksDB para almacenamiento embebido multi-modelo de alto rendimiento (documento, grafo...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_NOUN)


[grammar] ~36-~36: Agrega una palabra o signo.
Context: ...ento (documento, grafo, vectorial). - Organización por temas — Las memorias se organizan...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_OTHER)


[grammar] ~42-~42: Agrega una palabra o signo.
Context: ...ientas y exploración de memorias. - Seguridad por defecto — Sin modo sin autenticac...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_OTHER)


[grammar] ~45-~45: Corrige la mayúscula.
Context: ... operación segura y aislada. ## Cuándo Usar Cerebro Cerebro es la opción adecuada cuando tus...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~53-~53: Agrega una palabra o signo.
Context: ...on temas y observaciones buscables. - Búsqueda y recuperación de memorias — encontra...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_OTHER)


[grammar] ~58-~58: Corrige la mayúscula.
Context: ...emoria y patrones de acceso. ## Visión General de la Arquitectura Cerebro funciona co...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~58-~58: Corrige la mayúscula.
Context: ...nes de acceso. ## Visión General de la Arquitectura Cerebro funciona como un servicio HTTP i...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

clients/web/apps/docs/src/content/docs/es/cerebro/running.md

[grammar] ~13-~13: Corrige la mayúscula.
Context: ...To: main docType: guide --- # Ejecutar Cerebro Cerebro funciona como un servicio HTTP i...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~19-~19: Corrige la mayúscula.
Context: ...ficar y detener el servicio. ## Inicio Rápido ### Usando un binario ```bash cerebro serve...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~77-~77: Corrige la mayúscula.
Context: ...rebro/cerebro.toml ``` ## Verificar el Servicio Una vez que Cerebro está corriendo, enví...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~136-~136: Corrige la mayúscula.
Context: ...bro=debug cerebro serve ``` ## Apagado Graceful Cerebro maneja las señales de apagado de...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~140-~140: Agrega una palabra o signo.
Context: ...eñales de apagado de forma limpia: - Ctrl+C — envía SIGINT - SIGTERM — seña...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_OTHER)


[grammar] ~148-~148: Aquí puede haber un error.
Context: ...ía el almacenamiento 4. Sale limpiamente bash # Detener un contenedor Docker de forma limpia docker stop cerebro ## Enlace de Red | Escenario | Host ...

(QB_NEW_ES)


[grammar] ~155-~155: Corrige la mayúscula.
Context: ...a docker stop cerebro ``` ## Enlace de Red | Escenario | Host | Nota...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~159-~159: Agrega un espacio.
Context: ...-------------------------| | Desarrollo local| 127.0.0.1 | Default. Solo loopback....

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~160-~160: Agrega un espacio.
Context: ....0.0.0 | Requerido para puerto del contenedor.| | Producción |0.0.0.0` | En...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)

🪛 markdownlint-cli2 (0.22.0)
clients/web/apps/docs/src/content/docs/cerebro/integration.md

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

(MD040, fenced-code-language)


[warning] 70-70: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


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

(MD040, fenced-code-language)

openspec/changes/cerebro-docs/issues.md

[warning] 12-12: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 15-15: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 23-23: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 35-35: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 38-38: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 46-46: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 59-59: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 62-62: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 70-70: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 75-75: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 88-88: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 91-91: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 99-99: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 116-116: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 119-119: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 129-129: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 133-133: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 147-147: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 150-150: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 159-159: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 164-164: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 178-178: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 181-181: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 184-184: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 194-194: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 200-200: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 213-213: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 216-216: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 219-219: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 228-228: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 232-232: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

clients/web/apps/docs/src/content/docs/es/cerebro/integration.md

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

(MD040, fenced-code-language)


[warning] 73-73: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


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

(MD040, fenced-code-language)

openspec/changes/cerebro-distribution/proposal.md

[warning] 87-87: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 92-92: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

openspec/changes/cerebro-docs/proposal.md

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

(MD040, fenced-code-language)


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

(MD040, fenced-code-language)

clients/web/apps/docs/src/content/docs/cerebro/running.md

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

(MD040, fenced-code-language)

clients/web/apps/docs/src/content/docs/es/cerebro/running.md

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

(MD040, fenced-code-language)

🪛 Trivy (0.69.3)
modules/cerebro/Dockerfile.release-prebuilt

[warning] 3-3: ':latest' tag used

Specify a tag in the 'FROM' statement for image 'busybox'

Rule: DS-0001

Learn more

(IaC/Dockerfile)


[info] 1-1: No HEALTHCHECK defined

Add HEALTHCHECK instruction in your Dockerfile

Rule: DS-0026

Learn more

(IaC/Dockerfile)

🔇 Additional comments (42)
openspec/changes/cerebro-docs/state.yaml (1)

1-5: LGTM!

State manifest correctly tracks the cerebro-docs change phase progression.

modules/cerebro/Cargo.toml (1)

3-3: LGTM!

Version bump to 0.4.0 aligns with release-please integration and CI version validation in _publish.yml.

clients/web/apps/docs/src/content/docs/cerebro/migration.md (1)

4-4: LGTM!

Slug update to cerebro/migration and relative link adjustment to ../guides/cerebro/mcp-schema/ are consistent with the restructured docs hierarchy and match the pattern in mcp-tools.md.

Also applies to: 83-83

openspec/changes/cerebro-distribution/state.yaml (1)

1-5: LGTM!

State manifest correctly tracks the cerebro-distribution change phase.

release-please-config.json (1)

26-30: LGTM!

Entry follows the established pattern for TOML version propagation and integrates Cerebro into the release-please version sync flow.

clients/web/apps/docs/astro.config.mjs (1)

219-282: LGTM!

The new Cerebro sidebar section is well-structured with consistent EN/ES translations and appropriate slug mappings. Follows the existing sidebar pattern established by other sections.

Makefile (2)

151-166: LGTM!

Cerebro Makefile targets are well-structured and follow established patterns. clippy with -D warnings and fmt with --check align with the codebase validation standards. Based on learnings: "Run cargo fmt --all -- --check, cargo clippy --all-targets -- -D warnings, and cargo test for code validation".


393-393: LGTM!

.PHONY correctly updated with all new cerebro-* targets.

clients/web/apps/docs/src/content/docs/es/cerebro/cli-reference.md (1)

1-176: LGTM — Spanish CLI reference content is technically accurate and complete.

The Spanish CLI reference correctly documents both cerebro serve and cerebro migrate commands with all flags, options, and behavior descriptions. Technical terms like "POST /mcp" and JSON output formats are appropriately preserved. Content structure and technical details match the English version for proper EN/ES parity.

Note: Static analysis capitalization warnings are false positives (Spanish markdown heading style differs from English).

clients/web/apps/docs/src/content/docs/cerebro/index.mdx (1)

1-100: LGTM — Comprehensive overview with accurate technical details.

The overview correctly introduces Cerebro as a standalone Rust MCP memory service with embedded SurrealDB storage. Architecture diagram, installation instructions, and content navigation are clear and well-structured. All referenced pages (Configuration, Running, CLI Reference, MCP Tools, Integration, Migration, Operations) are included in this PR.

clients/web/apps/docs/src/content/docs/es/cerebro/operations.md (2)

30-33: LGTM — Clear warning about unimplemented feature.

The caution block correctly warns users that remote_surreal storage mode is defined but not yet implemented, preventing production use of an incomplete feature.


121-125: LGTM — Comprehensive redaction field list.

The TUI redaction configuration properly includes sensitive field names (password, secret, token, auth, authorization, api_key, apikey, cookie, session, credential), protecting against accidental secret exposure in the dashboard.

clients/web/apps/docs/src/content/docs/cerebro/integration.md (2)

43-48: LGTM — Configuration fields accurately match implementation.

The documented configuration fields (endpoint, auth_token, request_timeout_ms, allow_insecure_loopback) exactly match the MemoryCerebroConfig struct defined in clients/agent-runtime/src/config/schema.rs:1088-1101, including types and defaults.


129-133: LGTM — Strong security guidance.

Security considerations properly emphasize:

  • Auth token matching requirement between services
  • HTTPS enforcement for non-loopback (with explicit exception for local dev)
  • Token redaction in logs

This aligns with secure-by-default principles.

clients/web/apps/docs/src/content/docs/cerebro/mcp-tools.md (2)

41-176: LGTM — Implemented tools accurately documented.

The 8 implemented tools (mem_save, mem_search, mem_delete, mem_get_observation, mem_update, mem_suggest_topic_key, mem_stats, mem_timeline) match the tool handler implementation in modules/cerebro/src/tools.rs:399-428. Parameter tables and return fields align with the allowed fields defined in the for_tool() registration function.


179-205: LGTM — Planned tools clearly marked as NotImplemented.

The 5 planned tools (mem_save_prompt, mem_session_start, mem_session_end, mem_session_summary, mem_context) are correctly documented as returning NotImplemented errors, matching the actual implementation in modules/cerebro/src/tools.rs.

openspec/changes/cerebro-docs/proposal.md (1)

42-78: LGTM — Clear launch requirements and bilingual parity policy.

The proposal correctly defines:

  • 6 MUST pages (Overview, Configuration, Running, CLI Reference, MCP Tools, Migration)
  • 2 SHOULD pages (Installation integrated in Overview, Integration with Corvus)
  • 1 NICE-TO-HAVE page (Operations)
  • Strict EN/ES parity requirement (12 files minimum = 6 pages × 2 languages)

This provides clear implementation guidance with prioritization.

openspec/changes/cerebro-docs/issues.md (1)

123-126: Documentation is accurate. Verification confirms the tool categorization in the task description matches the actual implementation in modules/cerebro/src/tools.rs. All 8 listed "Implemented" tools (mem_save, mem_search, mem_delete, mem_get_observation, mem_update, mem_suggest_topic_key, mem_timeline, mem_stats) are fully functional, and all 5 "Planned" tools return NotImplemented. No changes needed.

clients/web/apps/docs/src/content/docs/cerebro/cli-reference.md (1)

1-181: EN/ES parity confirmed. The Spanish version (es/cerebro/cli-reference.md) contains equivalent content with complete translations of all commands, flags, examples, and behavior descriptions. All section headers, table columns, and descriptions are properly localized, with command syntax remaining identical across both versions.

clients/web/apps/docs/src/content/docs/cerebro/configuration.md (1)

29-70: Configuration structure accurately reflects implementation.

Cross-referenced with modules/cerebro/src/config.rs: the top-level host/port fields, nested [surreal] and [tui] sections, and environment variable names all align correctly with the CerebroConfig struct.

.github/workflows/_build-cerebro-binaries.yml (3)

42-61: Rust channel parsing is correct.

The Python script correctly reads clients/agent-runtime/rust-toolchain.toml and extracts [toolchain].channel. This matches the file structure shown in context snippets.


88-95: Unix packaging looks correct, but verify tar archive structure.

The binary is copied to dist/$artifact_name then tarred. Note that the archive contains just the binary filename without directory structure, which is fine for extraction but consider if users expect a containing folder.


23-26: [rewritten review comment]
[exactly ONE classification tag]

clients/web/apps/docs/src/content/docs/es/cerebro/index.mdx (2)

74-91: Installation examples align with distribution proposal.

Docker command and binary download path match the specifications in openspec/changes/cerebro-distribution/proposal.md. Port 4040 and image name dallay/cerebro:latest are consistent.


1-108: English version exists at clients/web/apps/docs/src/content/docs/cerebro/index.mdx; EN/ES parity requirement is satisfied.

The verification confirms the English documentation is present and properly organized alongside the Spanish version.

clients/web/apps/docs/src/content/docs/es/cerebro/integration.md (2)

46-51: Configuration fields accurately match implementation.

The documented fields (endpoint, auth_token, request_timeout_ms, allow_insecure_loopback) and default timeout of 30000ms align with MemoryCerebroConfig in clients/agent-runtime/src/config/schema.rs.


60-65: All environment variable mappings are accurate—no action needed.

The documented env vars and their property overrides match the Corvus config implementation exactly.

clients/web/apps/docs/src/content/docs/es/cerebro/configuration.md (1)

1-178: Spanish translation maintains parity with English version.

Content structure, configuration fields, defaults, and environment variables are consistent with the English documentation. Technical accuracy is preserved.

clients/web/apps/docs/src/content/docs/es/cerebro/mcp-tools.md (2)

213-214: No action needed—the relative link path is correct.

The link ../guides/cerebro/mcp-schema/ from es/cerebro/mcp-tools.md correctly resolves to the existing directory es/guides/cerebro/mcp-schema/.

			> Likely an incorrect or invalid review comment.

1-246: EN/ES parity confirmed. Both English and Spanish MCP tools references exist and are equivalent. All 13 tools, parameter definitions, examples, and schema references match across versions with accurate translation.

clients/web/apps/docs/src/content/docs/cerebro/running.md (3)

1-52: LGTM — Quick start section is accurate and comprehensive.

The frontmatter, quick start with binary/config/TUI modes, and the --features tui build note all align with the implementation. Port 4040 and host 127.0.0.1 defaults match config.rs.


53-75: LGTM — Docker examples are solid.

Volume mounts, config path, auth token, and port mapping are correctly documented. Good security practice showing CEREBRO_AUTH_TOKEN usage.


152-163: LGTM — Network binding table and security caution are well documented.

The table clearly explains binding scenarios, and the caution about setting CEREBRO_AUTH_TOKEN when binding to 0.0.0.0 is essential security guidance.

clients/web/apps/docs/src/content/docs/cerebro/operations.md (3)

30-33: Good proactive warning about unimplemented feature.

The caution about remote_surreal being defined but not implemented prevents production misuse.


172-204: LGTM — Backup/restore procedures are correct and actionable.

Advising to stop Cerebro before backup ensures data consistency. Docker volume backup using busybox tar is a well-known pattern.


206-225: LGTM — Troubleshooting table covers common scenarios.

The symptom/cause/fix table addresses likely user issues with clear remediation steps.

.github/workflows/_publish.yml (4)

129-136: LGTM — Cerebro version validation added correctly.

The awk parsing for cerebro_version follows the same pattern as cargo_version, and the version check loop now includes modules/cerebro/Cargo.toml.


224-227: LGTM — Cerebro binary build job follows established pattern.

The job mirrors build-native-binaries structure with the correct reusable workflow reference.


507-552: LGTM — Release assets job correctly extended for Cerebro.

The job now:

  1. Downloads both corvus and cerebro artifacts to separate directories
  2. Generates checksums for both
  3. Includes both in the GitHub Release upload

The glob pattern cerebro-* will correctly match artifacts uploaded by _build-cerebro-binaries.yml.


299-367: LGTM — Cerebro Docker image job is well-structured.

Dockerfile exists and properly configured. The multi-stage build correctly handles both amd64 and arm64 architectures, uses distroless base image, and runs as non-root user for security. Job follows the expected pattern: downloads artifacts → extracts binaries → sets up QEMU/Buildx → authenticates → pushes multi-arch images. The continue-on-error: true flags gracefully handle optional DockerHub credentials.

clients/web/apps/docs/src/content/docs/es/cerebro/running.md (2)

1-11: LGTM — Spanish frontmatter correctly translated.

Metadata structure matches the EN version with appropriate Spanish title and description.


12-166: EN/ES parity maintained.

The Spanish translation faithfully mirrors the English version's structure and content. Technical terms like "TUI", "SIGINT", "SIGTERM", and code examples are appropriately preserved. As per coding guidelines, EN/ES parity is verified.

```bash
cerebro <COMMAND>
```

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.

🧹 Nitpick | 🔵 Trivial

Add language specifier to code block.

The architecture diagram code block should specify a language for proper rendering and syntax highlighting.

📝 Suggested fix
-```
+```text
 cerebro <COMMAND>
</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **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.

```suggestion

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

In `@clients/web/apps/docs/src/content/docs/cerebro/cli-reference.md` at line 21,
The architecture diagram code block lacks a language specifier, so update the
fenced code block containing the text "cerebro <COMMAND>" to include a language
(e.g., change ``` to ```text) so it renders with correct formatting and syntax
highlighting; locate the code block in cli-reference.md that shows the
architecture diagram command and add the language token after the opening
backticks.

Comment on lines +97 to +99
| `--target <PATH>` | Path | Yes | — | Target SurrealDB path |
| `--namespace <NAME>` | String | No | `cerebro` | SurrealDB namespace |
| `--database <NAME>` | String | No | `cerebro` | SurrealDB database |
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.

🧹 Nitpick | 🔵 Trivial

Add language specifier to log output block.

The log output code block should specify a language for proper rendering.

📝 Suggested fix
-```
+```text
 INFO cerebro_configured=true endpoint="http://127.0.0.1:4040/mcp"
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @clients/web/apps/docs/src/content/docs/cerebro/cli-reference.md around lines
97 - 99, The log output code block in the CLI reference (the block containing
the line starting with INFO cerebro_configured=true
endpoint="http://127.0.0.1:4040/mcp") does not have a language specifier; update
that fenced code block from totext so it renders correctly (e.g., locate
the fenced block around the log output and prefix it with "text").


</details>

<!-- fingerprinting:phantom:triton:puma:b60f2fa7-9e92-4a4b-93f0-237134f5382c -->

<!-- This is an auto-generated comment by CodeRabbit -->

Comment thread clients/web/apps/docs/src/content/docs/cerebro/integration.md Outdated
Comment on lines +68 to +70
```bash
CORVUS_CEREBRO_AUTH_TOKEN=my-secret corvus
```
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.

🧹 Nitpick | 🔵 Trivial

Add blank line before closing code fence.

📝 Suggested fix
 ```bash
 CORVUS_CEREBRO_AUTH_TOKEN=my-secret corvus

:::

</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **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.

```suggestion

🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 70-70: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

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

In `@clients/web/apps/docs/src/content/docs/cerebro/integration.md` around lines
68 - 70, The closing triple-backtick for the bash code fence around
"CORVUS_CEREBRO_AUTH_TOKEN=my-secret corvus" should be separated by a blank
line; edit the code block (the ```bash fence that wraps that line) to add an
empty line immediately before the closing ``` and also ensure the surrounding
admonition delimiter ":::” is present/closed after the code block so the
markdown structure is valid.

Comment thread clients/web/apps/docs/src/content/docs/cerebro/integration.md Outdated
Comment thread modules/cerebro/Dockerfile.release-prebuilt
Comment thread openspec/changes/cerebro-distribution/proposal.md Outdated
Comment on lines +86 to +95
**Primary (production):** Docker
```bash
docker run -v cerebro-data:/cerebro-data -p 4040:4040 dallay/cerebro:latest
```

**Secondary (local dev/operators):** GitHub Release binary
```bash
# Download from GitHub Releases, then:
cerebro serve
```
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.

🧹 Nitpick | 🔵 Trivial

Add blank lines around fenced code blocks.

Markdownlint flags missing blank lines before code blocks (lines 87, 92).

Proposed fix
 **Primary (production):** Docker
+
 ```bash
 docker run -v cerebro-data:/cerebro-data -p 4040:4040 dallay/cerebro:latest

Secondary (local dev/operators): GitHub Release binary
+

# Download from GitHub Releases, then:
cerebro serve
</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **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.

```suggestion
**Primary (production):** Docker

🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 87-87: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 92-92: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

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

In `@openspec/changes/cerebro-distribution/proposal.md` around lines 86 - 95, The
fenced code blocks containing "docker run -v cerebro-data:/cerebro-data -p
4040:4040 dallay/cerebro:latest" and the "cerebro serve" example need blank
lines above and below the ```bash fences to satisfy markdownlint; update the
proposal text around the two ```bash blocks so there is an empty line before
each opening ```bash and an empty line after each closing ``` to ensure proper
spacing and lint compliance.

Comment thread openspec/changes/cerebro-docs/proposal.md Outdated
Comment thread openspec/changes/cerebro-docs/proposal.md Outdated
- Add language specifiers to unfenced code blocks (text, bash)
- Add security caution notes for example credentials in EN/ES
- Pin busybox to 1.37.0 in Dockerfile for reproducible builds
- Replace hardcoded Docker password with CHANGE_ME placeholder
- Add health check note for distroless image
- Fix mcp-schema relative link in ES migration guide
- Update entry point in distribution proposal to match Dockerfile
@cloudflare-workers-and-pages
Copy link
Copy Markdown

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

Deploying corvus with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9ebd917
Status: ✅  Deploy successful!
Preview URL: https://c300635e.corvus-42x.pages.dev
Branch Preview URL: https://feat-247-define-cerebro-dist.corvus-42x.pages.dev

View logs

Copy link
Copy Markdown
Contributor

@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

♻️ Duplicate comments (3)
clients/web/apps/docs/src/content/docs/cerebro/integration.md (1)

68-71: 🧹 Nitpick | 🔵 Trivial

Add blank line before closing fence inside admonition.

The code block closing fence at line 70 should have a blank line before the ::: closer to satisfy MD031.

Proposed fix
 :::tip
 Use environment variables for `auth_token` to avoid storing
 secrets in config files:

 ```bash
 CORVUS_CEREBRO_AUTH_TOKEN=my-secret corvus

:::

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @clients/web/apps/docs/src/content/docs/cerebro/integration.md around lines
68 - 71, The admonition closing marker ':::' currently follows the code block
closing fence with no blank line, triggering MD031; edit the admonition
containing the bash code block so there is a single blank line between the
closing triple-backtick fence and the ':::' marker (i.e., ensure the code block
inside the admonition is followed by one empty line before the ':::'), leaving
the rest of the content unchanged.


</details>

</blockquote></details>
<details>
<summary>openspec/changes/cerebro-distribution/proposal.md (1)</summary><blockquote>

`86-95`: _🧹 Nitpick_ | _🔵 Trivial_

**Add blank lines before fenced code blocks.**

Lines 87 and 92 still trigger MD031. Add a blank line after the text preceding each code block.


<details>
<summary>Proposed fix</summary>

```diff
 **Primary (production):** Docker
+
 ```bash
 docker run -v cerebro-data:/cerebro-data -p 4040:4040 dallay/cerebro:latest

Secondary (local dev/operators): GitHub Release binary
+

# Download from GitHub Releases, then:
cerebro serve
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @openspec/changes/cerebro-distribution/proposal.md around lines 86 - 95, Add
a blank line before each fenced code block: insert an empty line after the
"Primary (production): Docker" paragraph so the bash docker run...
block is preceded by a blank line, and likewise insert an empty line after the
"Secondary (local dev/operators): GitHub Release binary" paragraph so the
following bash # Download... cerebro serve block is preceded by a blank
line to satisfy MD031.


</details>

</blockquote></details>
<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/running.md (1)</summary><blockquote>

`159-160`: _⚠️ Potential issue_ | _🟡 Minor_

**Fix table cell spacing.**

Lines 159-160 are missing spaces after the opening pipe separator, triggering linter warnings and reducing readability. This was flagged in a previous review and remains unresolved.




<details>
<summary>📝 Proposed fix</summary>

```diff
-| Desarrollo local| `127.0.0.1`   | Default. Solo loopback.        |
-| Docker          | `0.0.0.0`     | Requerido para puerto del contenedor.|
+| Desarrollo local | `127.0.0.1`   | Default. Solo loopback.         |
+| Docker           | `0.0.0.0`     | Requerido para puerto del contenedor. |
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In `@clients/web/apps/docs/src/content/docs/es/cerebro/running.md` around lines
159 - 160, The table rows for "Desarrollo local" and "Docker" have missing
spaces after the opening pipe which causes linter warnings; update the two rows
in running.md (the lines containing the "Desarrollo local| `127.0.0.1`" and
"Docker          | `0.0.0.0`" entries) to include a single space after the
leading "|" for each cell so all cells follow the pattern "| Desarrollo local |
`127.0.0.1` | ..." and "| Docker | `0.0.0.0` | ...", ensuring consistent spacing
across the table.
```

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.gitignore:

  • Around line 172-173: The .gitignore currently has a conflicting pair: ignoring
    the directory pattern ".agent/rules/" and then listing
    ".agent/rules/instructions.md", which is ineffective for new/untracked files;
    decide intent and fix accordingly—either remove the explicit
    ".agent/rules/instructions.md" entry (if you want the whole directory ignored)
    or keep the directory ignore and add a negation rule for the tracked file by
    adding a "! .agent/rules/instructions.md" exception and ensure parent
    directories are not excluded so Git can track that single file (adjust the
    ignore entries referencing ".agent/rules/" and ".agent/rules/instructions.md" to
    implement the chosen intent).

In @clients/web/apps/docs/src/content/docs/es/cerebro/integration.md:

  • Around line 71-73: The markdown block with the inline bash example is missing
    a blank line before the opening triple-backtick fence; update the document so
    there is an empty line immediately above the opening ```bash fence that contains
    the code snippet (the line with the CORVUS_CEREBRO_AUTH_TOKEN=mi-secreto corvus
    example) to follow Markdown best practices and ensure proper rendering.

In @clients/web/apps/docs/src/content/docs/es/cerebro/migration.md:

  • Line 74: The migration.md link currently uses the wrong relative path
    '../../guides/cerebro/mcp-schema/' which points to the English guides; update
    the link target in migration.md to the correct localized relative path
    '../guides/cerebro/mcp-schema/' so it resolves to the ES guides directory
    (es/guides/cerebro/mcp-schema/) and preserves EN/ES parity; locate the link text
    in the file (the line containing 'mcp-schema/' as shown in the diff) and
    replace the ../../ prefix with ../.

In @clients/web/apps/docs/src/content/docs/es/cerebro/operations.md:

  • Around line 82-94: Replace the Spanish heading "Respaldo de Almacenamiento"
    with a term that correctly maps to the English "Storage Fallback" (e.g.,
    "Fallback de Almacenamiento" or "Almacenamiento de Respaldo") so it clearly
    denotes a failover mechanism and avoids confusion with the separate "Respaldo y
    Restauración" (Backup and Restore) section; update the heading text in the
    operations.md block containing the storage_mode/storage_fallback example and
    ensure the explanatory sentence still reflects failover behavior (primary fails
    to initialize, fallback keeps Cerebro running but without persistence) to
    maintain EN/ES parity.

Duplicate comments:
In @clients/web/apps/docs/src/content/docs/cerebro/integration.md:

  • Around line 68-71: The admonition closing marker ':::' currently follows the
    code block closing fence with no blank line, triggering MD031; edit the
    admonition containing the bash code block so there is a single blank line
    between the closing triple-backtick fence and the ':::' marker (i.e., ensure the
    code block inside the admonition is followed by one empty line before the
    ':::'), leaving the rest of the content unchanged.

In @clients/web/apps/docs/src/content/docs/es/cerebro/running.md:

  • Around line 159-160: The table rows for "Desarrollo local" and "Docker" have
    missing spaces after the opening pipe which causes linter warnings; update the
    two rows in running.md (the lines containing the "Desarrollo local| 127.0.0.1"
    and "Docker | 0.0.0.0" entries) to include a single space after the
    leading "|" for each cell so all cells follow the pattern "| Desarrollo local |
    127.0.0.1 | ..." and "| Docker | 0.0.0.0 | ...", ensuring consistent spacing
    across the table.

In @openspec/changes/cerebro-distribution/proposal.md:

  • Around line 86-95: Add a blank line before each fenced code block: insert an
    empty line after the "Primary (production): Docker" paragraph so the bash docker run... block is preceded by a blank line, and likewise insert an empty
    line after the "Secondary (local dev/operators): GitHub Release binary"
    paragraph so the following bash # Download... cerebro serve block is
    preceded by a blank line to satisfy MD031.

</details>

<details>
<summary>🪄 Autofix (Beta)</summary>

Fix all unresolved CodeRabbit comments on this PR:

- [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended)
- [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: ASSERTIVE

**Plan**: Pro

**Run ID**: `41ed6447-3944-43a8-a302-9c748b8a96d3`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between f39166053f228537913f04d73dadfe129568707d and 44d8504c2655ff26900fc57568dbdf1597d0485f.

</details>

<details>
<summary>📒 Files selected for processing (11)</summary>

* `.gitignore`
* `clients/web/apps/docs/src/content/docs/cerebro/integration.md`
* `clients/web/apps/docs/src/content/docs/cerebro/operations.md`
* `clients/web/apps/docs/src/content/docs/cerebro/running.md`
* `clients/web/apps/docs/src/content/docs/es/cerebro/integration.md`
* `clients/web/apps/docs/src/content/docs/es/cerebro/migration.md`
* `clients/web/apps/docs/src/content/docs/es/cerebro/operations.md`
* `clients/web/apps/docs/src/content/docs/es/cerebro/running.md`
* `modules/cerebro/Dockerfile.release-prebuilt`
* `openspec/changes/cerebro-distribution/proposal.md`
* `openspec/changes/cerebro-docs/proposal.md`

</details>

</details>

<details>
<summary>📜 Review details</summary>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)</summary>

* GitHub Check: sonar
* GitHub Check: pr-checks
* GitHub Check: Cloudflare Pages

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>📓 Path-based instructions (2)</summary>

<details>
<summary>**/*.{md,mdx}</summary>


**⚙️ CodeRabbit configuration file**

> `**/*.{md,mdx}`: Verify technical accuracy and that docs stay aligned with code changes.
> For user-facing docs, check EN/ES parity or explicitly note pending translation gaps.
> 

Files:
- `clients/web/apps/docs/src/content/docs/es/cerebro/migration.md`
- `clients/web/apps/docs/src/content/docs/cerebro/integration.md`
- `openspec/changes/cerebro-docs/proposal.md`
- `clients/web/apps/docs/src/content/docs/cerebro/operations.md`
- `clients/web/apps/docs/src/content/docs/es/cerebro/operations.md`
- `clients/web/apps/docs/src/content/docs/es/cerebro/integration.md`
- `clients/web/apps/docs/src/content/docs/cerebro/running.md`
- `openspec/changes/cerebro-distribution/proposal.md`
- `clients/web/apps/docs/src/content/docs/es/cerebro/running.md`

</details>
<details>
<summary>**/*</summary>


**⚙️ CodeRabbit configuration file**

> `**/*`: Security first, performance second.
> Validate input boundaries, auth/authz implications, and secret management.
> Look for behavioral regressions, missing tests, and contract breaks across modules.
> 

Files:
- `clients/web/apps/docs/src/content/docs/es/cerebro/migration.md`
- `clients/web/apps/docs/src/content/docs/cerebro/integration.md`
- `openspec/changes/cerebro-docs/proposal.md`
- `modules/cerebro/Dockerfile.release-prebuilt`
- `clients/web/apps/docs/src/content/docs/cerebro/operations.md`
- `clients/web/apps/docs/src/content/docs/es/cerebro/operations.md`
- `clients/web/apps/docs/src/content/docs/es/cerebro/integration.md`
- `clients/web/apps/docs/src/content/docs/cerebro/running.md`
- `openspec/changes/cerebro-distribution/proposal.md`
- `clients/web/apps/docs/src/content/docs/es/cerebro/running.md`

</details>

</details><details>
<summary>🧠 Learnings (1)</summary>

<details>
<summary>📚 Learning: 2026-02-17T07:28:38.934Z</summary>

```
Learnt from: CR
Repo: dallay/corvus PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-17T07:28:38.934Z
Learning: Applies to .agents/AGENTS.md : Document agent configurations and capabilities in AGENTS.md
```

**Applied to files:**
- `.gitignore`

</details>

</details><details>
<summary>🪛 Checkov (3.2.510)</summary>

<details>
<summary>modules/cerebro/Dockerfile.release-prebuilt</summary>

[low] 1-48: Ensure that HEALTHCHECK instructions have been added to container images

(CKV_DOCKER_2)

</details>

</details>
<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/operations.md</summary>

[grammar] ~19-~19: Corrige la mayúscula.
Context: ...y resolución de problemas.  ## Modos de Almacenamiento  Cerebro soporta múltiples backends de al...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~26-~26: Agrega un espacio.
Context: ...--------------------------| | SurrealDB embebido| Durable      | Alto        | Producción...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)

---

[grammar] ~31-~31: Agrega un signo de puntuación.
Context: ...::caution El modo `remote_surreal` está definido pero **aún no implementado**. No lo use...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)

---

[grammar] ~35-~35: Cambia el sustantivo.
Context: ...roducción. :::  ### SurrealDB Embebido (Default)  Usa RocksDB como motor de almacenamiento...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_NOUN)

---

[grammar] ~63-~63: Corrige la mayúscula.
Context: ...= "/var/lib/cerebro/data" ```  ### Modo En Memoria  Sin persistencia. Todos los datos se pie...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~65-~65: Cambia la palabra o signo.
Context: ...odos los datos se pierden al reiniciar. Usa solo para pruebas y desarrollo.  ```tom...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_OTHER)

---

[grammar] ~72-~72: Corrige la mayúscula.
Context: ...torage_mode = "in_memory" ```  ### Modo Disco  Persistencia basada en archivos. Menos r...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~82-~82: Corrige la mayúscula.
Context: .../cerebro/disk-data" ```  ## Respaldo de Almacenamiento  Configura un backend de respaldo si el p...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~133-~133: Corrige la mayúscula.
Context: ..."session", "credential", ] ```  ### Qué Muestra el TUI  - Feed en vivo de llamadas a he...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~164-~164: Corrige la mayúscula.
Context: ... cerebro serve ```  ### Verificación de Salud  Envía una llamada `mem_stats` para verif...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~178-~178: Corrige la mayúscula.
Context: ...s o sondas de monitoreo.  ## Respaldo y Restauración  ### SurrealDB Embebido  Los datos de Surreal...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~180-~180: Corrige la mayúscula.
Context: ... Respaldo y Restauración  ### SurrealDB Embebido  Los datos de SurrealDB embebido están en...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~212-~212: Corrige la mayúscula.
Context: ...p.tar.gz -C /data ```  ## Resolución de Problemas  ### Problemas Comunes  | Síntoma | Causa | S...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~214-~214: Corrige la mayúscula.
Context: ... Resolución de Problemas  ### Problemas Comunes  | Síntoma | Causa | Solución | |--------...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~224-~224: Corrige la mayúscula.
Context: ...mpilar con `--features tui` |  ### Modo Debug  Activa logging detallado para diagnostic...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~232-~232: Corrige la mayúscula.
Context: ...ttp=debug cerebro serve ```  ## Páginas Relacionadas  - [Configuración](configuration.md) — Refer...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~234-~234: Agrega un signo de puntuación.
Context: ... serve ```  ## Páginas Relacionadas  - [Configuración](configuration.md) — Referencia complet...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)

</details>
<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/integration.md</summary>

[grammar] ~20-~20: Corrige la mayúscula.
Context: ...figuración `[memory.cerebro]`.  ## Cómo Funciona  ```text Runtime Corvus ──MCP/HTTP──▶ Servicio Cerebro ──▶ SurrealDB   (corvus)                    (cerebro serve)      (embebido) ```  El runtime envía operaciones de memoria ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~32-~32: Corrige la mayúscula.
Context: ...ma independiente.  ## Configuración del Runtime  Añade la sección `[memory.cerebro]` a tu...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~44-~44: Corrige la mayúscula.
Context: ...cure_loopback = true ```  ### Campos de Configuración  | Campo                     | Tipo   | D...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~58-~58: Corrige la mayúscula.
Context: ...ria a largo plazo. :::  ## Variables de Entorno  | Variable                              ...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~76-~76: Corrige la mayúscula.
Context: ...EN=mi-secreto corvus ``` :::  ## Inicio Rápido  ### 1. Iniciar Cerebro  ```bash CEREBRO_AUTH...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~78-~78: Corrige la mayúscula.
Context: ...` :::  ## Inicio Rápido  ### 1. Iniciar Cerebro  ```bash CEREBRO_AUTH_TOKEN=secreto-compartido cerebro serve ```  ### 2. Configurar Corvus  ```toml [memory.ce...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~96-~96: Corrige la mayúscula.
Context: ...compartido corvus ```  ### 3. Verificar Conexión  Los logs del runtime mostrarán Cerebro c...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~130-~130: Corrige la mayúscula.
Context: ...erebro-data: ```  ## Consideraciones de Seguridad  - **Los tokens deben coincidir** entre Corvu...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~132-~132: Elimina el sustantivo
Context: ...eguridad  - **Los tokens deben coincidir** entre Corvus y Cerebro. - **HTTPS se ap...

(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_NOUN)

---

[grammar] ~133-~133: Elimina la palabra o signo.
Context: ...re Corvus y Cerebro. - **HTTPS se aplica** por defecto para endpoints no loopback....

(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_OTHER)

---

[grammar] ~136-~136: Elimina la palabra o signo.
Context: ...ernas de Docker. - **El token se redacta** en la salida de debug y los logs.  ## P...

(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_OTHER)

---

[grammar] ~138-~138: Corrige la mayúscula.
Context: ...salida de debug y los logs.  ## Páginas Relacionadas  - [Configuración](configuration.md) — Confi...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~140-~140: Agrega un signo de puntuación.
Context: ... los logs.  ## Páginas Relacionadas  - [Configuración](configuration.md) — Configuración del ...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)

</details>
<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/running.md</summary>

[grammar] ~13-~13: Corrige la mayúscula.
Context: ...To: main docType: guide ---  # Ejecutar Cerebro  Cerebro funciona como un servicio HTTP i...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~19-~19: Corrige la mayúscula.
Context: ...ficar y detener el servicio.  ## Inicio Rápido  ### Usando un binario  ```bash cerebro serve...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~77-~77: Corrige la mayúscula.
Context: ...rebro/cerebro.toml ```  ## Verificar el Servicio  Una vez que Cerebro está corriendo, enví...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~136-~136: Corrige la mayúscula.
Context: ...bro=debug cerebro serve ```  ## Apagado Graceful  Cerebro maneja las señales de apagado de...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~140-~140: Agrega una palabra o signo.
Context: ...eñales de apagado de forma limpia:  - **Ctrl+C** — envía SIGINT - **SIGTERM** — seña...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_OTHER)

---

[grammar] ~148-~148: Aquí puede haber un error.
Context: ...ía el almacenamiento 4. Sale limpiamente  ```bash # Detener un contenedor Docker de forma limpia docker stop cerebro ```  ## Enlace de Red  | Escenario       | Host ...

(QB_NEW_ES)

---

[grammar] ~155-~155: Corrige la mayúscula.
Context: ...a docker stop cerebro ```  ## Enlace de Red  | Escenario       | Host          | Nota...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)

---

[grammar] ~159-~159: Agrega un espacio.
Context: ...-------------------------| | Desarrollo local| `127.0.0.1`   | Default. Solo loopback....

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)

---

[grammar] ~160-~160: Agrega un espacio.
Context: ....0.0.0`     | Requerido para puerto del contenedor.| | Producción      | `0.0.0.0`     | En...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)

</details>

</details>
<details>
<summary>🪛 markdownlint-cli2 (0.22.0)</summary>

<details>
<summary>clients/web/apps/docs/src/content/docs/cerebro/integration.md</summary>

[warning] 73-73: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

</details>
<details>
<summary>openspec/changes/cerebro-docs/proposal.md</summary>

[warning] 73-73: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

</details>
<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/integration.md</summary>

[warning] 73-73: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

</details>
<details>
<summary>openspec/changes/cerebro-distribution/proposal.md</summary>

[warning] 87-87: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

---

[warning] 92-92: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

</details>

</details>
<details>
<summary>🪛 Trivy (0.69.3)</summary>

<details>
<summary>modules/cerebro/Dockerfile.release-prebuilt</summary>

[info] 1-1: **No HEALTHCHECK defined**

Add HEALTHCHECK instruction in your Dockerfile

Rule: DS-0026

[Learn more](https://avd.aquasec.com/misconfig/ds-0026)

(IaC/Dockerfile)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (19)</summary><blockquote>

<details>
<summary>.gitignore (1)</summary><blockquote>

`171-216`: **Backup ignore expansions look good.**

The new `*.bak.*` and directory variants are consistent with keeping agent-generated backup/symlink artifacts out of commits.

</blockquote></details>
<details>
<summary>modules/cerebro/Dockerfile.release-prebuilt (1)</summary><blockquote>

`1-48`: **LGTM!**

Past review concerns have been addressed:
- `busybox` pinned to `1.37.0` for reproducible builds
- Password placeholder `CHANGE_ME_BEFORE_PRODUCTION` with warning comment
- HEALTHCHECK omission documented with orchestrator probe guidance (line 46)

Dockerfile follows distroless non-root best practices with proper UID/GID ownership.

</blockquote></details>
<details>
<summary>openspec/changes/cerebro-distribution/proposal.md (1)</summary><blockquote>

`71-71`: **Entry point matches Dockerfile implementation.**

The entry point `cerebro serve --config /etc/cerebro/config.toml` now aligns with the actual Dockerfile's `ENTRYPOINT ["cerebro"] CMD ["serve", "--config", "/etc/cerebro/config.toml"]`.

</blockquote></details>
<details>
<summary>openspec/changes/cerebro-docs/proposal.md (2)</summary><blockquote>

`27-37`: **IA diagram language specifier added.**

The `text` language specifier is now present. Past concern addressed.

---

`103-123`: **File structure diagram language specifier added.**

The `text` language specifier is now present. Past concern addressed.

</blockquote></details>
<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/migration.md (1)</summary><blockquote>

`4-4`: **Slug updated correctly for new Cerebro section.**

The slug change from `es/guides/cerebro/migration` to `es/cerebro/migration` aligns with the docs restructuring plan.

</blockquote></details>
<details>
<summary>clients/web/apps/docs/src/content/docs/cerebro/operations.md (3)</summary><blockquote>

`50-53`: **Security guidance for credentials added.**

The caution block appropriately warns users to use strong passwords and environment variables in production. Past concern addressed.

---

`30-33`: **Good: `remote_surreal` mode flagged as unimplemented.**

Clear caution prevents users from attempting to use an incomplete feature in production.

---

`1-235`: **Comprehensive operations guide.**

Documentation covers all day-2 concerns: storage modes, fallback, TUI, monitoring, backup/restore, and troubleshooting with actionable examples.

</blockquote></details>
<details>
<summary>clients/web/apps/docs/src/content/docs/cerebro/running.md (2)</summary><blockquote>

`112-114`: **Language specifier added to MCP endpoint block.**

The `text` language specifier is now present. Past concern addressed.

---

`160-163`: **Good security guidance for network binding.**

The caution appropriately warns about setting `CEREBRO_AUTH_TOKEN` when binding to `0.0.0.0`.

</blockquote></details>
<details>
<summary>clients/web/apps/docs/src/content/docs/cerebro/integration.md (3)</summary><blockquote>

`21-24`: **Architecture diagram language specifier added.**

The `text` language specifier is now present. Past concern addressed.

---

`97-99`: **Log output language specifier added.**

The `text` language specifier is now present. Past concern addressed.

---

`64-71`: **Good: Auth token via environment variable recommended.**

The tip promotes secure credential handling by recommending environment variables over config files.

</blockquote></details>
<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/operations.md (2)</summary><blockquote>

`50-53`: **Security guidance for credentials added.**

The caution block appropriately warns about example credentials. Past concern addressed.

---

`1-237`: **ES operations page achieves content parity with EN.**

All major sections are translated: storage modes, TUI, monitoring, backup/restore, and troubleshooting. Static analysis grammar hints are stylistic (Spanish capitalization in headings) and don't affect technical accuracy.

</blockquote></details>
<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/integration.md (1)</summary><blockquote>

`130-136`: **Security considerations are well documented.**

The guidance on token matching, HTTPS enforcement, and token redaction in logs follows best practices for service-to-service authentication.

</blockquote></details>
<details>
<summary>clients/web/apps/docs/src/content/docs/es/cerebro/running.md (2)</summary><blockquote>

`82-108`: **MCP verification example is technically accurate.**

The JSON-RPC request format, `mem_stats` tool call, and response structure correctly demonstrate MCP protocol verification.

---

`163-166`: **Network binding security guidance is appropriate.**

The caution about configuring `CEREBRO_AUTH_TOKEN` when binding to `0.0.0.0` follows security best practices to prevent unauthorized access.

</blockquote></details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment thread .gitignore
Comment on lines +172 to 173
.agent/rules/
.agent/rules/instructions.md
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.

⚠️ Potential issue | 🟡 Minor

Conflicting ignore rules for .agent/rules/instructions.md.

Ignoring .agent/rules/ on Line 172 makes the file rule on Line 173 ineffective for new/untracked files. Decide one intent: ignore all of .agent/rules/, or keep instructions.md trackable via proper negation rules.

Suggested fix (if `instructions.md` must stay tracked)
-.agent/rules/
-.agent/rules/instructions.md
+.agent/rules/*
+!.agent/rules/instructions.md
📝 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
.agent/rules/
.agent/rules/instructions.md
.agent/rules/*
!.agent/rules/instructions.md
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.gitignore around lines 172 - 173, The .gitignore currently has a
conflicting pair: ignoring the directory pattern ".agent/rules/" and then
listing ".agent/rules/instructions.md", which is ineffective for new/untracked
files; decide intent and fix accordingly—either remove the explicit
".agent/rules/instructions.md" entry (if you want the whole directory ignored)
or keep the directory ignore and add a negation rule for the tracked file by
adding a "! .agent/rules/instructions.md" exception and ensure parent
directories are not excluded so Git can track that single file (adjust the
ignore entries referencing ".agent/rules/" and ".agent/rules/instructions.md" to
implement the chosen intent).

Comment on lines +71 to +73
```bash
CORVUS_CEREBRO_AUTH_TOKEN=mi-secreto corvus
```
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.

🧹 Nitpick | 🔵 Trivial

Add blank line before code fence.

Markdown best practice requires a blank line before the opening fence.

📝 Proposed fix
 :::tip
 Usa variables de entorno para `auth_token` y evita almacenar
 secretos en archivos de configuración:
+
 ```bash
 CORVUS_CEREBRO_AUTH_TOKEN=mi-secreto corvus
</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **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.

```suggestion
:::tip
Usa variables de entorno para `auth_token` y evita almacenar
secretos en archivos de configuración:

🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 73-73: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

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

In `@clients/web/apps/docs/src/content/docs/es/cerebro/integration.md` around
lines 71 - 73, The markdown block with the inline bash example is missing a
blank line before the opening triple-backtick fence; update the document so
there is an empty line immediately above the opening ```bash fence that contains
the code snippet (the line with the CORVUS_CEREBRO_AUTH_TOKEN=mi-secreto corvus
example) to follow Markdown best practices and ensure proper rendering.

Los esquemas JSON legibles por máquina para las 13 herramientas están disponibles en:

- [`mcp-schema/`](./mcp-schema/)
- [`mcp-schema/`](../../guides/cerebro/mcp-schema/)
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.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify both EN and ES migration files have correct MCP schema links

echo "=== ES migration link ==="
rg -n 'mcp-schema' clients/web/apps/docs/src/content/docs/es/cerebro/migration.md

echo ""
echo "=== EN migration link (if exists in cerebro section) ==="
fd -t f 'migration.md' clients/web/apps/docs/src/content/docs/cerebro/ --exec cat {} 2>/dev/null | head -100

echo ""
echo "=== Check MCP schema directory exists ==="
fd -t d 'mcp-schema' clients/web/apps/docs/

Repository: dallay/corvus

Length of output: 3998


Fix ES migration link to point to localized guides directory.

The path ../../guides/cerebro/mcp-schema/ resolves to the EN guides directory. Change to ../guides/cerebro/mcp-schema/ to match the EN relative depth and point to the ES guides at es/guides/cerebro/mcp-schema/, maintaining EN/ES parity.

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

In `@clients/web/apps/docs/src/content/docs/es/cerebro/migration.md` at line 74,
The migration.md link currently uses the wrong relative path
'`../../guides/cerebro/mcp-schema/`' which points to the English guides; update
the link target in migration.md to the correct localized relative path
'`../guides/cerebro/mcp-schema/`' so it resolves to the ES guides directory
(es/guides/cerebro/mcp-schema/) and preserves EN/ES parity; locate the link text
in the file (the line containing '`mcp-schema/`' as shown in the diff) and
replace the `../../` prefix with `../`.

Comment thread clients/web/apps/docs/src/content/docs/es/cerebro/operations.md Outdated
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Apr 2, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
19.0% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Rename 'Respaldo de Almacenamiento' to 'Fallback de Almacenamiento'
to distinguish from 'Respaldo y Restauración' (Backup and Restore)
section. Maintains EN/ES semantic parity.
Copy link
Copy Markdown
Contributor

@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 the current code and only fix it if needed.

Inline comments:
In `@clients/web/apps/docs/src/content/docs/es/cerebro/operations.md`:
- Line 26: The markdown table row in operations.md has a missing space before
the cell separator ("SurrealDB embebido|"), which can break rendering; update
the row in the table (look for the string "SurrealDB embebido|") to include a
space before the pipe so it reads "SurrealDB embebido | Durable" and verify
consistent single-space padding around all other pipes in that table row.
- Around line 220-222: Update the troubleshooting row that currently suggests
setting surreal.embedded_allow_non_loopback = true as a blanket fix: change the
guidance to state that binding to non-loopback should be a last-resort option
only for trusted/private networks, and recommend keeping loopback binding with a
reverse proxy, TLS termination, and proper auth (surreal.username,
surreal.password) as the preferred solution; explicitly warn about the security
implications of enabling surreal.embedded_allow_non_loopback and advise auditing
network/ACLs and secret management before using it.
- Around line 166-174: Update the mem_stats health-check example to be
auth-aware: either add a second curl variant that includes an Authorization
header (e.g., -H "Authorization: Bearer <API_TOKEN>") against the /mcp endpoint
when calling method "tools/call" with params
{"name":"mem_stats","arguments":{}}, or add a clear note above the existing
snippet stating that deployments with auth enabled require an appropriate auth
header/token and show the placeholder header format; ensure the example
references the same method name "mem_stats" and endpoint "/mcp" so operators can
test both unauthenticated and authenticated deployments.
- Around line 92-94: Rephrase the absolute claim in the sentence "Esto mantiene
Cerebro en ejecución aunque la base de datos no esté disponible, a costa de
perder persistencia hasta que se restaure el primario." to make the fallback
behavior conditional — e.g., indicate that running without the primary can
continue but persistence is lost only if the configured fallback is
non‑persistent, or that persistence may be preserved when a persistent fallback
backend is used; update the sentence to something like "Esto puede mantener
Cerebro en ejecución aunque la base de datos no esté disponible; la pérdida de
persistencia ocurre solo si el backend de fallback no ofrece persistencia" (or
similar) so the doc accurately reflects conditional behavior.
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 804c2fae-81b0-4974-89c5-a239f8ccf93e

📥 Commits

Reviewing files that changed from the base of the PR and between 44d8504 and d939aeb.

📒 Files selected for processing (1)
  • clients/web/apps/docs/src/content/docs/es/cerebro/operations.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: pr-checks
  • GitHub Check: sonar
  • GitHub Check: Cloudflare Pages
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{md,mdx}

⚙️ CodeRabbit configuration file

**/*.{md,mdx}: Verify technical accuracy and that docs stay aligned with code changes.
For user-facing docs, check EN/ES parity or explicitly note pending translation gaps.

Files:

  • clients/web/apps/docs/src/content/docs/es/cerebro/operations.md
**/*

⚙️ CodeRabbit configuration file

**/*: Security first, performance second.
Validate input boundaries, auth/authz implications, and secret management.
Look for behavioral regressions, missing tests, and contract breaks across modules.

Files:

  • clients/web/apps/docs/src/content/docs/es/cerebro/operations.md
🪛 LanguageTool
clients/web/apps/docs/src/content/docs/es/cerebro/operations.md

[grammar] ~19-~19: Corrige la mayúscula.
Context: ...y resolución de problemas. ## Modos de Almacenamiento Cerebro soporta múltiples backends de al...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~26-~26: Agrega un espacio.
Context: ...--------------------------| | SurrealDB embebido| Durable | Alto | Producción...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_ORTHOGRAPHY_SPACE)


[grammar] ~31-~31: Agrega un signo de puntuación.
Context: ...::caution El modo remote_surreal está definido pero aún no implementado. No lo use...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)


[grammar] ~35-~35: Cambia el sustantivo.
Context: ...roducción. ::: ### SurrealDB Embebido (Default) Usa RocksDB como motor de almacenamiento...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_NOUN)


[grammar] ~63-~63: Corrige la mayúscula.
Context: ...= "/var/lib/cerebro/data" ``` ### Modo En Memoria Sin persistencia. Todos los datos se pie...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~65-~65: Cambia la palabra o signo.
Context: ...odos los datos se pierden al reiniciar. Usa solo para pruebas y desarrollo. ```tom...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_OTHER)


[grammar] ~72-~72: Corrige la mayúscula.
Context: ...torage_mode = "in_memory" ``` ### Modo Disco Persistencia basada en archivos. Menos r...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~82-~82: Corrige la mayúscula.
Context: .../cerebro/disk-data" ``` ## Fallback de Almacenamiento Configura un backend alternativo si el p...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~133-~133: Corrige la mayúscula.
Context: ..."session", "credential", ] ``` ### Qué Muestra el TUI - Feed en vivo de llamadas a he...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~164-~164: Corrige la mayúscula.
Context: ... cerebro serve ``` ### Verificación de Salud Envía una llamada mem_stats para verif...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~178-~178: Corrige la mayúscula.
Context: ...s o sondas de monitoreo. ## Respaldo y Restauración ### SurrealDB Embebido Los datos de Surreal...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~180-~180: Corrige la mayúscula.
Context: ... Respaldo y Restauración ### SurrealDB Embebido Los datos de SurrealDB embebido están en...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~212-~212: Corrige la mayúscula.
Context: ...p.tar.gz -C /data ``` ## Resolución de Problemas ### Problemas Comunes | Síntoma | Causa | S...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~214-~214: Corrige la mayúscula.
Context: ... Resolución de Problemas ### Problemas Comunes | Síntoma | Causa | Solución | |--------...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~224-~224: Corrige la mayúscula.
Context: ...mpilar con --features tui | ### Modo Debug Activa logging detallado para diagnostic...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~232-~232: Corrige la mayúscula.
Context: ...ttp=debug cerebro serve ``` ## Páginas Relacionadas - Configuración — Refer...

(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)


[grammar] ~234-~234: Agrega un signo de puntuación.
Context: ... serve ``` ## Páginas Relacionadas - Configuración — Referencia complet...

(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)

Comment thread clients/web/apps/docs/src/content/docs/es/cerebro/operations.md Outdated
Comment thread clients/web/apps/docs/src/content/docs/es/cerebro/operations.md Outdated
Comment thread clients/web/apps/docs/src/content/docs/es/cerebro/operations.md
Comment thread clients/web/apps/docs/src/content/docs/es/cerebro/operations.md
- Exclude docs markdown from SonarCloud duplication analysis (cpd.exclusions)
  to prevent false positives from EN/ES bilingual translations
- Add clarifying comment for localSha diagnostic in fix-renovate workflow
- Use force-with-lease in fix-renovate push to prevent TOCTOU race condition
…EN/ES

- Fix table spacing for SurrealDB embebido row
- Clarify fallback behavior: persistence loss is conditional on backend type
- Add auth-aware health check example with Authorization header
- Improve troubleshooting: recommend loopback+proxy over non-loopback binding
@yacosta738 yacosta738 merged commit 4f5ec99 into main Apr 2, 2026
13 of 14 checks passed
@yacosta738 yacosta738 deleted the feat/247-define-cerebro-distribution-channels-and-dedicated-docs-presence branch April 2, 2026 09:47
@yacosta738 yacosta738 mentioned this pull request Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment