Skip to content

Comments

Update dependencies#440

Merged
KaQuMiQ merged 1 commit intomainfrom
feature/dependencies
Oct 3, 2025
Merged

Update dependencies#440
KaQuMiQ merged 1 commit intomainfrom
feature/dependencies

Conversation

@KaQuMiQ
Copy link
Collaborator

@KaQuMiQ KaQuMiQ commented Oct 3, 2025

No description provided.

@coderabbitai
Copy link

coderabbitai bot commented Oct 3, 2025

Warning

Rate limit exceeded

@KaQuMiQ has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 17 minutes and 43 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 5ece0f5 and 199f69a.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (27)
  • .github/workflows/ci.yml (1 hunks)
  • .pymarkdown.json (1 hunks)
  • AGENTS.md (2 hunks)
  • Makefile (3 hunks)
  • README.md (5 hunks)
  • docs/cookbooks/BasicDataExtraction.md (1 hunks)
  • docs/cookbooks/BasicMCP.md (2 hunks)
  • docs/cookbooks/BasicRAG.md (3 hunks)
  • docs/getting-started/first-steps.md (3 hunks)
  • docs/getting-started/index.md (2 hunks)
  • docs/getting-started/installation.md (1 hunks)
  • docs/getting-started/quickstart.md (1 hunks)
  • docs/guides/AdvancedState.md (10 hunks)
  • docs/guides/BasicConversation.md (4 hunks)
  • docs/guides/BasicEvaluation.md (6 hunks)
  • docs/guides/BasicModelGeneration.md (5 hunks)
  • docs/guides/BasicStageUsage.md (13 hunks)
  • docs/guides/BasicToolsUse.md (5 hunks)
  • docs/guides/BasicUsage.md (5 hunks)
  • docs/guides/Basics.md (10 hunks)
  • docs/guides/ComprehensiveEvaluation.md (4 hunks)
  • docs/guides/EvaluatorCatalog.md (26 hunks)
  • docs/guides/MultimodalContent.md (7 hunks)
  • docs/guides/Postgres.md (5 hunks)
  • docs/index.md (6 hunks)
  • llms.txt (1 hunks)
  • pyproject.toml (3 hunks)

Walkthrough

Adds a new .pymarkdown.json configuring Markdown lint plugins (md013, md033). Updates Makefile to add docs-format (mdformat), switch docs-lint to use uv-run pymarkdown, remove --managed-python from uv sync, and adjust docs-server targets. Reflows and formatting edits across README and many docs (including BasicConversation, BasicRAG, guides, and cookbooks). Replaces llms.txt with a runtime-focused Draive LLM Usage Guide that introduces example State/DataModel classes and runtime helper functions. Bumps package version to 0.87.7 and updates numerous dependencies; CI docs-lint step switched to pymarkdown using the new config.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Mixed but largely homogeneous documentation reflows across many files, plus several tooling/config changes (Makefile, CI, new lint config) and dependency/version bumps. Review should focus on docs build/lint workflow changes and dependency updates.

Possibly related PRs

  • Cleanup and lint docs #438 — Strong overlap on docs linting and Makefile/CI changes: replaces the custom markdown_lint.py flow with pymarkdown.
  • Update dependencies #385 — Related dependency/version bump work touching pyproject.toml and package upgrades.
  • Add docs #377 — Related changes to docs build/serve tooling and CI/docs workflow adjustments.

Pre-merge checks and finishing touches and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description Check ⚠️ Warning No pull request description was provided, so there is no information describing the scope or intent of the changeset and reviewers are left without context. Please add a concise description summarizing the purpose and key changes of this pull request so reviewers can understand its scope and rationale.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The title clearly indicates that dependencies were updated, which is a major aspect of this pull request even though there are ancillary tool and formatting changes; it is concise and on-topic.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

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

❤️ Share

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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

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

⚠️ Outside diff range comments (4)
docs/guides/ComprehensiveEvaluation.md (1)

5-101: Fix the unbalanced code fences.

The top evaluator section opens with python but the nested ```python fences never close before you terminate the outer block at Line 101. Everything that follows stays inside an unterminated fence, which is why markdown_lint fails (`code fence not closed`) and why later sections render incorrectly. Close each inner ``` block before ending the outer block, or drop the outer fence altogether. Then rerun docs-lint to confirm the pipeline passes.

docs/guides/AdvancedState.md (1)

17-301: Add languages to new fenced blocks to satisfy pymarkdown.

The new fenced blocks (e.g., Line 17 and similar outputs) omit a language tag, so the updated docs lint (MD040) fails. Please mark these as text (or an appropriate language) across the file.

-```
+```text
 name: converted

@@
- +text
initial identifier: pre
value: 42
updated identifier: post
value: 42
final identifier: pre

@@
-```
+```text
name: converted

@@
- +text
{
"type": "object",
"properties": {
@@

@@
-```
+```text
{
  "field": "string"
}

@@
- +text
JSON schema:
{
@@

@@
-```
+```text
default: 42
field_default: 21

@@
- -text +text

verifier gets pre-validated value, it already have required type

def verifier(value: int) -> None:
@@
print(CustomizedSpecificationModel.json_schema(indent=2))
- +
@@
- +text
{
"type": "object",
"properties": {
@@

@@
-```
+```text
(42, 21)

@@
- +text
nested.values

@@
-```
+```text
True

@@
- +text
lhs: nested.values[0]
operator: equal
rhs: 42
@@
True
- +


</blockquote></details>
<details>
<summary>docs/cookbooks/BasicRAG.md (1)</summary><blockquote>

`10-135`: **Fix malformed code fences in Basic RAG guide**

Lines 10-135: The new quadruple fences wrap ` ```python` blocks, so the guide now renders the literal backticks instead of highlighted code, and the outer fence never closes cleanly (pymarkdown flags MD040). Please flatten these into standalone fences and label the output blocks.

```diff
-````python
-from draive import load_env
-
-```python
-from draive import DataModel, ctx, split_text
+```python
+from draive import load_env
+from draive import DataModel, ctx, split_text
 from draive.openai import OpenAI
@@
 print(f"Prepared {len(document_chunks)} chunks:\n---")
 print("\n---\n".join(chunk.content for chunk in document_chunks))
-````
-
-```
+```
+
+```text
 Prepared 11 chunks:
 ---
@@
-````python
-from collections.abc import Sequence
-
-from draive import VectorIndex
-from draive.helpers import VolatileVectorIndex
-from draive.openai import OpenAIEmbeddingConfig, OpenAI
+```python
+from collections.abc import Sequence
+
+from draive import VectorIndex
+from draive.helpers import VolatileVectorIndex
+from draive.openai import OpenAIEmbeddingConfig, OpenAI
@@
-```python
-from collections.abc import Sequence
-
-from draive import Toolbox, TextGeneration, tool, VectorIndex
-from draive.openai import OpenAIResponsesConfig, OpenAI, OpenAIEmbeddingConfig
+```
+
+```python
+from collections.abc import Sequence
+
+from draive import Toolbox, TextGeneration, tool, VectorIndex
+from draive.openai import OpenAIResponsesConfig, OpenAI, OpenAIEmbeddingConfig
@@
-````
-
-```
+```
+
+```text
 According to available sources, John Doe lives in Vancouver.
-```
+```
docs/guides/BasicToolsUse.md (1)

3-19: Fix malformed fences around the first tool example.

Opening with ````python while inserting a nested python leaves the inner fence as literal text and collapses both snippets into one block. Switch back to two separate python fences (also adjust the later occurrence around customized_more) so the code renders correctly.

-````python
+```python
 from draive import tool
 
 @tool  # simply annotate function as a tool, tools can have arguments using basic types
 async def current_time(location: str) -> str:
     # return result of tool execution, we are using fake time here
-
-```python
+```
+
+```python
 from draive import ctx
 
 async with ctx.scope("basics"):
     # we can still use it as a regular function
     # but it has to be executed within context scope
     print(await current_time(location="London"))
 
 # await current_time(location="London") # error! out of context
-````
+```
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f666d46 and 3391afa.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (26)
  • .pymarkdown.json (1 hunks)
  • AGENTS.md (2 hunks)
  • Makefile (3 hunks)
  • README.md (5 hunks)
  • docs/cookbooks/BasicDataExtraction.md (1 hunks)
  • docs/cookbooks/BasicMCP.md (2 hunks)
  • docs/cookbooks/BasicRAG.md (3 hunks)
  • docs/getting-started/first-steps.md (3 hunks)
  • docs/getting-started/index.md (2 hunks)
  • docs/getting-started/installation.md (1 hunks)
  • docs/getting-started/quickstart.md (1 hunks)
  • docs/guides/AdvancedState.md (10 hunks)
  • docs/guides/BasicConversation.md (4 hunks)
  • docs/guides/BasicEvaluation.md (6 hunks)
  • docs/guides/BasicModelGeneration.md (5 hunks)
  • docs/guides/BasicStageUsage.md (13 hunks)
  • docs/guides/BasicToolsUse.md (5 hunks)
  • docs/guides/BasicUsage.md (5 hunks)
  • docs/guides/Basics.md (10 hunks)
  • docs/guides/ComprehensiveEvaluation.md (4 hunks)
  • docs/guides/EvaluatorCatalog.md (26 hunks)
  • docs/guides/MultimodalContent.md (7 hunks)
  • docs/guides/Postgres.md (5 hunks)
  • docs/index.md (6 hunks)
  • llms.txt (1 hunks)
  • pyproject.toml (3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

When behavior/API changes, update relevant documentation pages under docs/ and examples as needed

Files:

  • docs/getting-started/index.md
  • docs/guides/BasicConversation.md
  • docs/getting-started/installation.md
  • docs/getting-started/quickstart.md
  • docs/guides/MultimodalContent.md
  • docs/guides/Postgres.md
  • docs/guides/EvaluatorCatalog.md
  • docs/guides/BasicEvaluation.md
  • docs/guides/BasicToolsUse.md
  • docs/cookbooks/BasicDataExtraction.md
  • docs/guides/BasicModelGeneration.md
  • docs/index.md
  • docs/getting-started/first-steps.md
  • docs/cookbooks/BasicRAG.md
  • docs/guides/BasicStageUsage.md
  • docs/guides/Basics.md
  • docs/guides/AdvancedState.md
  • docs/cookbooks/BasicMCP.md
  • docs/guides/ComprehensiveEvaluation.md
  • docs/guides/BasicUsage.md
🧠 Learnings (6)
📚 Learning: 2025-06-16T10:28:07.434Z
Learnt from: KaQuMiQ
PR: miquido/draive#338
File: src/draive/lmm/__init__.py:1-2
Timestamp: 2025-06-16T10:28:07.434Z
Learning: The draive project requires Python 3.12+ as specified in pyproject.toml with "requires-python = ">=3.12"" and uses Python 3.12+ specific features like PEP 695 type aliases and generic syntax extensively throughout the codebase.

Applied to files:

  • docs/getting-started/installation.md
  • pyproject.toml
📚 Learning: 2025-10-01T13:12:39.702Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.702Z
Learning: Applies to src/draive/**/*.py : Construct multimodal content with `MultimodalContent.of(...)`; use `ResourceContent/Reference` for blobs; wrap custom data in `ArtifactContent` (use hidden when needed)

Applied to files:

  • docs/guides/MultimodalContent.md
📚 Learning: 2025-10-01T13:12:39.702Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.702Z
Learning: Applies to src/draive/**/*.py : Use `final` where applicable; avoid complex inheritance, prefer composition

Applied to files:

  • AGENTS.md
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Applies to src/draive/**/*.py : No untyped public APIs; maintain strict typing

Applied to files:

  • AGENTS.md
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Preview docs locally with `make docs-server` and build with `make docs`

Applied to files:

  • AGENTS.md
  • Makefile
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Applies to src/draive/**/*.py : Use `ctx.scope(...)` to bind scoped Disposables and active State; avoid global state

Applied to files:

  • docs/getting-started/first-steps.md
  • docs/guides/Basics.md
🪛 checkmake (0.2.2)
Makefile

[warning] 16-16: Missing required phony target "all"

(minphony)


[warning] 16-16: Missing required phony target "clean"

(minphony)

🪛 GitHub Actions: CI
docs/guides/ComprehensiveEvaluation.md

[error] 285-285: markdown_lint failed: code fence not closed. Command: 'uv run python tools/markdown_lint.py docs' exited with code 1.

🪛 markdownlint-cli2 (0.18.1)
docs/guides/BasicEvaluation.md

89-89: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


96-96: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


102-102: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/cookbooks/BasicRAG.md

49-49: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


133-133: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/guides/AdvancedState.md

17-17: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


41-41: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


62-62: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


73-73: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


94-94: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


111-111: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


147-147: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


190-190: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


241-241: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


252-252: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


272-272: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


294-294: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/guides/BasicUsage.md

52-52: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


107-107: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


148-148: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (1)
llms.txt (1)

110-125: Verify the public import path for tool.

Other docs (e.g., BasicToolsUse) still import tool via from draive import tool. If the public surface hasn’t moved to draive.models.tools, this snippet will break. Please confirm and align the import with the supported API.

@KaQuMiQ KaQuMiQ force-pushed the feature/dependencies branch 2 times, most recently from 247e498 to 5ece0f5 Compare October 3, 2025 08:19
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 11

Caution

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

⚠️ Outside diff range comments (4)
docs/guides/AdvancedState.md (1)

17-274: Add languages to output fences

The new pymarkdown (MD040) gate fails because several result fences (e.g., Lines 17, 41, 62, 73, 94, 111, 147, 191, 241, 252, 272, 295) lack a language tag. Please mark these as plain text (for example, ```text) so docs-lint passes.

-```
+```text
 name: converted

- +text
initial identifier: pre
value: 42
updated identifier: post
value: 42
final identifier: pre

-```
+```text
name: converted

- +json
{
"type": "object",
"properties": {
"field": {
"type": "string"
}
},
"required": [
"field"
]
}

-```
+```json
{
  "field": "string"
}

- +text
JSON schema:
{
"type": "object",
"properties": {
"described": {
"type": "integer",
"description": "Field description"
},
"field_alias": {
"type": "string"
}
},
"required": [
"described",
"field_alias"
]
}
Simplified schema:
{
"described": "integer(Field description)",
"field_alias": "string"
}

-```
+```text
default: 42
field_default: 21

- +json
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Fully custom"
}
},
"required": [
"value"
]
}

-```
+```text
(42, 21)

- +text
nested.values

-```
+```text
True

- +text
lhs: nested.values[0]
operator: equal
rhs: 42

True

docs/guides/BasicConversation.md (1)

68-75: Tag the example output fence

Docs lint now requires a language on fenced blocks. The conversation output (Lines 68-75) is missing one—mark it as ```text so make docs-lint passes.

-```
+```text
 identifier: dd2a86730a3441939359e960f0cc2da3
 role: model
 created: 2025-03-07 12:40:30.130777+00:00
 content:
   parts:
     - text: The current UTC time and date is Friday, 7th March 2025, 12:40:29.

</blockquote></details>
<details>
<summary>docs/guides/BasicToolsUse.md (1)</summary><blockquote>

`21-335`: **Add languages to result/output fences**

Several fences (e.g., Lines 21-23, 85-87, 160-335) are unlabelled, which violates MD040 under the new pymarkdown gate. Please annotate them (e.g., ` ```text`, ` ```json`) so docs lint succeeds.  


```diff
-```
+```text
 Time in London is 9:53:22

- +json
{'name': 'fun_fact', 'description': 'Find a fun fact in a given topic', 'parameters': {'type': 'object', 'properties': {'topic': {'type': 'string', 'description': 'Topic of a fact to find'}}, 'required': []}}

-```
+```text
07/Mar/2025:13:40:43 +0000 [DEBUG] [basics] [8ffed39264134e679e87ae5a34311ad8] [basics] [24eee7a7577b4f25b7c59a43c20a3423] Entering context...

Result:
One funny thing about LLMs (Large Language Models) is that they can generate text that sounds like it was written by a human, but sometimes they mix up facts in the most amusing ways! For example, they might describe a cat as "a small, furry creature that loves to swim" – which is definitely not the case for most cats! They have a knack for making up their own versions of reality, which can lead to some hilarious misunderstandings!

07/Mar/2025:13:40:47 +0000 [DEBUG] [basics] [8ffed39264134e679e87ae5a34311ad8] [basics] [24eee7a7577b4f25b7c59a43c20a3423] Metrics summary:
⎡ @basics [24eee7a7577b4f25b7c59a43c20a3423](3.82s):
|
|  ⎡ @generate_text [484bad5216bf4a2db28dad924f5d0de9](3.82s):
|  |
|  |  ⎡ @model.completion [aea1a47734504cc38267ea31a42aa31e](1.04s):
|  |  |  ⎡ •ArgumentsTrace:
|  |  |  |  ├ kwargs:
|  |  |  |  |  [instruction]: "You are a funny assistant"
|  |  |  |  |  [context]:
|  |  |  |  |  |  [0] content:
|  |  |  |  |  |  |    parts:
|  |  |  |  |  |  |      - text: What is the funny thing about LLMs?
|  |  |  |  |  |  |        meta: None
|  |  |  |  |  |  |  meta: None
|  |  |  |  |  |  [1] completion: None
|  |  |  |  |  |  |  requests:
|  |  |  |  |  |  |    - identifier: call_QpvQQ89llJxvuuW7rmMY9CqA
|  |  |  |  |  |  |      tool: fun_fact
|  |  |  |  |  |  |      arguments:
|  |  |  |  |  |  |        topic: LLMs
|  |  |  |  |  |  [2] responses:
|  |  |  |  |  |  |    - identifier: call_QpvQQ89llJxvuuW7rmMY9CqA
|  |  |  |  |  |  |      tool: fun_fact
|  |  |  |  |  |  |      content:
|  |  |  |  |  |  |        parts:
|  |  |  |  |  |  |          - text: LLMs is very funny on its own!
|  |  |  |  |  |  |            meta: None
|  |  |  |  |  |  |      direct: False
|  |  |  |  |  |  |      error: False
|  |  |  |  |  [tool_selection]:
|  |  |  |  |  |  [name]: "fun_fact"
|  |  |  |  |  |  [description]: "Find a fun fact in a given topic"
|  |  |  |  |  |  [parameters]:
|  |  |  |  |  |  |  [type]: "object"
|  |  |  |  |  |  |  [properties]:
|  |  |  |  |  |  |  |  [topic]:
|  |  |  |  |  |  |  |  |  [type]: "string"
|  |  |  |  |  |  |  |  |  [description]: "Topic of a fact to find"
|  |  |  |  |  [tools]:
|  |  |  |  |  |  [0]
|  |  |  |  |  |  |  [name]: "current_time"
|  |  |  |  |  |  |  [description]: None
|  |  |  |  |  |  |  [parameters]:
|  |  |  |  |  |  |  |  [type]: "object"
|  |  |  |  |  |  |  |  [properties]:
|  |  |  |  |  |  |  |  |  [location]:
|  |  |  |  |  |  |  |  |  |  [type]: "string"
|  |  |  |  |  |  |  |  [required]:
|  |  |  |  |  |  |  |  |  [0] "location"
|  |  |  |  |  |  [1]
|  |  |  |  |  |  |  [name]: "fun_fact"
|  |  |  |  |  |  |  [description]: "Find a fun fact in a given topic"
|  |  |  |  |  |  |  [parameters]:
|  |  |  |  |  |  |  |  [type]: "object"
|  |  |  |  |  |  |  |  [properties]:
|  |  |  |  |  |  |  |  |  [topic]:
|  |  |  |  |  |  |  |  |  |  [type]: "string"
|  |  |  |  |  |  |  |  |  |  [description]: "Topic of a fact to find"
|  |  |  |  |  [output]: "text"
|  |  |  ⌊
|  |  |  ⎡ •OpenAIResponsesConfig:
|  |  |  |  ├ model: "gpt-4o-mini"
|  |  |  |  ├ temperature: 1.0
|  |  |  ⌊
|  |  |  ⎡ •TokenUsage:
|  |  |  |  ├ usage:
|  |  |  |  |  [gpt-4o-mini-2024-07-18]:
|  |  |  |  |  ├ input_tokens: 93
|  |  |  |  |  ├ cached_tokens: 0
|  |  |  |  |  ├ output_tokens: 7
|  |  |  ⌊
|  |  |  ⎡ •OpenAISystemFingerprint:
|  |  |  |  ├ system_fingerprint: "fp_06737a9306"
|  |  |  ⌊
|  |  |  ⎡ •ResultTrace:
|  |  |  |  ├ result: completion: None
|  |  |  |  |  requests:
|  |  |  |  |    - identifier: call_QpvQQ89llJxvuuW7rmMY9CqA
|  |  |  |  |      tool: fun_fact
|  |  |  |  |      arguments:
|  |  |  |  |        topic: LLMs
|  |  |  ⌊
|  |  ⌊
|
...
-```
+```text
07/Mar/2025:13:40:47 +0000 [DEBUG] [basics] [8ffed39264134e679e87ae5a34311ad8] [basics] [24eee7a7577b4f25b7c59a43c20a3423] ...exiting context after 3.82s

</blockquote></details>
<details>
<summary>docs/cookbooks/BasicMCP.md (1)</summary><blockquote>

`9-70`: **Label the sample output fence**

The directory listing/output block (Lines 63-70) lacks a language designation, tripping MD040. Tag it as ` ```text` so the updated docs lint passes.  


```diff
-```
+```text
 The `checkmeout` directory contains the following files:

 - file1
 - file10
 - file2
 - file3

</blockquote></details>

</blockquote></details>
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3391afa and 5ece0f5.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (27)
  • .github/workflows/ci.yml (1 hunks)
  • .pymarkdown.json (1 hunks)
  • AGENTS.md (2 hunks)
  • Makefile (3 hunks)
  • README.md (5 hunks)
  • docs/cookbooks/BasicDataExtraction.md (1 hunks)
  • docs/cookbooks/BasicMCP.md (2 hunks)
  • docs/cookbooks/BasicRAG.md (3 hunks)
  • docs/getting-started/first-steps.md (3 hunks)
  • docs/getting-started/index.md (2 hunks)
  • docs/getting-started/installation.md (1 hunks)
  • docs/getting-started/quickstart.md (1 hunks)
  • docs/guides/AdvancedState.md (10 hunks)
  • docs/guides/BasicConversation.md (4 hunks)
  • docs/guides/BasicEvaluation.md (6 hunks)
  • docs/guides/BasicModelGeneration.md (5 hunks)
  • docs/guides/BasicStageUsage.md (13 hunks)
  • docs/guides/BasicToolsUse.md (5 hunks)
  • docs/guides/BasicUsage.md (5 hunks)
  • docs/guides/Basics.md (10 hunks)
  • docs/guides/ComprehensiveEvaluation.md (6 hunks)
  • docs/guides/EvaluatorCatalog.md (26 hunks)
  • docs/guides/MultimodalContent.md (7 hunks)
  • docs/guides/Postgres.md (5 hunks)
  • docs/index.md (6 hunks)
  • llms.txt (1 hunks)
  • pyproject.toml (3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

When behavior/API changes, update relevant documentation pages under docs/ and examples as needed

Files:

  • docs/guides/AdvancedState.md
  • docs/getting-started/first-steps.md
  • docs/index.md
  • docs/guides/Postgres.md
  • docs/getting-started/quickstart.md
  • docs/guides/EvaluatorCatalog.md
  • docs/guides/BasicEvaluation.md
  • docs/guides/BasicToolsUse.md
  • docs/guides/BasicStageUsage.md
  • docs/guides/BasicUsage.md
  • docs/guides/MultimodalContent.md
  • docs/cookbooks/BasicDataExtraction.md
  • docs/cookbooks/BasicMCP.md
  • docs/cookbooks/BasicRAG.md
  • docs/guides/BasicModelGeneration.md
  • docs/getting-started/installation.md
  • docs/getting-started/index.md
  • docs/guides/Basics.md
  • docs/guides/BasicConversation.md
  • docs/guides/ComprehensiveEvaluation.md
🧠 Learnings (7)
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Applies to src/draive/**/*.py : Use `ctx.scope(...)` to bind scoped Disposables and active State; avoid global state

Applied to files:

  • docs/getting-started/first-steps.md
  • docs/guides/Basics.md
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Run linters/type-checkers Ruff, Bandit, Pyright (strict) via `make lint`

Applied to files:

  • .github/workflows/ci.yml
📚 Learning: 2025-10-01T13:12:39.702Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.702Z
Learning: Applies to src/draive/**/*.py : Construct multimodal content with `MultimodalContent.of(...)`; use `ResourceContent/Reference` for blobs; wrap custom data in `ArtifactContent` (use hidden when needed)

Applied to files:

  • docs/guides/MultimodalContent.md
📚 Learning: 2025-10-01T13:12:39.702Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.702Z
Learning: Applies to src/draive/**/*.py : Use `final` where applicable; avoid complex inheritance, prefer composition

Applied to files:

  • AGENTS.md
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Applies to src/draive/**/*.py : No untyped public APIs; maintain strict typing

Applied to files:

  • AGENTS.md
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Preview docs locally with `make docs-server` and build with `make docs`

Applied to files:

  • AGENTS.md
  • Makefile
📚 Learning: 2025-06-16T10:28:07.434Z
Learnt from: KaQuMiQ
PR: miquido/draive#338
File: src/draive/lmm/__init__.py:1-2
Timestamp: 2025-06-16T10:28:07.434Z
Learning: The draive project requires Python 3.12+ as specified in pyproject.toml with "requires-python = ">=3.12"" and uses Python 3.12+ specific features like PEP 695 type aliases and generic syntax extensively throughout the codebase.

Applied to files:

  • docs/getting-started/installation.md
  • pyproject.toml
🪛 checkmake (0.2.2)
Makefile

[warning] 16-16: Missing required phony target "all"

(minphony)


[warning] 16-16: Missing required phony target "clean"

(minphony)

🪛 markdownlint-cli2 (0.18.1)
docs/guides/AdvancedState.md

133-133: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/guides/BasicToolsUse.md

21-21: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


85-85: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


160-160: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/guides/BasicUsage.md

52-52: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


107-107: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


148-148: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/cookbooks/BasicRAG.md

49-49: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


133-133: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/guides/Basics.md

71-71: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


175-175: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


241-241: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/guides/ComprehensiveEvaluation.md

112-112: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (3)
llms.txt (1)

52-60: Fix the State/ctx import.

State and ctx live in draive, not haiway. The current snippet will crash for readers. Please import them from draive:

-from haiway import State, ctx
+from draive import State, ctx
⛔ Skipped due to learnings
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Applies to src/draive/**/*.py : Import Haiway symbols directly: `from haiway import State, ctx`
.pymarkdown.json (1)

3-16: Consistent lint/format configuration.

Matching md013 limits to the 100‑column mdformat wrap keeps docs-format and docs-lint aligned, avoiding churn.

.github/workflows/ci.yml (1)

35-35: Docs lint step now matches local tooling.

Running pymarkdown with the shared config keeps CI enforcement consistent with make docs-lint.

Comment on lines +107 to +113
```
RESULT GPT 3.5 | temperature 0.4: Violets are blue.

RESULT GPT 4o | temperature 0.4: Violets are blue.
RESULT GPT 4o | temperature 0.4: Violets are blue.

RESULT GPT 3.5 | temperature 0.7: Violets are blue.
RESULT GPT 3.5 | temperature 0.7: Violets are blue.
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Same fix needed here.

Label this fence (text, log, etc.) or pymarkdown will fail the pipeline.

-```
+```text
 RESULT GPT 3.5 | temperature 0.4: Violets are blue.
 ...
-```
+```
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

107-107: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In docs/guides/BasicUsage.md around lines 107 to 113, the code fence with GPT
results is unlabeled which breaks the pymarkdown pipeline; add a fence language
identifier (e.g., use ```text or ```log) on the opening fence and ensure a
matching closing ``` is present so the block is properly recognized by the
markdown linter.

Comment on lines +148 to +231
```
07/Mar/2025:13:40:51 +0000 [DEBUG] [basics] [8d198c3d552b48f1b7473f1e14ba50ed] [basics] [057c9032a45a48f38dcbb7861e4b172e] Entering context...

07/Mar/2025:13:40:52 +0000 [DEBUG] [basics] [8d198c3d552b48f1b7473f1e14ba50ed] [basics] [057c9032a45a48f38dcbb7861e4b172e] Metrics summary:
⎡ @basics [057c9032a45a48f38dcbb7861e4b172e](1.38s):
|
| ⎡ @generate_text [872ecd2b612e4fcbb19f4d6aa674e22d](0.63s):
| |
| | ⎡ @model.completion [db5e56df44d2478ca1fcac959c29bdd3](0.63s):
| | | ⎡ •ArgumentsTrace:
| | | | ├ kwargs:
| | | | | [instruction]: "Prepare the simplest completion of a given text"
| | | | | [context]:
| | | | | | [0] content:
| | | | | | | parts:
| | | | | | | - text: Roses are red...
| | | | | | | meta: None
| | | | | | | meta: None
| | | | | [tool_selection]: "auto"
| | | | | [output]: "text"
| | | ⌊
| | | ⎡ •OpenAIResponsesConfig:
| | | | ├ model: "gpt-3.5-turbo"
| | | | ├ temperature: 0.4
| | | ⌊
| | | ⎡ •TokenUsage:
| | | | ├ usage:
| | | | | [gpt-3.5-turbo-0125]:
| | | | | ├ input_tokens: 24
| | | | | ├ cached_tokens: 0
| | | | | ├ output_tokens: 7
| | | ⌊
| | | ⎡ •ResultTrace:
| | | | ├ result: content:
| | | | | parts:
| | | | | - text: Violets are blue.
| | | | | meta: None
| | | | | meta: None
| | | ⌊
| | ⌊
| ⌊
|
| ⎡ @generate_text [38c8e1bd88a4444681f1bd2e61bce296](0.76s):
| |
| | ⎡ @model.completion [f63a2825efa6406f8019635aa9892b2e](0.76s):
| | | ⎡ •ArgumentsTrace:
| | | | ├ kwargs:
| | | | | [instruction]: "Prepare the simplest completion of a given text"
| | | | | [context]:
| | | | | | [0] content:
| | | | | | | parts:
| | | | | | | - text: Roses are red...
| | | | | | | meta: None
| | | | | | | meta: None
| | | | | [tool_selection]: "auto"
| | | | | [output]: "text"
| | | ⌊
| | | ⎡ •OpenAIResponsesConfig:
| | | | ├ model: "gpt-4o"
| | | | ├ temperature: 0.4
| | | ⌊
| | | ⎡ •TokenUsage:
| | | | ├ usage:
| | | | | [gpt-4o-2024-08-06]:
| | | | | ├ input_tokens: 24
| | | | | ├ cached_tokens: 0
| | | | | ├ output_tokens: 7
| | | ⌊
| | | ⎡ •OpenAISystemFingerprint:
| | | | ├ system_fingerprint: "fp_eb9dce56a8"
| | | ⌊
| | | ⎡ •ResultTrace:
| | | | ├ result: content:
| | | | | parts:
| | | | | - text: Violets are blue.
| | | | | meta: None
| | | | | meta: None
| | | ⌊
| | ⌊
| ⌊

07/Mar/2025:13:40:52 +0000 [DEBUG] [basics] [8d198c3d552b48f1b7473f1e14ba50ed] [basics] [057c9032a45a48f38dcbb7861e4b172e] ...exiting context after 1.38s
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Label the log dump fence.

MD040 requires a language identifier. Use text/log so the new lint step passes.

-```
+```text
 07/Mar/2025:13:40:51 +0000 [DEBUG] ...
 ...
-```
+```
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

148-148: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In docs/guides/BasicUsage.md around lines 148 to 231, the fenced log block is
missing a language identifier which fails MD040; update the opening fence to
include a language (e.g., ```text or ```log) and ensure the closing fence
remains ``` so the block is properly labeled for the linter. Keep the log
content unchanged and only modify the opening fence to add the identifier.

@KaQuMiQ KaQuMiQ force-pushed the feature/dependencies branch from 5ece0f5 to 6db14c0 Compare October 3, 2025 08:39
@KaQuMiQ KaQuMiQ force-pushed the feature/dependencies branch from 6db14c0 to 199f69a Compare October 3, 2025 08:42
@KaQuMiQ KaQuMiQ merged commit 78b9087 into main Oct 3, 2025
4 of 5 checks passed
@KaQuMiQ KaQuMiQ deleted the feature/dependencies branch October 3, 2025 08:49
@coderabbitai coderabbitai bot mentioned this pull request Oct 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant