(feat): Clarify API compatibility and planned features in docs with trademark attribution - #3
Conversation
…rademark attribution
|
Warning Review limit reached
Next review available in: 47 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
WalkthroughThe PR updates localized and generated documentation, architecture diagrams, build guidance, storage and deployment references, API availability statements, trademark pages, and static-content build configuration. ChangesDocumentation and architecture updates
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 |
There was a problem hiding this comment.
Actionable comments posted: 11
🧹 Nitpick comments (1)
en/api-reference/loki.md (1)
8-11: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winUse YFM variables for product names across the changed Markdown.
The changed documentation hard-codes the product name in multiple locations. Replace each occurrence with
{{product_name}}.
en/api-reference/loki.md#L8-L11: replaceIceGate provideswith{{product_name}} provides.en/api-reference/prometheus.md#L18-L19: replaceIceGate'swith{{product_name}}'s.en/api-reference/tempo.md#L8-L13: replaceIceGate provideswith{{product_name}} provides.ru/getting-started/quickstart.md#L143-L144: replaceIceGatewith{{product_name}}.ru/guides/querying.md#L8-L11: replaceIceGatewith{{product_name}}.en/trademarks.md#L3-L3: replaceIceGatein the frontmatter description with{{product_name}}.As per coding guidelines, use
.yfmvariables such as{{product_name}}in documentation.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/api-reference/loki.md` around lines 8 - 11, Replace hard-coded IceGate product-name occurrences with the YFM variable {{product_name}} in en/api-reference/loki.md lines 8-11, en/api-reference/prometheus.md lines 18-19, en/api-reference/tempo.md lines 8-13, ru/getting-started/quickstart.md lines 143-144, ru/guides/querying.md lines 8-11, and en/trademarks.md line 3; preserve possessive grammar as {{product_name}}'s where applicable.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@en/api-reference/tempo.md`:
- Around line 3-13: Update the existing Implementation Status block in the Tempo
API reference to describe TraceQL as partially supported for `/api/search`, with
unsupported TraceQL features returning `501 Not Implemented` rather than stating
support is only planned. Keep the status wording consistent with the
introduction and the traces end-to-end cookbook.
In `@en/faq.md`:
- Line 12: Update the API references as follows: in en/faq.md lines 12-12, link
separately to the Loki, Tempo, and planned Prometheus references; in en/faq.md
lines 100-100, link the Grafana trace guidance to api-reference/tempo.md; in
fr/trademarks.md lines 27-30 and ru/trademarks.md lines 28-30, add the Tempo API
reference alongside the existing Loki reference.
- Line 12: Replace hard-coded IceGate mentions with the YFM product variable
{{product_name}} at en/faq.md lines 12-12 and 100-100,
en/getting-started/quickstart.md lines 143-144, and en/guides/querying.md lines
8-12. Preserve the surrounding Markdown content and links.
In `@en/guides/grafana-integration.md`:
- Around line 111-113: Update the Port Reference table to reflect the current
Prometheus status: metadata endpoints return 501 Not Implemented and only
/-/ready responds, replacing “Metadata only (PromQL planned).” Also revise the
Tempo row to mention its partial TraceQL support through the documented
/api/search endpoint, preserving the existing table structure.
In `@en/trademarks.md`:
- Around line 31-33: Update the Prometheus status summary in en/trademarks.md
lines 31-33 to state that documented routes return 501 Not Implemented except
/-/ready, which responds successfully. Apply the same /-/ready exception to the
Russian summary in ru/guides/grafana-integration.md line 14.
- Around line 27-29: Update the compatibility definition paragraph to link both
the Loki and Tempo API references, preserving its explanation that
{{product_name}} implements only the documented HTTP read API subset.
In `@fr/api-reference/loki.md`:
- Around line 3-11: Replace every hard-coded IceGate product reference with
{{product_name}} in fr/api-reference/loki.md lines 3-11,
fr/api-reference/tempo.md lines 3 and 14-19, fr/api-reference/prometheus.md
lines 25-26, fr/guides/querying.md line 8, ru/api-reference/loki.md lines 3-11,
ru/api-reference/prometheus.md lines 25-26, and ru/api-reference/tempo.md lines
3 and 14-19; leave other wording unchanged.
In `@fr/guides/querying.md`:
- Around line 9-10: Remove the whitespace between “L'” and the Prometheus API
link in the surrounding Markdown text so the rendered phrase joins the article
directly to the linked noun.
In `@fr/trademarks.md`:
- Around line 32-34: Update the Prometheus API statement to use the typographic
apostrophe in “L’API” and explicitly state that every route except `/-/ready`
returns `501 Not Implemented`; preserve the surrounding reference-page
explanation.
In `@llms-full.txt`:
- Around line 6662-6669: Synchronize Prometheus status across all listed
artifacts: regenerate llms-full.txt (lines 6662-6669) to state that every
Prometheus route except /-/ready returns 501 Not Implemented; update
fr/trademarks.md (lines 32-34) with the same exception and use “L’API”; correct
llms.txt (line 3) and its later metadata and TraceQL statements to remove
outdated availability and planning claims; update ru/trademarks.md (lines 32-34)
with the /-/ready exception.
In `@ru/trademarks.md`:
- Around line 32-34: Update the Prometheus API statement in trademarks.md to
explicitly exempt the /-/ready route from the 501 Not Implemented behavior,
while preserving the existing description for all other Prometheus routes.
---
Nitpick comments:
In `@en/api-reference/loki.md`:
- Around line 8-11: Replace hard-coded IceGate product-name occurrences with the
YFM variable {{product_name}} in en/api-reference/loki.md lines 8-11,
en/api-reference/prometheus.md lines 18-19, en/api-reference/tempo.md lines
8-13, ru/getting-started/quickstart.md lines 143-144, ru/guides/querying.md
lines 8-11, and en/trademarks.md line 3; preserve possessive grammar as
{{product_name}}'s where applicable.
🪄 Autofix
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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: e970ee9c-30be-4ee4-ab82-9d33acd6dc72
📒 Files selected for processing (36)
AGENTS.mden/api-reference/loki.mden/api-reference/prometheus.mden/api-reference/tempo.mden/architecture/overview.mden/cookbooks/traces-end-to-end.mden/faq.mden/getting-started/quickstart.mden/guides/grafana-integration.mden/guides/querying.mden/index.yamlen/toc.yamlen/trademarks.mdfr/api-reference/loki.mdfr/api-reference/prometheus.mdfr/api-reference/tempo.mdfr/architecture/overview.mdfr/getting-started/quickstart.mdfr/guides/grafana-integration.mdfr/guides/querying.mdfr/index.yamlfr/toc.yamlfr/trademarks.mdllms-full.txtllms.txtpackage.jsonru/api-reference/loki.mdru/api-reference/prometheus.mdru/api-reference/tempo.mdru/architecture/overview.mdru/getting-started/quickstart.mdru/guides/grafana-integration.mdru/guides/querying.mdru/index.yamlru/toc.yamlru/trademarks.md
…l documentation for improved parameterization and reusability
…ion, and improved architecture descriptions
There was a problem hiding this comment.
Actionable comments posted: 12
Note
Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.
🟡 Minor comments (10)
ru/guides/grafana-integration.md-14-14 (1)
14-14: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winName port 9090 as the Prometheus API port.
Line 14 describes
9090as the metrics port. This can direct users to the wrong endpoint. State that9090is the Prometheus API port and reserve9091for the metrics port.Proposed wording
- Prometheus для метрик (порт 9090) + API Prometheus для метрик (порт 9090; порт метрик — 9091)As per coding guidelines, use metrics port 9091 and Prometheus API port 9090.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ru/guides/grafana-integration.md` at line 14, Обновите описание портов в руководстве Grafana: в тексте подключения к {{product_name}} укажите 9090 как порт API Prometheus, а 9091 зарезервируйте для метрик. Сохраните остальные сведения о Loki и Tempo без изменений.Source: Coding guidelines
c4/workspace.dsl-89-89 (1)
89-89: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winPoint Trino at the REST catalog endpoint.
icegate.catalogStoreis the catalog-state backend. It does not expose the REST API. Line 89 therefore shows Trino using Iceberg REST against the wrong target.Point this relationship to
icegate.s3Catalogwhen its optional REST API is enabled. If Trino uses Nessie instead, model Nessie as a separate external REST catalog.Proposed fix
- trino -> icegate.catalogStore "Reads table metadata (REST catalog only)" "Iceberg REST" + trino -> icegate.s3Catalog "Reads table metadata when the REST API is enabled" "Iceberg REST"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@c4/workspace.dsl` at line 89, Update the Trino relationship in the workspace model so its Iceberg REST connection targets icegate.s3Catalog only when that component’s optional REST API is enabled, rather than icegate.catalogStore. If the configuration uses Nessie, model Nessie as a separate external REST catalog instead.fr/guides/ingestion.md-25-25 (1)
25-25: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winUse one French spelling for the
multiprefix.
fr/guides/ingestion.md#L25-L25: replacemulti-tenantwithmultitenant.fr/guides/multi-tenancy.md#L14-L14: replacemulti-tenantwithmultitenant.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@fr/guides/ingestion.md` at line 25, Use the consistent French spelling “multitenant” by replacing “multi-tenant” in fr/guides/ingestion.md lines 25-25 and fr/guides/multi-tenancy.md lines 14-14; no other wording changes are needed.Source: Linters/SAST tools
fr/operations/troubleshooting.md-276-276 (1)
276-276: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winKeep the repository URL literal in the link target.
Replace
{{repo_url}}with the configured literal repository URL..yfmvariables are allowed in prose but not in Markdown link targets.As per coding guidelines,
.yfmvariables must not appear in link targets.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@fr/operations/troubleshooting.md` at line 276, Update the GitHub Issues link in the troubleshooting documentation to replace the {{repo_url}} template variable with the configured literal repository URL, while preserving the visible link text.Source: Coding guidelines
ru/architecture/overview.md-133-133 (1)
133-133: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winUse a natural Russian phrase for resume behavior.
Replace
shift'у продолжить с места остановкиwithпроцессу shift возобновить работу с места остановки.Based on learnings from the provided static-analysis hint, correct this sentence.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ru/architecture/overview.md` at line 133, В предложении с описанием освобождения сегментов WAL замените неестественную фразу «shift'у продолжить с места остановки» на «процессу shift возобновить работу с места остановки», сохранив остальной смысл предложения без изменений.Source: Linters/SAST tools
en/development/setup.md-61-61 (1)
61-61: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick winUse the canonical default catalog name and selector.
These descriptions use generic “S3 catalog” wording and omit
backend: !s3. State{{product_name}} S3in prose and includebackend: !s3. In fenced code comments, use the literalIceGate S3; do not place YFM variables inside code fences.
en/development/setup.md#L61-L61: update the fenced profile comment toIceGate S3 (backend: !s3).en/development/setup.md#L90-L104: identify the default catalog as{{product_name}} S3and showbackend: !s3.en/development/contributing.md#L103-L111: update the fenced workspace comment to identify the default asIceGate S3.ru/architecture/overview.md#L79-L83: identify the default backend as{{product_name}} S3withbackend: !s3.ru/architecture/overview.md#L102-L104: use the same canonical catalog name in the technology table.As per coding guidelines, documentation must identify IceGate S3 (
backend: !s3) as the default catalog.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/development/setup.md` at line 61, Update en/development/setup.md lines 61-61 to label the fenced profile “IceGate S3 (backend: !s3)”; update en/development/setup.md lines 90-104 to name the default catalog “{{product_name}} S3” and include “backend: !s3”. Update en/development/contributing.md lines 103-111 to use “IceGate S3” in the fenced workspace comment. Update ru/architecture/overview.md lines 79-83 to identify “{{product_name}} S3” with “backend: !s3”, and lines 102-104 to use the same canonical catalog name; keep YFM variables out of fenced code comments.Source: Coding guidelines
ru/architecture/data-model.md-14-14 (1)
14-14: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick winAlign the LLM-operation storage description with the data model.
ru/architecture/overview.mdsays {{product_name}} stores LLM operations, butru/architecture/data-model.mdonly documentslogs,spans,events, andmetrics. Either state that LLM operations are stored inevents, or add the missing Iceberg table and schema details, then update the overview with the same terms.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ru/architecture/data-model.md` at line 14, Align the storage terminology across ru/architecture/data-model.md:14-14 and ru/architecture/overview.md:8-8: either document LLM operations as being stored in the existing events table, or add the corresponding Iceberg table and schema details, then use the same terminology in both documents.en/faq.md-210-210 (1)
210-210: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winKeep the repository URL literal in the link target.
{{repo_url}}appears inside the Markdown link destination. Use the literal repository issues URL instead.As per coding guidelines, never substitute
.yfmvariables inside link targets; keep repository URLs literal.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/faq.md` at line 210, Update the GitHub Issues link in the FAQ to replace the {{repo_url}} template variable in both the link destination and displayed URL with the literal repository issues URL, preserving the existing link text and Markdown structure.Source: Coding guidelines
en/operations/deployment.md-158-158 (1)
158-158: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winMake Helm the primary installation path in both deployment guides.
Both guides present Docker Compose before Helm. Move the Helm section before Docker Compose, or label Docker Compose as secondary and link to Helm as the default path.
en/operations/deployment.md#L158-L158: Present Helm before Docker Compose or identify Helm as the default installation method.ru/operations/deployment.md#L158-L158: Present Helm before Docker Compose or identify Helm as the default installation method.As per coding guidelines, documentation must use Helm as the primary installation method.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/operations/deployment.md` at line 158, Make Helm the primary installation method in both deployment guides: in en/operations/deployment.md lines 158-158 and ru/operations/deployment.md lines 158-158, move the Helm section before Docker Compose or clearly label Docker Compose as secondary while linking to Helm as the default path.Source: Coding guidelines
ru/getting-started/quickstart.md-8-8 (1)
8-8: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winClarify the unsupported Prometheus data source.
Line 8 says the Quick Start covers querying logs, traces, and metrics through API and Grafana. The rest of this file avoids the Prometheus data source, but line 8 still implies it is supported. Limit the quick-start summary to Loki, Tempo, and Arrow Flight SQL, or mark metrics querying via Prometheus as planned.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ru/getting-started/quickstart.md` at line 8, Update the quick-start summary sentence to avoid implying Prometheus support: limit the listed query paths to Loki, Tempo, and Arrow Flight SQL, or explicitly mark Prometheus metrics querying as planned.
🧹 Nitpick comments (2)
c4/README.md (1)
56-56: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd a language identifier to the fenced tree.
markdownlint reports MD040 for this fence. Use
textto classify the workspace tree.Proposed fix
-``` +```text workspace.dsl🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@c4/README.md` at line 56, Update the fenced workspace tree in the README to include the text language identifier, changing the opening fence to text while preserving the existing tree content.Source: Linters/SAST tools
en/architecture/overview.md (1)
131-133: 🩺 Stability & Availability | 🔵 TrivialMake lifecycle-based WAL reclamation an explicit deployment contract.
en/architecture/overview.md#L131-L133: verify that every supported deployment provisions the queue-bucket lifecycle rule.fr/operations/maintenance.md#L55-L57: document the same lifecycle requirement and its retention policy.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/architecture/overview.md` around lines 131 - 133, Make lifecycle-based WAL reclamation an explicit deployment contract in en/architecture/overview.md lines 131-133 by stating that every supported deployment must provision a lifecycle rule for the queue bucket. In fr/operations/maintenance.md lines 55-57, document the same queue-bucket lifecycle requirement and specify its retention policy.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@en/architecture/overview.md`:
- Line 8: Update the architecture documentation so the data model consistently
covers LLM operations: add the corresponding LLM table/schema to
en/architecture/data-model.md alongside logs, spans, events, and metrics, or
remove “LLM operations” from the overview if no documented schema exists.
In `@en/development/contributing.md`:
- Around line 103-111: The Query service descriptions in
en/development/contributing.md lines 103-111 and en/development/setup.md lines
157-159 must identify Prometheus as unavailable except for /-/ready, with other
Prometheus routes returning 501. Update both summaries consistently without
changing the other service descriptions.
In `@en/faq.md`:
- Line 12: Update the Prometheus availability statement in the FAQ to reflect
the implemented prometheus.enabled configuration and port 9090 endpoint. Align
the wording and linked API/configuration references with the actual
Prometheus-compatible behavior, removing the claim that it is planned but
unavailable.
In `@en/getting-started/installation.md`:
- Around line 112-114: Update the minimal installation examples in
en/getting-started/installation.md lines 112-114 and
ru/getting-started/installation.md lines 112-114 to use the declared default
IceGate S3 catalog with backend: !s3 instead of the REST/Nessie configuration.
Keep both guides consistent and aligned with the prerequisites so the default
Helm installation does not require an external service.
In `@en/guides/data-retention.md`:
- Around line 22-32: Align the queue bucket name across both lifecycle
configuration examples in the data-retention guide. Update the RustFS command to
use the configured bucket name consistently with the AWS example, or clearly
mark icegate-queue as an environment-specific value users must replace.
In `@fr/getting-started/configuration.md`:
- Line 197: Update the complete Ingest, Query, and Maintain configuration
examples to use the integrated S3 catalog with backend !s3, matching the
documented RustFS default; remove the Nessie-specific !rest catalog settings
unless those examples are explicitly labeled as optional Nessie configurations.
In `@fr/operations/deployment.md`:
- Around line 12-13: Update the troubleshooting guidance referenced by
deployment documentation so Nessie port 19120 and backend: !rest checks are
explicitly limited to REST/Nessie deployments, and add equivalent
troubleshooting steps for the integrated S3 catalog default. Ensure the guidance
matches the catalog options described in deployment.md.
- Line 70: Update the RustFS image tag in the deployment configuration from
rustfs/rustfs:1.0.0-beta.8 to a later patched beta release, or document the
requirement and add tests validating why beta.8 must remain.
In `@fr/operations/troubleshooting.md`:
- Around line 64-72: Separate the RustFS-specific health-check guidance from the
generic object-storage troubleshooting section in the documentation. Restrict
curl http://localhost:9000/health/ready and any local endpoint aws s3 ls example
to the pinned rustfs/rustfs:1.0.0-beta.8 deployment, while keeping AWS S3, AWS
S3 Tables, and external S3 troubleshooting provider-agnostic.
In `@llms-full.txt`:
- Around line 18-19: Update the catalog documentation to consistently present
IceGate’s S3 catalog (backend: !s3) as the default: describe root.json and
catalog metadata as stored in object storage, and label Nessie metadata and
backup procedures as an alternative rather than default guidance.
- Around line 1614-1622: Update the Grafana migration guidance around the final
compatibility claim to avoid guaranteeing that all dashboards, alerting rules,
and saved queries will work. Limit the guarantee to documented compatible Loki
read endpoints and tested queries, while preserving the existing data-source
setup steps.
- Around line 2162-2172: Update the queue-bucket lifecycle guidance and its
repeated AWS S3 examples to state that the TTL must exceed the maximum
unshifted-WAL recovery window, preventing segments from expiring before offsets
are committed. Replace the fixed one-day recommendation with a configurable,
appropriately chosen TTL and document the precondition that lifecycle expiration
is safe only after that window.
---
Minor comments:
In `@c4/workspace.dsl`:
- Line 89: Update the Trino relationship in the workspace model so its Iceberg
REST connection targets icegate.s3Catalog only when that component’s optional
REST API is enabled, rather than icegate.catalogStore. If the configuration uses
Nessie, model Nessie as a separate external REST catalog instead.
In `@en/development/setup.md`:
- Line 61: Update en/development/setup.md lines 61-61 to label the fenced
profile “IceGate S3 (backend: !s3)”; update en/development/setup.md lines 90-104
to name the default catalog “{{product_name}} S3” and include “backend: !s3”.
Update en/development/contributing.md lines 103-111 to use “IceGate S3” in the
fenced workspace comment. Update ru/architecture/overview.md lines 79-83 to
identify “{{product_name}} S3” with “backend: !s3”, and lines 102-104 to use the
same canonical catalog name; keep YFM variables out of fenced code comments.
In `@en/faq.md`:
- Line 210: Update the GitHub Issues link in the FAQ to replace the {{repo_url}}
template variable in both the link destination and displayed URL with the
literal repository issues URL, preserving the existing link text and Markdown
structure.
In `@en/operations/deployment.md`:
- Line 158: Make Helm the primary installation method in both deployment guides:
in en/operations/deployment.md lines 158-158 and ru/operations/deployment.md
lines 158-158, move the Helm section before Docker Compose or clearly label
Docker Compose as secondary while linking to Helm as the default path.
In `@fr/guides/ingestion.md`:
- Line 25: Use the consistent French spelling “multitenant” by replacing
“multi-tenant” in fr/guides/ingestion.md lines 25-25 and
fr/guides/multi-tenancy.md lines 14-14; no other wording changes are needed.
In `@fr/operations/troubleshooting.md`:
- Line 276: Update the GitHub Issues link in the troubleshooting documentation
to replace the {{repo_url}} template variable with the configured literal
repository URL, while preserving the visible link text.
In `@ru/architecture/data-model.md`:
- Line 14: Align the storage terminology across
ru/architecture/data-model.md:14-14 and ru/architecture/overview.md:8-8: either
document LLM operations as being stored in the existing events table, or add the
corresponding Iceberg table and schema details, then use the same terminology in
both documents.
In `@ru/architecture/overview.md`:
- Line 133: В предложении с описанием освобождения сегментов WAL замените
неестественную фразу «shift'у продолжить с места остановки» на «процессу shift
возобновить работу с места остановки», сохранив остальной смысл предложения без
изменений.
In `@ru/getting-started/quickstart.md`:
- Line 8: Update the quick-start summary sentence to avoid implying Prometheus
support: limit the listed query paths to Loki, Tempo, and Arrow Flight SQL, or
explicitly mark Prometheus metrics querying as planned.
In `@ru/guides/grafana-integration.md`:
- Line 14: Обновите описание портов в руководстве Grafana: в тексте подключения
к {{product_name}} укажите 9090 как порт API Prometheus, а 9091 зарезервируйте
для метрик. Сохраните остальные сведения о Loki и Tempo без изменений.
---
Nitpick comments:
In `@c4/README.md`:
- Line 56: Update the fenced workspace tree in the README to include the text
language identifier, changing the opening fence to text while preserving the
existing tree content.
In `@en/architecture/overview.md`:
- Around line 131-133: Make lifecycle-based WAL reclamation an explicit
deployment contract in en/architecture/overview.md lines 131-133 by stating that
every supported deployment must provision a lifecycle rule for the queue bucket.
In fr/operations/maintenance.md lines 55-57, document the same queue-bucket
lifecycle requirement and specify its retention policy.
🪄 Autofix
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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 7ba5df08-1b59-4818-abb8-04087baa73f7
⛔ Files ignored due to path filters (7)
assets/c4/structurizr-CatalogComponents.pngis excluded by!**/*.pngassets/c4/structurizr-Containers.pngis excluded by!**/*.pngassets/c4/structurizr-IngestComponents.pngis excluded by!**/*.pngassets/c4/structurizr-MaintainComponents.pngis excluded by!**/*.pngassets/c4/structurizr-QueryComponents.pngis excluded by!**/*.pngassets/c4/structurizr-QueueComponents.pngis excluded by!**/*.pngassets/c4/structurizr-SystemContext.pngis excluded by!**/*.png
📒 Files selected for processing (88)
.yfmAGENTS.mdc4/README.mdc4/workspace.dslen/api-reference/loki.mden/api-reference/otlp.mden/api-reference/prometheus.mden/api-reference/tempo.mden/architecture/data-model.mden/architecture/overview.mden/cookbooks/centralized-logging.mden/cookbooks/observability-correlation.mden/cookbooks/traces-end-to-end.mden/development/building.mden/development/contributing.mden/development/patterns.mden/development/setup.mden/faq.mden/getting-started/configuration.mden/getting-started/installation.mden/getting-started/quickstart.mden/guides/data-retention.mden/guides/grafana-integration.mden/guides/ingestion.mden/guides/multi-tenancy.mden/guides/performance-tuning.mden/guides/querying.mden/operations/deployment.mden/operations/maintenance.mden/operations/troubleshooting.mden/trademarks.mdfr/api-reference/loki.mdfr/api-reference/otlp.mdfr/api-reference/prometheus.mdfr/api-reference/tempo.mdfr/architecture/data-model.mdfr/architecture/overview.mdfr/cookbooks/centralized-logging.mdfr/cookbooks/observability-correlation.mdfr/cookbooks/traces-end-to-end.mdfr/development/building.mdfr/development/contributing.mdfr/development/patterns.mdfr/development/setup.mdfr/faq.mdfr/getting-started/configuration.mdfr/getting-started/installation.mdfr/getting-started/quickstart.mdfr/guides/data-retention.mdfr/guides/grafana-integration.mdfr/guides/ingestion.mdfr/guides/multi-tenancy.mdfr/guides/performance-tuning.mdfr/guides/querying.mdfr/operations/deployment.mdfr/operations/maintenance.mdfr/operations/troubleshooting.mdfr/trademarks.mdllms-full.txtllms.txtpackage.jsonru/api-reference/loki.mdru/api-reference/otlp.mdru/api-reference/prometheus.mdru/api-reference/tempo.mdru/architecture/data-model.mdru/architecture/overview.mdru/cookbooks/centralized-logging.mdru/cookbooks/observability-correlation.mdru/cookbooks/traces-end-to-end.mdru/development/building.mdru/development/contributing.mdru/development/patterns.mdru/development/setup.mdru/faq.mdru/getting-started/configuration.mdru/getting-started/installation.mdru/getting-started/quickstart.mdru/guides/data-retention.mdru/guides/grafana-integration.mdru/guides/ingestion.mdru/guides/multi-tenancy.mdru/guides/performance-tuning.mdru/guides/querying.mdru/operations/deployment.mdru/operations/maintenance.mdru/operations/troubleshooting.mdru/trademarks.md
🚧 Files skipped from review as they are similar to previous changes (17)
- en/trademarks.md
- fr/guides/grafana-integration.md
- en/guides/querying.md
- ru/api-reference/tempo.md
- en/cookbooks/traces-end-to-end.md
- fr/api-reference/prometheus.md
- fr/api-reference/tempo.md
- fr/api-reference/loki.md
- en/api-reference/prometheus.md
- ru/api-reference/prometheus.md
- en/api-reference/loki.md
- fr/guides/querying.md
- ru/trademarks.md
- en/api-reference/tempo.md
- ru/guides/querying.md
- package.json
- ru/api-reference/loki.md
…etails, and semantic additions for LLM operations
There was a problem hiding this comment.
Actionable comments posted: 8
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
c4/workspace.dsl (1)
59-61: 🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy liftModel non-S3 catalog backends separately.
catalogStorelists Nessie, Glue, and S3 Tables, buts3CatalogandcatalogServiceare described as aroot.jsonimplementation, and the storage relationship says “Reads and CAS-writes catalog state.” That description is correct only for the default!s3backend. Show the backend abstraction and backend-specific relationships, or scope these elements to!s3; otherwise the architecture contradicts the configuration documentation.Also applies to: 78-79, 127-129, 175-179
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@c4/workspace.dsl` around lines 59 - 61, Update the catalog model around catalogStore, s3Catalog, catalogService, catalogCache, and catalogStorage to distinguish the default root.json backend from Nessie, Glue, and S3 Tables. Represent the backend abstraction and backend-specific relationships explicitly, or scope the root.json components and their read/CAS-write relationships to the !s3 configuration so the architecture matches the documented backend selection.en/operations/troubleshooting.md (1)
69-85: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winUse provider-specific endpoints in all S3 troubleshooting commands.
These procedures hard-code the local RustFS endpoint while presenting the commands as generic S3 checks. Omit
--endpoint-urlfor AWS S3, use the configured endpoint for other providers, and reservelocalhost:9000for local RustFS.
- en/operations/troubleshooting.md#L69-L85: Separate the local RustFS readiness check from the external-provider S3 test.
- en/operations/troubleshooting.md#L97-L121: Apply the same endpoint rule to the
root.jsoncatalog check.- ru/operations/troubleshooting.md#L68-L85: Separate the local RustFS readiness check from the external-provider S3 test.
- ru/operations/troubleshooting.md#L96-L120: Apply the same endpoint rule to the
root.jsoncatalog check.- fr/operations/troubleshooting.md#L69-L85: Separate the local RustFS readiness check from the external-provider S3 test.
- fr/operations/troubleshooting.md#L97-L121: Apply the same endpoint rule to the
root.jsoncatalog check.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/operations/troubleshooting.md` around lines 69 - 85, Update the troubleshooting commands to distinguish local RustFS readiness checks from external-provider S3 tests: retain localhost:9000 only for the local RustFS readiness path, omit --endpoint-url for AWS S3, and use the configured provider endpoint elsewhere. Apply this to en/operations/troubleshooting.md lines 69-85 and 97-121, ru/operations/troubleshooting.md lines 68-85 and 96-120, and fr/operations/troubleshooting.md lines 69-85 and 97-121, including the root.json catalog checks.en/guides/grafana-integration.md (1)
109-113: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winRemove the non-functional Prometheus provisioning entry.
The provisioning example at Lines 178-186 still creates a Prometheus data source, but every Prometheus route except
/-/readyreturns501 Not Implemented. Remove that entry from the current provisioning example or mark it as future-only.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/guides/grafana-integration.md` around lines 109 - 113, Remove the Prometheus data source provisioning entry from the current example, or clearly isolate it as future-only so the active provisioning configuration does not create a non-functional source. Preserve the existing Loki and Arrow Flight SQL provisioning guidance.ru/architecture/overview.md (1)
48-50: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick winMake the Arrow Flight SQL tenant guarantee observable.
ru/architecture/overview.mdstates Flight SQL appliestenant_idon every scan, and the same wording appears infr/architecture/overview.md. Add an explicit failure path for missing or invalidX-Scope-OrgID/x-scope-orgid, even on prepared statements, so JDBC, ODBC, and ADBC clients cannot fall back to an unfiltered scan.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ru/architecture/overview.md` around lines 48 - 50, Update the Arrow Flight SQL request handling described in the architecture documentation to require a valid tenant from X-Scope-OrgID or x-scope-orgid, including prepared statements, and explicitly reject requests when it is missing or invalid before any scan executes. Apply the same documented behavior in the corresponding French architecture overview so clients cannot perform unfiltered scans.
🧹 Nitpick comments (1)
en/architecture/data-model.md (1)
323-354: 🔒 Security & Privacy | 🔵 TrivialVerify privacy controls for persisted operation content.
operationsstoresuser_idand raw prompt, completion, system-instruction, tool-argument, and tool-result JSON. These values can contain personal data or secrets. Confirm that retention, redaction, access-control, and encryption guidance covers these columns, and link that guidance from this schema.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/architecture/data-model.md` around lines 323 - 354, Update the operations schema documentation around user_id and the content fields input_messages, output_messages, system_instructions, tool_call_arguments, and tool_call_result to reference guidance covering retention, redaction, access control, and encryption for persisted sensitive data. Add the link from this schema section to the established privacy or security guidance without changing the column definitions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@en/architecture/data-model.md`:
- Around line 294-323: Add the missing pricing join dimensions to the operations
schema or document their authoritative sources: define how
provider_name/request_model map to prices.provider/model, expose service_tier
and region, and map token usage to min_input_tokens. Document the deterministic
rate-selection rule used to select a prices record for each operation.
In `@en/guides/data-retention.md`:
- Around line 233-237: Align the bucket reference in the catalog backup guidance
with the versioning configuration for icegate-warehouse, or clearly mark both
bucket names as environment-specific placeholders users must replace. Update the
surrounding S3 backup instructions while preserving the catalog prefix and sync
behavior.
In `@en/operations/maintenance.md`:
- Around line 148-154: The S3 catalog backup instructions incorrectly present a
live aws s3 sync as a safe backup boundary. Update the corresponding
catalog-backup sections in en/operations/maintenance.md lines 148-154,
ru/operations/maintenance.md lines 148-154, and fr/operations/maintenance.md
lines 150-156 to require pausing catalog writes, taking a
versioned/object-versioned snapshot, or performing restore verification before
treating the backup as safe.
In `@fr/architecture/data-model.md`:
- Around line 24-25: Update the introduction and common-pattern statements in
the French data-model documentation to reflect six tables and clarify that
tenant_id applies to tenant-scoped tables, excluding the global prices table.
Preserve the existing table descriptions and terminology.
In `@fr/getting-started/installation.md`:
- Line 44: In the prose sentence describing the native serde configuration
format, replace the hard-coded “IceGate” reference with the existing
{{product_name}} variable; leave all copy-pastable Helm and configuration syntax
unchanged.
In `@ru/architecture/data-model.md`:
- Around line 24-25: Update the data-model partitioning rule near the statement
that every table uses tenant_id so it explicitly applies only to tenant-scoped
tables, while preserving prices as a global table without tenant_id.
In `@ru/architecture/overview.md`:
- Line 145: Update the migration architecture description to remove the claim
that independent cycles never compete; clarify that task-state prefixes isolate
only their state objects, while compaction and orphaned-object GC may contend
over shared Iceberg metadata, data objects, or catalog commits, and document the
applicable conflict-handling mechanism.
- Line 139: Обновите описание рядом с упоминанием Shift в
ru/architecture/overview.md: явно зафиксируйте, что WAL-сегменты сохраняются до
прохождения их офсета подтверждённым Iceberg-снапшотом, включая случаи
задержанного или неуспешного Shift; сохраните пояснение, что освобождение
выполняет lifecycle-правило бакета, а офсет позволяет продолжить обработку.
---
Outside diff comments:
In `@c4/workspace.dsl`:
- Around line 59-61: Update the catalog model around catalogStore, s3Catalog,
catalogService, catalogCache, and catalogStorage to distinguish the default
root.json backend from Nessie, Glue, and S3 Tables. Represent the backend
abstraction and backend-specific relationships explicitly, or scope the
root.json components and their read/CAS-write relationships to the !s3
configuration so the architecture matches the documented backend selection.
In `@en/guides/grafana-integration.md`:
- Around line 109-113: Remove the Prometheus data source provisioning entry from
the current example, or clearly isolate it as future-only so the active
provisioning configuration does not create a non-functional source. Preserve the
existing Loki and Arrow Flight SQL provisioning guidance.
In `@en/operations/troubleshooting.md`:
- Around line 69-85: Update the troubleshooting commands to distinguish local
RustFS readiness checks from external-provider S3 tests: retain localhost:9000
only for the local RustFS readiness path, omit --endpoint-url for AWS S3, and
use the configured provider endpoint elsewhere. Apply this to
en/operations/troubleshooting.md lines 69-85 and 97-121,
ru/operations/troubleshooting.md lines 68-85 and 96-120, and
fr/operations/troubleshooting.md lines 69-85 and 97-121, including the root.json
catalog checks.
In `@ru/architecture/overview.md`:
- Around line 48-50: Update the Arrow Flight SQL request handling described in
the architecture documentation to require a valid tenant from X-Scope-OrgID or
x-scope-orgid, including prepared statements, and explicitly reject requests
when it is missing or invalid before any scan executes. Apply the same
documented behavior in the corresponding French architecture overview so clients
cannot perform unfiltered scans.
---
Nitpick comments:
In `@en/architecture/data-model.md`:
- Around line 323-354: Update the operations schema documentation around user_id
and the content fields input_messages, output_messages, system_instructions,
tool_call_arguments, and tool_call_result to reference guidance covering
retention, redaction, access control, and encryption for persisted sensitive
data. Add the link from this schema section to the established privacy or
security guidance without changing the column definitions.
🪄 Autofix
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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 418daa5f-8d48-4539-83a8-55990b6ba467
⛔ Files ignored due to path filters (7)
assets/c4/structurizr-CatalogComponents.pngis excluded by!**/*.pngassets/c4/structurizr-IngestComponents.pngis excluded by!**/*.pngassets/c4/structurizr-IngestionFlow.pngis excluded by!**/*.pngassets/c4/structurizr-MaintenanceFlow.pngis excluded by!**/*.pngassets/c4/structurizr-QueryComponents.pngis excluded by!**/*.pngassets/c4/structurizr-QueryFlow.pngis excluded by!**/*.pngassets/c4/structurizr-QueueComponents.pngis excluded by!**/*.png
📒 Files selected for processing (30)
c4/README.mdc4/workspace.dslen/architecture/data-model.mden/architecture/overview.mden/development/contributing.mden/development/setup.mden/getting-started/configuration.mden/getting-started/installation.mden/guides/data-retention.mden/guides/grafana-integration.mden/operations/maintenance.mden/operations/troubleshooting.mdfr/architecture/data-model.mdfr/architecture/overview.mdfr/development/contributing.mdfr/development/setup.mdfr/getting-started/configuration.mdfr/getting-started/installation.mdfr/operations/maintenance.mdfr/operations/troubleshooting.mdfr/trademarks.mdllms-full.txtru/architecture/data-model.mdru/architecture/overview.mdru/development/setup.mdru/getting-started/configuration.mdru/getting-started/installation.mdru/operations/maintenance.mdru/operations/troubleshooting.mdru/trademarks.md
🚧 Files skipped from review as they are similar to previous changes (13)
- fr/trademarks.md
- c4/README.md
- en/development/contributing.md
- ru/trademarks.md
- en/getting-started/installation.md
- fr/development/contributing.md
- ru/getting-started/installation.md
- en/development/setup.md
- fr/development/setup.md
- ru/development/setup.md
- en/architecture/overview.md
- fr/architecture/overview.md
- llms-full.txt
…ed tables, pricing data model, and retention durability impacts
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
fr/architecture/overview.md (1)
79-81: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick winDocument the native catalog tag.
This page names the S3 catalog as the default, but it does not show
backend: !s3. Add a short native configuration example or state the exact tagged-enum value. Keep REST/Nessie, AWS S3 Tables, and AWS Glue as alternatives.As per coding guidelines,
**/*.{md,yaml,yml}files must use IceGate's YAML tagged-enum syntax and document!s3as the default catalog backend; Nessie, Glue, and S3 Tables are alternatives.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@fr/architecture/overview.md` around lines 79 - 81, Update the catalog backend documentation near the default and alternative backend bullets to include a short native configuration example or explicitly state the tagged-enum value `backend: !s3`. Preserve REST/Nessie, AWS S3 Tables, and AWS Glue as alternative backends, and use IceGate’s YAML tagged-enum syntax consistently.Source: Coding guidelines
llms-full.txt (1)
2429-2435: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick winUse one correct S3 catalog backup procedure across all documentation.
S3 versioning is per object, so bucket or prefix version lists do not create a single consistent snapshot of
root.jsonplus table metadata files.root.jsonCAS does not make a prefixsyncatomic. Update the backup guidance atllms-full.txt#L2429-L2435,llms-full.txt#L5349-L5351, andru/operations/maintenance.md#L154to require writes quiesced or a cutoff-based object-version manifest copy, then keep backfilling the same validation steps.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@llms-full.txt` around lines 2429 - 2435, Update the S3 catalog backup guidance at llms-full.txt lines 2429-2435 and 5350, and ru/operations/maintenance.md lines 148-156, to use one consistent procedure: require catalog writes to be quiesced or copy a cutoff-based manifest of object versions for root.json and all table metadata. Remove claims that S3 sync or root.json CAS provides an atomic consistent snapshot, and preserve the existing validation steps while backfilling them consistently at every site.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@llms-full.txt`:
- Around line 4668-4765: Add an operations-specific privacy-controls section
near the Operations Table documenting collection scope, redaction or masking
guidance, access boundaries, storage encryption, retention, and deletion
behavior for input_messages, output_messages, system_instructions,
tool_call_arguments, tool_call_result, and user_id. Reference the existing
tenant-isolation and data-retention documentation only for generic controls,
while explicitly describing protections for prompts, completions, tool payloads,
and PII.
---
Outside diff comments:
In `@fr/architecture/overview.md`:
- Around line 79-81: Update the catalog backend documentation near the default
and alternative backend bullets to include a short native configuration example
or explicitly state the tagged-enum value `backend: !s3`. Preserve REST/Nessie,
AWS S3 Tables, and AWS Glue as alternative backends, and use IceGate’s YAML
tagged-enum syntax consistently.
In `@llms-full.txt`:
- Around line 2429-2435: Update the S3 catalog backup guidance at llms-full.txt
lines 2429-2435 and 5350, and ru/operations/maintenance.md lines 148-156, to use
one consistent procedure: require catalog writes to be quiesced or copy a
cutoff-based manifest of object versions for root.json and all table metadata.
Remove claims that S3 sync or root.json CAS provides an atomic consistent
snapshot, and preserve the existing validation steps while backfilling them
consistently at every site.
🪄 Autofix
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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 826ac088-b254-41c1-9636-5aea1e3aae3c
📒 Files selected for processing (13)
en/architecture/data-model.mden/architecture/overview.mden/guides/data-retention.mden/operations/maintenance.mdfr/architecture/data-model.mdfr/architecture/overview.mdfr/getting-started/installation.mdfr/operations/maintenance.mdllms-full.txtru/architecture/data-model.mdru/architecture/overview.mdru/getting-started/installation.mdru/operations/maintenance.md
🚧 Files skipped from review as they are similar to previous changes (8)
- ru/getting-started/installation.md
- ru/architecture/data-model.md
- en/architecture/overview.md
- en/guides/data-retention.md
- en/operations/maintenance.md
- fr/operations/maintenance.md
- en/architecture/data-model.md
- ru/architecture/overview.md
Summary by CodeRabbit
501 Not Implementedexcept readiness checks.