feat: define cerebro distribution channels and dedicated docs presence#396
Conversation
- 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
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds 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
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
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✅ Contributor ReportUser: @yacosta738
Contributor Report evaluates based on public GitHub activity. Analysis period: 2025-04-02 to 2026-04-02 |
There was a problem hiding this comment.
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 | 🟡 MinorBroken 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 toes/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
⛔ Files ignored due to path filters (2)
clients/agent-runtime/Cargo.lockis excluded by!**/*.lockmodules/cerebro/Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (28)
.github/workflows/_build-cerebro-binaries.yml.github/workflows/_publish.ymlMakefileclients/web/apps/docs/astro.config.mjsclients/web/apps/docs/src/content/docs/cerebro/cli-reference.mdclients/web/apps/docs/src/content/docs/cerebro/configuration.mdclients/web/apps/docs/src/content/docs/cerebro/index.mdxclients/web/apps/docs/src/content/docs/cerebro/integration.mdclients/web/apps/docs/src/content/docs/cerebro/mcp-tools.mdclients/web/apps/docs/src/content/docs/cerebro/migration.mdclients/web/apps/docs/src/content/docs/cerebro/operations.mdclients/web/apps/docs/src/content/docs/cerebro/running.mdclients/web/apps/docs/src/content/docs/es/cerebro/cli-reference.mdclients/web/apps/docs/src/content/docs/es/cerebro/configuration.mdclients/web/apps/docs/src/content/docs/es/cerebro/index.mdxclients/web/apps/docs/src/content/docs/es/cerebro/integration.mdclients/web/apps/docs/src/content/docs/es/cerebro/mcp-tools.mdclients/web/apps/docs/src/content/docs/es/cerebro/migration.mdclients/web/apps/docs/src/content/docs/es/cerebro/operations.mdclients/web/apps/docs/src/content/docs/es/cerebro/running.mdmodules/cerebro/Cargo.tomlmodules/cerebro/Dockerfile.release-prebuiltopenspec/changes/cerebro-distribution/proposal.mdopenspec/changes/cerebro-distribution/state.yamlopenspec/changes/cerebro-docs/issues.mdopenspec/changes/cerebro-docs/proposal.mdopenspec/changes/cerebro-docs/state.yamlrelease-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.tomlopenspec/changes/cerebro-docs/state.yamlclients/web/apps/docs/src/content/docs/cerebro/migration.mdclients/web/apps/docs/src/content/docs/es/cerebro/migration.mdopenspec/changes/cerebro-distribution/state.yamlrelease-please-config.jsonMakefileclients/web/apps/docs/src/content/docs/cerebro/integration.mdclients/web/apps/docs/astro.config.mjsclients/web/apps/docs/src/content/docs/cerebro/cli-reference.mdopenspec/changes/cerebro-docs/issues.mdclients/web/apps/docs/src/content/docs/cerebro/index.mdxclients/web/apps/docs/src/content/docs/es/cerebro/operations.mdclients/web/apps/docs/src/content/docs/cerebro/mcp-tools.mdmodules/cerebro/Dockerfile.release-prebuiltclients/web/apps/docs/src/content/docs/es/cerebro/configuration.mdclients/web/apps/docs/src/content/docs/es/cerebro/cli-reference.mdclients/web/apps/docs/src/content/docs/es/cerebro/mcp-tools.mdclients/web/apps/docs/src/content/docs/es/cerebro/integration.mdclients/web/apps/docs/src/content/docs/cerebro/configuration.mdopenspec/changes/cerebro-distribution/proposal.mdopenspec/changes/cerebro-docs/proposal.mdclients/web/apps/docs/src/content/docs/cerebro/operations.mdclients/web/apps/docs/src/content/docs/es/cerebro/index.mdxclients/web/apps/docs/src/content/docs/cerebro/running.mdclients/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.mdclients/web/apps/docs/src/content/docs/es/cerebro/migration.mdclients/web/apps/docs/src/content/docs/cerebro/integration.mdclients/web/apps/docs/src/content/docs/cerebro/cli-reference.mdopenspec/changes/cerebro-docs/issues.mdclients/web/apps/docs/src/content/docs/cerebro/index.mdxclients/web/apps/docs/src/content/docs/es/cerebro/operations.mdclients/web/apps/docs/src/content/docs/cerebro/mcp-tools.mdclients/web/apps/docs/src/content/docs/es/cerebro/configuration.mdclients/web/apps/docs/src/content/docs/es/cerebro/cli-reference.mdclients/web/apps/docs/src/content/docs/es/cerebro/mcp-tools.mdclients/web/apps/docs/src/content/docs/es/cerebro/integration.mdclients/web/apps/docs/src/content/docs/cerebro/configuration.mdopenspec/changes/cerebro-distribution/proposal.mdopenspec/changes/cerebro-docs/proposal.mdclients/web/apps/docs/src/content/docs/cerebro/operations.mdclients/web/apps/docs/src/content/docs/es/cerebro/index.mdxclients/web/apps/docs/src/content/docs/cerebro/running.mdclients/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.tomlrelease-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.jsonMakefile
📚 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
(IaC/Dockerfile)
[info] 1-1: No HEALTHCHECK defined
Add HEALTHCHECK instruction in your Dockerfile
Rule: DS-0026
(IaC/Dockerfile)
🔇 Additional comments (42)
openspec/changes/cerebro-docs/state.yaml (1)
1-5: LGTM!State manifest correctly tracks the
cerebro-docschange phase progression.modules/cerebro/Cargo.toml (1)
3-3: LGTM!Version bump to
0.4.0aligns 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/migrationand relative link adjustment to../guides/cerebro/mcp-schema/are consistent with the restructured docs hierarchy and match the pattern inmcp-tools.md.Also applies to: 83-83
openspec/changes/cerebro-distribution/state.yaml (1)
1-5: LGTM!State manifest correctly tracks the
cerebro-distributionchange 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.
clippywith-D warningsandfmtwith--checkalign with the codebase validation standards. Based on learnings: "Runcargo fmt --all -- --check,cargo clippy --all-targets -- -D warnings, andcargo testfor code validation".
393-393: LGTM!
.PHONYcorrectly updated with all newcerebro-*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 serveandcerebro migratecommands 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_surrealstorage 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 theMemoryCerebroConfigstruct defined inclients/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 inmodules/cerebro/src/tools.rs:399-428. Parameter tables and return fields align with the allowed fields defined in thefor_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 returningNotImplementederrors, matching the actual implementation inmodules/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 inmodules/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 returnNotImplemented. 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-levelhost/portfields, nested[surreal]and[tui]sections, and environment variable names all align correctly with theCerebroConfigstruct..github/workflows/_build-cerebro-binaries.yml (3)
42-61: Rust channel parsing is correct.The Python script correctly reads
clients/agent-runtime/rust-toolchain.tomland 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_namethen 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 namedallay/cerebro:latestare consistent.
1-108: English version exists atclients/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 withMemoryCerebroConfiginclients/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/fromes/cerebro/mcp-tools.mdcorrectly resolves to the existing directoryes/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 tuibuild note all align with the implementation. Port4040and host127.0.0.1defaults matchconfig.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_TOKENusage.
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_TOKENwhen binding to0.0.0.0is 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_surrealbeing 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_versionfollows the same pattern ascargo_version, and the version check loop now includesmodules/cerebro/Cargo.toml.
224-227: LGTM — Cerebro binary build job follows established pattern.The job mirrors
build-native-binariesstructure with the correct reusable workflow reference.
507-552: LGTM — Release assets job correctly extended for Cerebro.The job now:
- Downloads both corvus and cerebro artifacts to separate directories
- Generates checksums for both
- 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
amd64andarm64architectures, 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. Thecontinue-on-error: trueflags 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> | ||
| ``` | ||
|
|
There was a problem hiding this comment.
🧹 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.
| | `--target <PATH>` | Path | Yes | — | Target SurrealDB path | | ||
| | `--namespace <NAME>` | String | No | `cerebro` | SurrealDB namespace | | ||
| | `--database <NAME>` | String | No | `cerebro` | SurrealDB database | |
There was a problem hiding this comment.
🧹 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 -->
| ```bash | ||
| CORVUS_CEREBRO_AUTH_TOKEN=my-secret corvus | ||
| ``` |
There was a problem hiding this comment.
🧹 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.
| **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 | ||
| ``` |
There was a problem hiding this comment.
🧹 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:latestSecondary (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.
- 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
Deploying corvus with
|
| 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 |
There was a problem hiding this comment.
Actionable comments posted: 4
♻️ Duplicate comments (3)
clients/web/apps/docs/src/content/docs/cerebro/integration.md (1)
68-71: 🧹 Nitpick | 🔵 TrivialAdd 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.mdaround 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:latestSecondary (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.mdaround lines 86 - 95, Add
a blank line before each fenced code block: insert an empty line after the
"Primary (production): Docker" paragraph so thebash 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
followingbash # Download... cerebro serveblock 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 thebash 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 followingbash # Download... cerebro serveblock 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 -->
| .agent/rules/ | ||
| .agent/rules/instructions.md |
There was a problem hiding this comment.
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.
| .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).
| ```bash | ||
| CORVUS_CEREBRO_AUTH_TOKEN=mi-secreto corvus | ||
| ``` |
There was a problem hiding this comment.
🧹 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/) |
There was a problem hiding this comment.
🧩 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 `../`.
|
Rename 'Respaldo de Almacenamiento' to 'Fallback de Almacenamiento' to distinguish from 'Respaldo y Restauración' (Backup and Restore) section. Maintains EN/ES semantic parity.
There was a problem hiding this comment.
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
📒 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)
- 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


Summary
Defines and implements the complete Cerebro distribution and documentation presence for the Corvus platform.
Planning (all decisions closed)
CI/Distribution implementation
Documentation implementation (16 pages bilingual)
OpenSpec artifacts
Tested Information
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
Breaking Changes
Checklist
This pull request introduces comprehensive support for the new
cerebromemory service, including build automation, Docker image publishing, release asset management, and developer documentation. The changes ensure thatcerebrobinaries 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:
.github/workflows/_build-cerebro-binaries.yml) to build and packagecerebrobinaries for Linux, macOS, and Windows, with cross-compilation support and artifact upload.cerebrointo the main publish pipeline (_publish.yml): verifies version, builds binaries, publishes Docker images for Linux/amd64 and arm64, and includescerebroartifacts in the GitHub release assets. [1] [2] [3] [4]Developer Experience:
cerebroRust service, making local development and CI checks easier. [1] [2]Documentation Improvements:
Cerebro CLI Referencedocument detailing all commands, options, and usage examples for thecerebrobinary.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