Skip to content

chore(main): release 0.1.0#803

Open
mhamann wants to merge 1 commit intomainfrom
release-please--branches--main
Open

chore(main): release 0.1.0#803
mhamann wants to merge 1 commit intomainfrom
release-please--branches--main

Conversation

@mhamann
Copy link
Copy Markdown
Contributor

@mhamann mhamann commented Mar 30, 2026

🤖 I have created a release beep boop

0.1.0 (2026-04-03)

Features

  • edge: model preloading and cache pinning (#804) (599f3c1)
  • runtime: add standalone edge runtime for Pi/Jetson deployment (#799) (9920067)

Bug Fixes

  • ci: remove duplicate sha256 glob that caused pyapp release uploads to fail (e436315)

This PR was generated with Release Please. See documentation.

@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Release version 0.0.29 with CI bug fix

📦 Other

Grey Divider

Walkthroughs

Description
• Bumps root package version from 0.0.28 to 0.0.29
• Updates release manifest with new version number
• Adds changelog entry documenting CI bug fix
Diagram
flowchart LR
  A["Version 0.0.28"] -- "bump version" --> B["Version 0.0.29"]
  B -- "update manifest" --> C[".release-please-manifest.json"]
  B -- "document changes" --> D["CHANGELOG.md"]
Loading

Grey Divider

File Changes

1. .release-please-manifest.json ⚙️ Configuration changes +1/-1

Update root package version to 0.0.29

• Updates root package version from 0.0.28 to 0.0.29
• Maintains version numbers for all sub-packages at 0.0.1

.release-please-manifest.json


2. CHANGELOG.md 📝 Documentation +7/-0

Add changelog entry for version 0.0.29

• Adds new section for version 0.0.29 release
• Documents bug fix for CI duplicate sha256 glob issue
• References commit e436315 that resolves pyapp release uploads failure

CHANGELOG.md


Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects bot commented Mar 30, 2026

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Manifest missing final newline 📘 Rule violation ⚙ Maintainability
Description
The updated .release-please-manifest.json is committed without a trailing newline, conflicting
with the repo’s .editorconfig setting insert_final_newline = true. This can cause formatting
churn and CI/editor inconsistencies across environments.
Code

.release-please-manifest.json[8]

}
Evidence
The repository .editorconfig requires a final newline for all files (`insert_final_newline =
true). The PR diff for .release-please-manifest.json indicates \ No newline at end of file`, and
the referenced last line shows the file ends at the closing }.

AGENTS.md
.editorconfig[4-10]
.release-please-manifest.json[7-8]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The file `.release-please-manifest.json` is missing a final newline, violating `.editorconfig` (`insert_final_newline = true`).

## Issue Context
This is flagged in the PR diff as `No newline at end of file`.

## Fix Focus Areas
- .release-please-manifest.json[7-8]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

All E2E Tests Passed!

Test Results by Platform

OS Mode Status
ubuntu-latest source ✅ Passed
ubuntu-latest binary ✅ Passed
macos-latest source ✅ Passed
macos-latest binary ✅ Passed
windows-latest source ❔ No result
windows-latest binary ✅ Passed

Summary


This comment was automatically generated by the E2E Tests workflow.

@mhamann
Copy link
Copy Markdown
Contributor Author

mhamann commented Mar 30, 2026

Changelog docs updated for v0.0.29

The release notes have been added to docs/website/docs/changelog/index.md

Preview the changelog in this PR before merging.

@mhamann
Copy link
Copy Markdown
Contributor Author

mhamann commented Mar 30, 2026

ℹ️ Changelog for v0.0.29 already exists in docs. No changes needed.

"models": "0.0.1",
".": "0.0.28"
".": "0.0.29"
} No newline at end of file
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Action required

1. Manifest missing final newline 📘 Rule violation ⚙ Maintainability

The updated .release-please-manifest.json is committed without a trailing newline, conflicting
with the repo’s .editorconfig setting insert_final_newline = true. This can cause formatting
churn and CI/editor inconsistencies across environments.
Agent Prompt
## Issue description
The file `.release-please-manifest.json` is missing a final newline, violating `.editorconfig` (`insert_final_newline = true`).

## Issue Context
This is flagged in the PR diff as `No newline at end of file`.

## Fix Focus Areas
- .release-please-manifest.json[7-8]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 2 files

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

2 issues found across 1 file (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="docs/website/docs/changelog/index.md">

<violation number="1" location="docs/website/docs/changelog/index.md:11">
P2: Remove accidental runtime/error and assistant-meta text from the v0.0.29 changelog entry; only release-note content should be published.</violation>

<violation number="2" location="docs/website/docs/changelog/index.md:13">
P2: The upgrade notice references v0.0.28 inside the v0.0.29 release block; update it to v0.0.29 to avoid misleading users.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

<summary><strong>v0.0.29</strong> — 2026-03-30</summary>
universal-runtime process exited with error: exit status 139
I notice my previous response wasn't very helpful. Let me try to provide a better answer. Could you provide more specific details about what you're looking for? For example, if you're asking about a particular feature or need help with something specific, please let me know and I'll do my best to assist you properly.
🚀 A new LlamaFarm CLI release (v0.0.28) is available. Run 'lf version upgrade' for details.
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 30, 2026

Choose a reason for hiding this comment

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

P2: The upgrade notice references v0.0.28 inside the v0.0.29 release block; update it to v0.0.29 to avoid misleading users.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/website/docs/changelog/index.md, line 13:

<comment>The upgrade notice references v0.0.28 inside the v0.0.29 release block; update it to v0.0.29 to avoid misleading users.</comment>

<file context>
@@ -7,6 +7,16 @@ Stay up to date with the latest features, improvements, and fixes in LlamaFarm.
+<summary><strong>v0.0.29</strong> — 2026-03-30</summary>
+universal-runtime process exited with error: exit status 139
+I notice my previous response wasn't very helpful. Let me try to provide a better answer. Could you provide more specific details about what you're looking for? For example, if you're asking about a particular feature or need help with something specific, please let me know and I'll do my best to assist you properly.
+🚀 A new LlamaFarm CLI release (v0.0.28) is available. Run 'lf version upgrade' for details.
+
+**[Full Changelog →](https://github.com/llama-farm/llamafarm/releases/tag/v0.0.29)**
</file context>
Fix with Cubic


<details open>
<summary><strong>v0.0.29</strong> — 2026-03-30</summary>
universal-runtime process exited with error: exit status 139
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 30, 2026

Choose a reason for hiding this comment

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

P2: Remove accidental runtime/error and assistant-meta text from the v0.0.29 changelog entry; only release-note content should be published.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/website/docs/changelog/index.md, line 11:

<comment>Remove accidental runtime/error and assistant-meta text from the v0.0.29 changelog entry; only release-note content should be published.</comment>

<file context>
@@ -7,6 +7,16 @@ Stay up to date with the latest features, improvements, and fixes in LlamaFarm.
 
 <details open>
+<summary><strong>v0.0.29</strong> — 2026-03-30</summary>
+universal-runtime process exited with error: exit status 139
+I notice my previous response wasn't very helpful. Let me try to provide a better answer. Could you provide more specific details about what you're looking for? For example, if you're asking about a particular feature or need help with something specific, please let me know and I'll do my best to assist you properly.
+🚀 A new LlamaFarm CLI release (v0.0.28) is available. Run 'lf version upgrade' for details.
</file context>
Fix with Cubic

@mhamann mhamann changed the title chore(main): release 0.0.29 chore(main): release 0.1.0 Mar 30, 2026
@mhamann mhamann force-pushed the release-please--branches--main branch from f784eae to c7be171 Compare March 30, 2026 20:45
@mhamann
Copy link
Copy Markdown
Contributor Author

mhamann commented Mar 30, 2026

Changelog docs updated for v0.1.0

The release notes have been added to docs/website/docs/changelog/index.md

Preview the changelog in this PR before merging.

@mhamann
Copy link
Copy Markdown
Contributor Author

mhamann commented Mar 30, 2026

ℹ️ Changelog for v0.1.0 already exists in docs. No changes needed.

@mhamann mhamann force-pushed the release-please--branches--main branch from 583b048 to 74d5b2a Compare April 3, 2026 19:42
@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: E2E Tests (windows-latest, source)

Failed stage: Upload test result artifact [❌]

Failed test name: ""

Failure summary:

The job appears to have failed during the end-to-end CLI workflow, at the step that runs ./lf.exe
--cwd "$TEST_DIR" --debug datasets list (around log line 3134). After this point the workflow
switches to dumping “Service Logs (windows-latest)”, which is typically only executed on failure,
and there is no succeeding output indicating the datasets list command completed successfully.

Contributing signals in the logs that could explain the datasets list/service instability on
Windows:
- The server health endpoint repeatedly refused connections while services were starting
(GetServerHealth ... connectex: No connection could be made because the target machine actively
refused it. at lines ~1068–1105), indicating flaky/slow initialization.
- The universal runtime logs
show repeated Python logging failures due to Windows console encoding (UnicodeEncodeError: 'charmap'
codec can't encode character ... in Lib\logging_init_.py:1163, encodings\cp1252.py:19 around
lines ~1633–1641 and ~1733–1741). While shown as “Logging error”, this can break output/diagnostics
and is a strong indicator of Windows-specific runtime/logging issues during model load.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

132:  git switch -c <new-branch-name>
133:  Or undo this operation with:
134:  git switch -
135:  Turn off this advice by setting config variable advice.detachedHead to false
136:  HEAD is now at 7e6c943 Merge 74d5b2a1acb6328e7fc7942d3a6c8971f256638c into 599f3c10cebe51163d72217fc94c07eb111a5a47
137:  ##[endgroup]
138:  [command]"C:\Program Files\Git\bin\git.exe" log -1 --format=%H
139:  7e6c9436b28aacf1515d695c7c2ffd335766ed0b
140:  ##[group]Run dawidd6/action-download-artifact@v6
141:  with:
142:  github_token: ***
143:  workflow: cli.yml
144:  run_id: 23959730737
145:  name: llamafarm-windows-amd64.exe
146:  path: cli/
147:  if_no_artifact_found: fail
148:  workflow_search: false
...

228:  LF_VERSION_REF: refs/pull/803/merge
229:  UV_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu
230:  UV_INDEX_STRATEGY: unsafe-first-match
231:  LLAMAFARM_GGUF_FORCE_CPU: 1
232:  GGML_METAL_ENABLE: 0
233:  ##[endgroup]
234:  ✓ PR metadata from event: PR #803
235:  ##[group]Run cd cli
236:  �[36;1mcd cli�[0m
237:  �[36;1m# The artifact contains the binary with the full artifact name�[0m
238:  �[36;1m# Rename it to the short name we want to use�[0m
239:  �[36;1mif [ -f "llamafarm-windows-amd64.exe" ]; then�[0m
240:  �[36;1m  mv "llamafarm-windows-amd64.exe" "lf.exe"�[0m
241:  �[36;1m  echo "✓ Renamed llamafarm-windows-amd64.exe to lf.exe"�[0m
242:  �[36;1melse�[0m
243:  �[36;1m  echo "Error: Downloaded artifact not found at cli/llamafarm-windows-amd64.exe"�[0m
244:  �[36;1m  ls -la�[0m
...

273:  �[36;1mmkdir -p "$TEST_DIR"�[0m
274:  �[36;1mecho "TEST_DIR=$TEST_DIR" >> $GITHUB_ENV�[0m
275:  �[36;1mecho "✓ Test directory created at $TEST_DIR"�[0m
276:  shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
277:  env:
278:  NX_NO_CLOUD: true
279:  LF_VERSION_REF: refs/pull/803/merge
280:  UV_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu
281:  UV_INDEX_STRATEGY: unsafe-first-match
282:  LLAMAFARM_GGUF_FORCE_CPU: 1
283:  GGML_METAL_ENABLE: 0
284:  ##[endgroup]
285:  ✓ Test directory created at D:\a\_temp/e2e-test
286:  ##[group]Run if ! ./lf.exe init --cwd "$TEST_DIR" --debug; then
287:  �[36;1mif ! ./lf.exe init --cwd "$TEST_DIR" --debug; then�[0m
288:  �[36;1m  echo "❌ Project initialization failed, checking server health..."�[0m
289:  �[36;1m  curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
...

1054:  Dependencies synced successfully
1055:  Running datamodel generation in: C:\Users\runneradmin\.llamafarm\src\config
1056:  Datamodel generation output: Downloading mypy (9.6MiB)
1057:  Downloading black (1.3MiB)
1058:  Downloading black
1059:  Downloading mypy
1060:  Installed 27 packages in 2.50s
1061:  Compiling schema...
1062:  Schema compiled to schema.deref.yaml
1063:  Schema also written in JSON format to C:\Users\runneradmin\.llamafarm\src\cli\cmd\config\schema.json
1064:  Generating types...
1065:  Done!
1066:  Config datamodel generated successfully
1067:  Native environment ready
1068:  GetServerHealth: checking http://localhost:14345/health
1069:  GetServerHealth: request failed: Get "http://localhost:14345/health": dial tcp [::1]:14345: connectex: No connection could be made because the target machine actively refused it.
1070:  isServiceHealthy(server): GetServerHealth failed: Get "http://localhost:14345/health": dial tcp [::1]:14345: connectex: No connection could be made because the target machine actively refused it.
1071:  Starting service server
...

1081:  [server] -- ******* ---- Windows-2025Server-10.0.26100-SP0 2026-04-03 20:03:24
1082:  [server] - *** --- * --- 
1083:  [server] - ** ---------- [config]
1084:  [server] - ** ---------- .> app:         LlamaFarm:0x1f0fa297080
1085:  [server] - ** ---------- .> transport:   filesystem://localhost//
1086:  [server] - ** ---------- .> results:     file:///C:/Users/runneradmin/.llamafarm/broker/results
1087:  [server] - *** --- * --- .> concurrency: 4 (solo)
1088:  [server] -- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
1089:  [server] --- ***** ----- 
1090:  [server]  -------------- [queues]
1091:  [server]                 .> server           exchange=server(direct) key=server
1092:  [server]                 
1093:  [server] 
1094:  Warning: timeout waiting for PID file for server (process may still be initializing)
1095:  GetServerHealth: checking http://localhost:14345/health
1096:  GetServerHealth: request failed: Get "http://localhost:14345/health": dial tcp [::1]:14345: connectex: No connection could be made because the target machine actively refused it.
1097:  isServiceHealthy(server): GetServerHealth failed: Get "http://localhost:14345/health": dial tcp [::1]:14345: connectex: No connection could be made because the target machine actively refused it.
1098:  GetServerHealth: checking http://localhost:14345/health
1099:  GetServerHealth: request failed: Get "http://localhost:14345/health": dial tcp [::1]:14345: connectex: No connection could be made because the target machine actively refused it.
1100:  isServiceHealthy(server): GetServerHealth failed: Get "http://localhost:14345/health": dial tcp [::1]:14345: connectex: No connection could be made because the target machine actively refused it.
1101:  [server] designer/dist directory not found in any known location.
1102:  [server] [warning  ] designer/dist directory not found in any known location. [core.designer]
1103:  GetServerHealth: checking http://localhost:14345/health
1104:  GetServerHealth: request failed: Get "http://localhost:14345/health": dial tcp [::1]:14345: connectex: No connection could be made because the target machine actively refused it.
1105:  isServiceHealthy(server): GetServerHealth failed: Get "http://localhost:14345/health": dial tcp [::1]:14345: connectex: No connection could be made because the target machine actively refused it.
1106:  [server] [info     ] No auth config provided, skipping auth setup [fastapi_mcp.server]
...

1122:  [server]  [py.warnings] request_id=75406f33850447eea655f23c7352552f
1123:  [server] INFO:     127.0.0.1:56208 - "POST /v1/projects/default HTTP/1.1" 200 OK
1124:  -> 200 OK
1125:  response header: Content-Length: 1897
1126:  response header: Content-Type: application/json
1127:  response header: Date: Fri, 03 Apr 2026 20:03:33 GMT
1128:  response header: Server: uvicorn
1129:  response header: X-Request-Id: 75406f33850447eea655f23c7352552f
1130:  [server] [info     ] 127.0.0.1:56208 - "POST /v1/projects/default HTTP/1.1" 200 [server.access] duration=42194500 http={'url': '/v1/projects/default', 'status_code': 200, 'method': 'POST', 'request_id': '75406f33850447eea655f23c7352552f', 'version': '1.1'} network={'client': {'ip': '127.0.0.1', 'port': 56208}} request_id=75406f33850447eea655f23c7352552f
1131:  -> response body: {"project":{"namespace":"default","name":"e2e-test","config":{"version":"v1","name":"e2e-test","namespace":"default","prompts":[{"name":"default","messages":[{"role":"system","content":"You are a helpful AI assistant.\n\nCRITICAL RULES:\n1. NEVER repeat the user's question as your answer\n2. ALWAYS provide a substantive, helpful response\n3. If you don't know something, say so clearly rather than repeating the question\n\nWhen RAG context is provided, use it to enhance your answers.\nWhen no context is available, use your general knowledge.\n"}]}],"rag":{"default_database":"main_database","databases":[{"name":"main_database","type":"ChromaStore","config":{"collection_name":"documents"},"embedding_strategies":[{"name":"default_embeddings","type":"UniversalEmbedder","config":{"model":"sentence-transformers/all-MiniLM-L6-v2","dimension":384,"batch_size":16},"priority":0}],"retrieval_strategies":[{"name":"basic_search","type":"BasicSimilarityStrategy","config":{"top_k":10},"default":true}],"default_embedding_stra... (truncated)
1132:  Forcing config sync: C:\Users\runneradmin\.llamafarm\projects\default\e2e-test\llamafarm.yaml -> D:\a\_temp\e2e-test\llamafarm.yaml
1133:  Created project default/e2e-test in D:\a\_temp\e2e-test
1134:  ✓ Project initialized
1135:  ##[group]Run if [ ! -f "$TEST_DIR/llamafarm.yaml" ]; then
1136:  �[36;1mif [ ! -f "$TEST_DIR/llamafarm.yaml" ]; then�[0m
1137:  �[36;1m  echo "❌ Error: llamafarm.yaml not created"�[0m
1138:  �[36;1m  exit 1�[0m
...

1270:  �[36;1m# Update embedding model and dimension�[0m
1271:  �[36;1myq -i '.rag.databases[0].embedding_strategies[0].config.model = "sentence-transformers/all-MiniLM-L6-v2"' "$TEST_DIR/llamafarm.yaml"�[0m
1272:  �[36;1myq -i '.rag.databases[0].embedding_strategies[0].config.dimension = 384' "$TEST_DIR/llamafarm.yaml"�[0m
1273:  �[36;1m�[0m
1274:  �[36;1mecho "✓ Model configuration updated"�[0m
1275:  �[36;1mecho ""�[0m
1276:  �[36;1mecho "=== Updated runtime config ==="�[0m
1277:  �[36;1myq '.runtime.models[0]' "$TEST_DIR/llamafarm.yaml"�[0m
1278:  �[36;1mecho ""�[0m
1279:  �[36;1mecho "=== Updated embedding config ==="�[0m
1280:  �[36;1myq '.rag.databases[0].embedding_strategies[0].config | pick(["model", "dimension"])' "$TEST_DIR/llamafarm.yaml"�[0m
1281:  �[36;1m�[0m
1282:  �[36;1m# Verify the changes took effect�[0m
1283:  �[36;1mRUNTIME_MODEL=$(yq '.runtime.models[0].model' "$TEST_DIR/llamafarm.yaml")�[0m
1284:  �[36;1mif [ "$RUNTIME_MODEL" != "unsloth/Qwen3-0.6B-GGUF:IQ1_S" ]; then�[0m
1285:  �[36;1m  echo "❌ Model configuration update failed!"�[0m
1286:  �[36;1m  echo "Expected: unsloth/Qwen3-0.6B-GGUF:IQ1_S"�[0m
...

1433:  �[36;1mecho ""�[0m
1434:  �[36;1m�[0m
1435:  �[36;1m# Use a simple query to trigger model loading with retry logic.�[0m
1436:  �[36;1m# The runtime may crash (SIGSEGV) on first load due to llama.cpp�[0m
1437:  �[36;1m# native code issues on CI runners; a retry gives it a second chance�[0m
1438:  �[36;1m# after the CLI auto-restarts the process.�[0m
1439:  �[36;1mMAX_ATTEMPTS=2�[0m
1440:  �[36;1mfor attempt in $(seq 1 $MAX_ATTEMPTS); do�[0m
1441:  �[36;1m  echo "Pre-warm attempt $attempt/$MAX_ATTEMPTS..."�[0m
1442:  �[36;1m  START_TIME=$(date +%s)�[0m
1443:  �[36;1m  if ./lf.exe --cwd "$TEST_DIR" --debug chat --no-rag "hi" 2>&1 | tee /tmp/prewarm.log; then�[0m
1444:  �[36;1m    END_TIME=$(date +%s)�[0m
1445:  �[36;1m    DURATION=$((END_TIME - START_TIME))�[0m
1446:  �[36;1m    echo ""�[0m
1447:  �[36;1m�[0m
1448:  �[36;1m    # Check for actual system errors (not model quality issues)�[0m
1449:  �[36;1m    RESPONSE=$(cat /tmp/prewarm.log)�[0m
1450:  �[36;1m    if echo "$RESPONSE" | grep -qi "error loading model\|failed to load model\|no backends are loaded"; then�[0m
1451:  �[36;1m      echo "⚠ Model loading error detected in response (attempt $attempt)"�[0m
1452:  �[36;1m      if [ "$attempt" -lt "$MAX_ATTEMPTS" ]; then�[0m
1453:  �[36;1m        echo "Waiting 10s before retry..."�[0m
1454:  �[36;1m        sleep 10�[0m
1455:  �[36;1m        continue�[0m
1456:  �[36;1m      fi�[0m
1457:  �[36;1m      echo "❌ Model pre-warming failed after $MAX_ATTEMPTS attempts!"�[0m
1458:  �[36;1m      echo ""�[0m
1459:  �[36;1m      echo "Full response:"�[0m
1460:  �[36;1m      echo "$RESPONSE"�[0m
1461:  �[36;1m      exit 1�[0m
1462:  �[36;1m    fi�[0m
1463:  �[36;1m�[0m
1464:  �[36;1m    echo "✓ Models successfully pre-warmed in ${DURATION}s"�[0m
1465:  �[36;1m    break�[0m
1466:  �[36;1m  else�[0m
1467:  �[36;1m    echo ""�[0m
1468:  �[36;1m    echo "⚠ Pre-warm attempt $attempt failed (exit code $?)"�[0m
1469:  �[36;1m    if [ "$attempt" -lt "$MAX_ATTEMPTS" ]; then�[0m
1470:  �[36;1m      echo "Checking server health before retry..."�[0m
1471:  �[36;1m      curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
1472:  �[36;1m      echo "Waiting 10s for services to recover..."�[0m
1473:  �[36;1m      sleep 10�[0m
1474:  �[36;1m      continue�[0m
1475:  �[36;1m    fi�[0m
1476:  �[36;1m    echo "❌ Model pre-warming failed after $MAX_ATTEMPTS attempts!"�[0m
1477:  �[36;1m    echo "Checking server health..."�[0m
...

1618:  [universal-runtime] [info     ] llama_model_loader: - kv   7:                          qwen3.block_count u32              = 28 [llamafarm_llama.llama_cpp]
1619:  [universal-runtime] [info     ] llama_model_loader: - kv   8:                       qwen3.context_length u32              = 40960 [llamafarm_llama.llama_cpp]
1620:  [universal-runtime] [info     ] llama_model_loader: - kv   9:                     qwen3.embedding_length u32              = 1024 [llamafarm_llama.llama_cpp]
1621:  [universal-runtime] [info     ] llama_model_loader: - kv  10:                  qwen3.feed_forward_length u32              = 3072 [llamafarm_llama.llama_cpp]
1622:  [universal-runtime] [info     ] llama_model_loader: - kv  11:                 qwen3.attention.head_count u32              = 16 [llamafarm_llama.llama_cpp]
1623:  [universal-runtime] [info     ] llama_model_loader: - kv  12:              qwen3.attention.head_count_kv u32              = 8 [llamafarm_llama.llama_cpp]
1624:  [universal-runtime] [info     ] llama_model_loader: - kv  13:                       qwen3.rope.freq_base f32              = 1000000.000000 [llamafarm_llama.llama_cpp]
1625:  [universal-runtime] [info     ] llama_model_loader: - kv  14:     qwen3.attention.layer_norm_rms_epsilon f32              = 0.000001 [llamafarm_llama.llama_cpp]
1626:  [universal-runtime] [info     ] llama_model_loader: - kv  15:                 qwen3.attention.key_length u32              = 128 [llamafarm_llama.llama_cpp]
1627:  [universal-runtime] [info     ] llama_model_loader: - kv  16:               qwen3.attention.value_length u32              = 128 [llamafarm_llama.llama_cpp]
1628:  [universal-runtime] [info     ] llama_model_loader: - kv  17:                       tokenizer.ggml.model str              = gpt2 [llamafarm_llama.llama_cpp]
1629:  [universal-runtime] [info     ] llama_model_loader: - kv  18:                         tokenizer.ggml.pre str              = qwen2 [llamafarm_llama.llama_cpp]
1630:  [universal-runtime] [info     ] llama_model_loader: - kv  19:                      tokenizer.ggml.tokens arr[str,151936]  = ["!", "\"", "#", "$", "%", "&", "'", ... [llamafarm_llama.llama_cpp]
1631:  [universal-runtime] [info     ] llama_model_loader: - kv  20:                  tokenizer.ggml.token_type arr[i32,151936]  = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... [llamafarm_llama.llama_cpp]
1632:  [universal-runtime] [info     ] llama_model_loader: - kv  21:                      tokenizer.ggml.merges arr[str,151387]  = ["\u0120 \u0120", "\u0120\u0120 \u0120\u0120", "i n", "\u0120 t",... [llamafarm_llama.llama_cpp]
1633:  [universal-runtime] --- Logging error ---
1634:  [universal-runtime] Traceback (most recent call last):
1635:  [universal-runtime]   File "C:\Users\runneradmin\.llamafarm\python\cpython-3.12.12-windows-x86_64-none\Lib\logging\__init__.py", line 1163, in emit
1636:  [universal-runtime]     stream.write(msg + self.terminator)
1637:  [universal-runtime]   File "C:\Users\runneradmin\.llamafarm\python\cpython-3.12.12-windows-x86_64-none\Lib\encodings\cp1252.py", line 19, in encode
1638:  [universal-runtime]     return codecs.charmap_encode(input,self.errors,encoding_table)[0]
1639:  [universal-runtime]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1640:  [universal-runtime] UnicodeEncodeError: 'charmap' codec can't encode character '\u0120' in position 159: character maps to <undefined>
1641:  [universal-runtime] Call stack:
...

1718:  [universal-runtime] [info     ] print_info: freq_scale_train = 1 [llamafarm_llama.llama_cpp]
1719:  [universal-runtime] [info     ] print_info: n_ctx_orig_yarn  = 40960 [llamafarm_llama.llama_cpp]
1720:  [universal-runtime] [info     ] print_info: rope_yarn_log_mul= 0.0000 [llamafarm_llama.llama_cpp]
1721:  [universal-runtime] [info     ] print_info: rope_finetuned   = unknown [llamafarm_llama.llama_cpp]
1722:  [universal-runtime] [info     ] print_info: model type       = 0.6B [llamafarm_llama.llama_cpp]
1723:  [universal-runtime] [info     ] print_info: model params     = 596.05 M [llamafarm_llama.llama_cpp]
1724:  [universal-runtime] [info     ] print_info: general.name     = Qwen3-0.6B [llamafarm_llama.llama_cpp]
1725:  [universal-runtime] [info     ] print_info: vocab type       = BPE [llamafarm_llama.llama_cpp]
1726:  [universal-runtime] [info     ] print_info: n_vocab          = 151936 [llamafarm_llama.llama_cpp]
1727:  [universal-runtime] [info     ] print_info: n_merges         = 151387 [llamafarm_llama.llama_cpp]
1728:  [universal-runtime] [info     ] print_info: BOS token        = 11 ',' [llamafarm_llama.llama_cpp]
1729:  [universal-runtime] [info     ] print_info: EOS token        = 151645 '<|im_end|>' [llamafarm_llama.llama_cpp]
1730:  [universal-runtime] [info     ] print_info: EOT token        = 151645 '<|im_end|>' [llamafarm_llama.llama_cpp]
1731:  [universal-runtime] [info     ] print_info: PAD token        = 151654 '<|vision_pad|>' [llamafarm_llama.llama_cpp]
1732:  [universal-runtime] [info     ] print_info: LF token         = 198 '\u010a' [llamafarm_llama.llama_cpp]
1733:  [universal-runtime] --- Logging error ---
1734:  [universal-runtime] Traceback (most recent call last):
1735:  [universal-runtime]   File "C:\Users\runneradmin\.llamafarm\python\cpython-3.12.12-windows-x86_64-none\Lib\logging\__init__.py", line 1163, in emit
1736:  [universal-runtime]     stream.write(msg + self.terminator)
1737:  [universal-runtime]   File "C:\Users\runneradmin\.llamafarm\python\cpython-3.12.12-windows-x86_64-none\Lib\encodings\cp1252.py", line 19, in encode
1738:  [universal-runtime]     return codecs.charmap_encode(input,self.errors,encoding_table)[0]
1739:  [universal-runtime]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1740:  [universal-runtime] UnicodeEncodeError: 'charmap' codec can't encode character '\u010a' in position 101: character maps to <undefined>
1741:  [universal-runtime] Call stack:
...

1843:  Stream line: data: {"id": "chatcmpl-14412a5e5249303b5e5a7cae3d1f8e8e", "choices": [{"delta": {}, "finish_reason": "stop", "index": 0}], "created": 1775246705, "model": "unsloth/Qwen3-0.6B-GGUF:IQ1_S", "object": "chat.completion.chunk"}
1844:  Stream line: 
1845:  Stream line: data: [DONE]
1846:  <think>
1847:  </think>
1848:  Hello! How can I assist you today?
1849:  ✓ Models successfully pre-warmed in 51s
1850:  ##[group]Run echo "Pre-warming embedding model (sentence-transformers/all-MiniLM-L6-v2)..."
1851:  �[36;1mecho "Pre-warming embedding model (sentence-transformers/all-MiniLM-L6-v2)..."�[0m
1852:  �[36;1mecho "Sending a dummy embedding request to trigger model loading..."�[0m
1853:  �[36;1m�[0m
1854:  �[36;1m# The universal runtime may have crashed during chat pre-warming (SIGSEGV�[0m
1855:  �[36;1m# in llama.cpp native code). The CLI restarts unhealthy services when you�[0m
1856:  �[36;1m# run a command, so we use `lf chat` to trigger a restart before retrying.�[0m
1857:  �[36;1m# HTTP 500 is expected while the embedding model is downloading/loading.�[0m
1858:  �[36;1m# On Windows binary, a PyTorch assertion error in torch._dynamo causes�[0m
1859:  �[36;1m# repeated 500s until the import eventually succeeds.�[0m
...

1882:  �[36;1m    CONSECUTIVE_DEAD=0�[0m
1883:  �[36;1m  fi�[0m
1884:  �[36;1m�[0m
1885:  �[36;1m  # If runtime is dead for 5+ consecutive checks, restart via CLI�[0m
1886:  �[36;1m  if [ "$CONSECUTIVE_DEAD" -ge 5 ] && [ "$RESTART_COUNT" -lt "$MAX_RESTARTS" ]; then�[0m
1887:  �[36;1m    RESTART_COUNT=$((RESTART_COUNT + 1))�[0m
1888:  �[36;1m    echo "  Runtime dead for $CONSECUTIVE_DEAD checks, restarting via CLI (restart $RESTART_COUNT/$MAX_RESTARTS)..."�[0m
1889:  �[36;1m    ./lf.exe --cwd "$TEST_DIR" --debug chat --no-rag "ping" 2>&1 | tail -5 || true�[0m
1890:  �[36;1m    CONSECUTIVE_DEAD=0�[0m
1891:  �[36;1m    echo "  Waiting for runtime to initialize..."�[0m
1892:  �[36;1m    sleep 20�[0m
1893:  �[36;1m    continue�[0m
1894:  �[36;1m  fi�[0m
1895:  �[36;1m�[0m
1896:  �[36;1m  if [ "$i" -eq "$MAX_RETRIES" ]; then�[0m
1897:  �[36;1m    echo "❌ Embedding model failed to respond after $MAX_RETRIES attempts (last HTTP $HTTP_CODE)"�[0m
1898:  �[36;1m    echo "Restarts attempted: $RESTART_COUNT"�[0m
...

2117:  -rwxr-xr-x 1 runneradmin 197121 3144776 Apr  3 20:03 /c/Users/runneradmin/AppData/Local/llamafarm-llama/cache/b7694/libcurl-x64.dll
2118:  -rwxr-xr-x 1 runneradmin 197121  634936 Apr  3 20:03 /c/Users/runneradmin/AppData/Local/llamafarm-llama/cache/b7694/libomp140.x86_64.dll
2119:  -rwxr-xr-x 1 runneradmin 197121 2578944 Apr  3 20:03 /c/Users/runneradmin/AppData/Local/llamafarm-llama/cache/b7694/llama.dll
2120:  -rwxr-xr-x 1 runneradmin 197121  854016 Apr  3 20:03 /c/Users/runneradmin/AppData/Local/llamafarm-llama/cache/b7694/mtmd.dll
2121:  ✓ ggml.dll found
2122:  ✓ ggml-base.dll found
2123:  ✓ llama.cpp binary verified successfully
2124:  Version: b7694
2125:  Path: /c/Users/runneradmin/AppData/Local/llamafarm-llama/cache/b7694/llama.dll
2126:  Size: 2578944 bytes
2127:  ##[group]Run if ! ./lf.exe --cwd "$TEST_DIR" --debug datasets create \
2128:  �[36;1mif ! ./lf.exe --cwd "$TEST_DIR" --debug datasets create \�[0m
2129:  �[36;1m  -s universal_rag \�[0m
2130:  �[36;1m  -b main_database \�[0m
2131:  �[36;1m  test_dataset; then�[0m
2132:  �[36;1m  echo "❌ Dataset creation failed, checking server health..."�[0m
2133:  �[36;1m  curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
...

2188:  ✓ Dataset created
2189:  ##[group]Run sleep 2.5
2190:  �[36;1msleep 2.5�[0m
2191:  shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
2192:  env:
2193:  NX_NO_CLOUD: true
2194:  LF_VERSION_REF: refs/pull/803/merge
2195:  UV_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu
2196:  UV_INDEX_STRATEGY: unsafe-first-match
2197:  LLAMAFARM_GGUF_FORCE_CPU: 1
2198:  GGML_METAL_ENABLE: 0
2199:  TEST_DIR: D:\a\_temp/e2e-test
2200:  ##[endgroup]
2201:  ##[group]Run if ! ./lf.exe --cwd "$TEST_DIR" --debug datasets upload test_dataset "../examples/quick_rag/files"; then
2202:  �[36;1mif ! ./lf.exe --cwd "$TEST_DIR" --debug datasets upload test_dataset "../examples/quick_rag/files"; then�[0m
2203:  �[36;1m  echo "❌ Upload failed for ../examples/quick_rag/files, checking server health..."�[0m
2204:  �[36;1m  echo "Current directory: $(pwd)"�[0m
...

2307:  ##[group]Run sleep 2.5
2308:  �[36;1msleep 2.5�[0m
2309:  shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
2310:  env:
2311:  NX_NO_CLOUD: true
2312:  LF_VERSION_REF: refs/pull/803/merge
2313:  UV_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu
2314:  UV_INDEX_STRATEGY: unsafe-first-match
2315:  LLAMAFARM_GGUF_FORCE_CPU: 1
2316:  GGML_METAL_ENABLE: 0
2317:  TEST_DIR: D:\a\_temp/e2e-test
2318:  ##[endgroup]
2319:  ##[group]Run sleep 2
2320:  �[36;1msleep 2�[0m
2321:  �[36;1mif ! ./lf.exe --cwd "$TEST_DIR" --debug datasets process test_dataset; then�[0m
2322:  �[36;1m  echo "❌ Dataset processing failed, checking server health..."�[0m
2323:  �[36;1m  curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
...

2613:  [rag]    \u2705 Status: SUCCESS - 1/1 chunks stored
2614:  [rag] Ingestion complete: 1 stored, 0 skipped from 15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc [rag.core.ingest_handler] name=ChromaStore
2615:  [rag] [info     ] [DUPLICATE] All 1 documents already in database - skipped [rag.core.ingest_handler] name=ChromaStore
2616:  [rag] [info     ] 
2617:  [rag] \U0001f4be Database Storage (ChromaStore): [rag.core.ingest_handler] name=ChromaStore
2618:  [rag] [info     ]    \u23ed\ufe0f  Skipped: 1 duplicate chunks [rag.core.ingest_handler] name=ChromaStore
2619:  [rag] [info     ] 
2620:  [rag] \U0001f4c8 Processing Summary:
2621:  [rag]   \u23f1\ufe0f  Total time: 1.01 seconds
2622:  [rag]    \u26a0\ufe0f  Status: DUPLICATE - All 1 chunks already in database
2623:  [rag] Ingestion complete: 0 stored, 1 skipped from 15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc [rag.core.ingest_handler] name=ChromaStore
2624:  [rag] [warning  ] 
2625:  [rag] \u26a0\ufe0f FILE ALREADY PROCESSED - All 1 chunks already exist in database [rag.core.ingest_handler] name=ChromaStore
2626:  [rag] [info     ] RAG file ingestion completed   [rag.tasks.ingest] extra={'task_id': '5c1d025e-dd4c-4497-a85d-e5e6500e79cc', 'success': True, 'status': 'success', 'stored_count': 1, 'skipped_count': 0} name=ChromaStore
2627:  [rag] [info     ] RAG file ingestion completed   [rag.tasks.ingest] extra={'task_id': '78e9f761-e343-4fea-a3a2-c636db8102e2', 'success': True, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 1} name=ChromaStore
2628:  [rag] [info     ] Task rag.ingest_file[78e9f761-e343-4fea-a3a2-c636db8102e2] succeeded in 13.172000000000025s: (True, {'filename': 'neural_scaling_laws.txt', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 1, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': 'duplicate', 'result': {'status': 'skipped', 'filename': '15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'document_count': 1, 'stored_count': 0, 'skipped_count': 1, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': 'duplicate'}, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 1}) [celery.app.trace] data={'id': '78e9f761-e343-4fea-a3a2-c636db8102e2', 'name': 'rag.ingest_file', 'return_value': "(True, {'filename': 'neural_scaling_laws.txt', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 1, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': 'duplicate', 'result': {'status': 'skipped', 'filename': '15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'document_count': 1, 'stored_count': 0, 'skipped_count': 1, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': 'duplicate'}, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 1})", 'runtime': 13.172000000000025, 'args': "('C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test', 'universal_rag', 'main_database', 'C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test\\lf_data\\datasets\\test_dataset\\raw\\15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'neural_scaling_laws.txt', 'test_dataset', {})", 'kwargs': '{}'} name=ChromaStore
2629:  [rag] [info     ] Task rag.ingest_file[5c1d025e-dd4c-4497-a85d-e5e6500e79cc] succeeded in 10.844000000000051s: (True, {'filename': 'neural_scaling_laws.txt', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 1, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': None, 'result': {'status': 'success', 'filename': '15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'document_count': 1, 'stored_count': 1, 'skipped_count': 0, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': None}, 'status': 'success', 'stored_count': 1, 'skipped_count': 0}) [celery.app.trace] data={'id': '5c1d025e-dd4c-4497-a85d-e5e6500e79cc', 'name': 'rag.ingest_file', 'return_value': "(True, {'filename': 'neural_scaling_laws.txt', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 1, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': None, 'result': {'status': 'success', 'filename': '15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'document_count': 1, 'stored_count': 1, 'skipped_count': 0, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': None}, 'status': 'success', 'stored_count': 1, 'skipped_count': 0})", 'runtime': 10.844000000000051, 'args': "('C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test', 'universal_rag', 'main_database', 'C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test\\lf_data\\datasets\\test_dataset\\raw\\15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'neural_scaling_laws.txt', 'test_dataset', {})", 'kwargs': '{}'} name=ChromaStore
2630:  [rag] [info     ] Extraction complete            [rag.components.extractors.base] documents_processed=20 name=ChromaStore
...

2647:  [rag] [info     ] 
2648:  [rag] \U0001f9e0 Embedding with UniversalEmbedder: [rag.core.ingest_handler] name=ChromaStore
2649:  [rag] [info     ]    \u2514\u2500 Dimensions: 384          [rag.core.ingest_handler] name=ChromaStore
2650:  [rag] [info     ] Added 20 documents to ChromaDB collection [rag.components.stores.chroma_store.chroma_store] name=ChromaStore
2651:  [rag] [info     ] Stored all 20 documents        [rag.core.ingest_handler] name=ChromaStore
2652:  [rag] [info     ] [STORED] All 20 documents embedded and stored [rag.core.ingest_handler] name=ChromaStore
2653:  [rag] [info     ] 
2654:  [rag] \U0001f4be Database Storage (ChromaStore): [rag.core.ingest_handler] name=ChromaStore
2655:  [rag] [info     ]    \u2705 Stored: 20 new chunks     [rag.core.ingest_handler] name=ChromaStore
2656:  [rag] [info     ] 
2657:  [rag] \U0001f4c8 Processing Summary:
2658:  [rag]   \u23f1\ufe0f  Total time: 3.22 seconds
2659:  [rag]    \u2705 Status: SUCCESS - 20/20 chunks stored
2660:  [rag] Ingestion complete: 20 stored, 0 skipped from 2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067 [rag.core.ingest_handler] name=ChromaStore
2661:  [rag] [info     ] RAG file ingestion completed   [rag.tasks.ingest] extra={'task_id': '96041bdc-db0b-4a05-b03b-77e03436627f', 'success': True, 'status': 'success', 'stored_count': 20, 'skipped_count': 0} name=ChromaStore
2662:  [rag] [info     ] Task rag.ingest_file[96041bdc-db0b-4a05-b03b-77e03436627f] succeeded in 12.921999999999798s: (True, {'filename': 'best_practices.md', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 20, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': None, 'result': {'status': 'success', 'filename': '2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'document_count': 20, 'stored_count': 20, 'skipped_count': 0, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': None}, 'status': 'success', 'stored_count': 20, 'skipped_count': 0}) [celery.app.trace] data={'id': '96041bdc-db0b-4a05-b03b-77e03436627f', 'name': 'rag.ingest_file', 'return_value': "(True, {'filename': 'best_practices.md', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 20, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': None, 'result': {'status': 'success', 'filename': '2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'document_count': 20, 'stored_count': 20, 'skipped_count': 0, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': None}, 'status': 'success', 'stored_count': 20, 'skipped_count': 0})", 'runtime': 12.921999999999798, 'args': "('C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test', 'universal_rag', 'main_database', 'C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test\\lf_data\\datasets\\test_dataset\\raw\\2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'best_practices.md', 'test_dataset', {})", 'kwargs': '{}'} name=ChromaStore
2663:  [rag] [warning  ] No valid documents with embeddings to add (all may be duplicates) [rag.components.stores.chroma_store.chroma_store] name=ChromaStore
2664:  [rag] [info     ] All 20 documents were duplicates - skipped [rag.core.ingest_handler] name=ChromaStore
2665:  [rag] [info     ] [DUPLICATE] All 20 documents already in database - skipped [rag.core.ingest_handler] name=ChromaStore
2666:  [rag] [info     ] 
2667:  [rag] \U0001f4be Database Storage (ChromaStore): [rag.core.ingest_handler] name=ChromaStore
2668:  [rag] [info     ]    \u23ed\ufe0f  Skipped: 20 duplicate chunks [rag.core.ingest_handler] name=ChromaStore
2669:  [rag] [info     ] 
2670:  [rag] \U0001f4c8 Processing Summary:
2671:  [rag]   \u23f1\ufe0f  Total time: 3.30 seconds
2672:  [rag]    \u26a0\ufe0f  Status: DUPLICATE - All 20 chunks already in database
2673:  [rag] Ingestion complete: 0 stored, 20 skipped from 2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067 [rag.core.ingest_handler] name=ChromaStore
2674:  [rag] [warning  ] 
2675:  [rag] \u26a0\ufe0f FILE ALREADY PROCESSED - All 20 chunks already exist in database [rag.core.ingest_handler] name=ChromaStore
2676:  [rag] [info     ] RAG file ingestion completed   [rag.tasks.ingest] extra={'task_id': 'fc799277-3dae-4720-99b8-a69a2aa48e64', 'success': True, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 20} name=ChromaStore
2677:  [rag] [info     ] Task rag.ingest_file[fc799277-3dae-4720-99b8-a69a2aa48e64] succeeded in 15.327999999999975s: (True, {'filename': 'best_practices.md', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 20, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': 'duplicate', 'result': {'status': 'skipped', 'filename': '2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'document_count': 20, 'stored_count': 0, 'skipped_count': 20, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': 'duplicate'}, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 20}) [celery.app.trace] data={'id': 'fc799277-3dae-4720-99b8-a69a2aa48e64', 'name': 'rag.ingest_file', 'return_value': "(True, {'filename': 'best_practices.md', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 20, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': 'duplicate', 'result': {'status': 'skipped', 'filename': '2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'document_count': 20, 'stored_count': 0, 'skipped_count': 20, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': 'duplicate'}, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 20})", 'runtime': 15.327999999999975, 'args': "('C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test', 'universal_rag', 'main_database', 'C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test\\lf_data\\datasets\\test_dataset\\raw\\2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'best_practices.md', 'test_dataset', {})", 'kwargs': '{}'} name=ChromaStore
2678:  HTTP GET http://localhost:14345/v1/projects/default/e2e-test/tasks/caa2a04d-8921-459d-b0bb-af1c154055b0
2679:  -> request body: <nil>
2680:  -> 200 OK
2681:  response header: Content-Length: 1848
2682:  response header: Content-Type: application/json
2683:  response header: Date: Fri, 03 Apr 2026 20:06:17 GMT
2684:  response header: Server: uvicorn
2685:  response header: X-Request-Id: 8887941e13dd464b8a3567b0d93ea5a4
2686:  -> response body: {"task_id":"caa2a04d-8921-459d-b0bb-af1c154055b0","state":"SUCCESS","result":{"processed_files":2,"failed_files":0,"skipped_files":0,"stored_count":21,"skipped_count":0,"details":[[true,{"filename":"neural_scaling_laws.txt","parser":"UniversalParser","extractors":["UniversalExtractor"],"chunks":1,"embedder":"UniversalEmbedder","result":{"status":"success","filename":"15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc","document_count":1,"stored_count":1,"skipped_count":0,"document_ids":["15d09d0ebaada5de_0000"],"parsers_used":["UniversalParser"],"extractors_applied":["UniversalExtractor"],"embedder":"UniversalEmbedder"},"status":"success","stored_count":1,"skipped_count":0,"file_hash":"15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc"}],[true,{"filename":"best_practices.md","parser":"UniversalParser","extractors":["UniversalExtractor"],"chunks":20,"embedder":"UniversalEmbedder","result":{"status":"success","filename":"2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac0... (truncated)
2687:  • Task state: PENDING
...

2692:  [1] neural_scaling_laws.txt [neural_scali...]
2693:  ├─ Status: success
2694:  [2] best_practices.md [best_practic...]
2695:  ├─ Status: success
2696:  ────────────────────────────────────────────────────────────────────────
2697:  ✅ Processing Complete:
2698:  📊 Total files: 2
2699:  ✅ Successfully processed: 2
2700:  ✓ Dataset processing complete
2701:  ##[group]Run echo "Running RAG query..."
2702:  �[36;1mecho "Running RAG query..."�[0m
2703:  �[36;1mif ! OUTPUT=$(./lf.exe --cwd "$TEST_DIR" --debug rag query \�[0m
2704:  �[36;1m  --database main_database \�[0m
2705:  �[36;1m  --top-k 3 \�[0m
2706:  �[36;1m  "neural scaling laws" 2>&1); then�[0m
2707:  �[36;1m  echo "❌ RAG query command failed"�[0m
2708:  �[36;1m  echo "$OUTPUT"�[0m
2709:  �[36;1m  echo "Checking server health..."�[0m
2710:  �[36;1m  curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
2711:  �[36;1m  exit 1�[0m
2712:  �[36;1mfi�[0m
2713:  �[36;1m�[0m
2714:  �[36;1mecho "$OUTPUT"�[0m
2715:  �[36;1m�[0m
2716:  �[36;1m# Verify output is not empty�[0m
2717:  �[36;1mif [ -z "$OUTPUT" ]; then�[0m
2718:  �[36;1m  echo "❌ Error: RAG query returned empty output"�[0m
2719:  �[36;1m  curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
...

2789:  ········································
2790:  3. ### 1. Batch Processing
2791:  ```python
2792:  class BatchProcessor:
2793:  """Process documents in batches for better performance."""
2794:  def __init__(self, batch_size: int = 10):
2795:  self.batch_size = batc...
2796:  ────────────────────────────────────────────────────────────────────────────────
2797:  ✓ RAG query returned results
2798:  ##[group]Run if ! OUTPUT=$(./lf.exe --cwd "$TEST_DIR" --debug rag query \
2799:  �[36;1mif ! OUTPUT=$(./lf.exe --cwd "$TEST_DIR" --debug rag query \�[0m
2800:  �[36;1m  --database main_database \�[0m
2801:  �[36;1m  --top-k 3 \�[0m
2802:  �[36;1m  --include-metadata \�[0m
2803:  �[36;1m  "neural scaling laws" 2>&1); then�[0m
2804:  �[36;1m  echo "❌ RAG query validation failed"�[0m
2805:  �[36;1m  echo "$OUTPUT"�[0m
...

2823:  UV_INDEX_STRATEGY: unsafe-first-match
2824:  LLAMAFARM_GGUF_FORCE_CPU: 1
2825:  GGML_METAL_ENABLE: 0
2826:  TEST_DIR: D:\a\_temp/e2e-test
2827:  PYTHONUNBUFFERED: 1
2828:  ##[endgroup]
2829:  ✓ RAG query results contain relevant content
2830:  ##[group]Run echo "Running chat command with RAG..."
2831:  �[36;1mecho "Running chat command with RAG..."�[0m
2832:  �[36;1m# Retry once if the runtime crashed and needs to restart�[0m
2833:  �[36;1mfor attempt in 1 2; do�[0m
2834:  �[36;1m  if OUTPUT=$(./lf.exe --cwd "$TEST_DIR" --debug chat \�[0m
2835:  �[36;1m    "Summarize neural scaling laws in one sentence" 2>&1); then�[0m
2836:  �[36;1m    break�[0m
2837:  �[36;1m  fi�[0m
2838:  �[36;1m  echo "⚠ Chat attempt $attempt failed, waiting for runtime to recover..."�[0m
2839:  �[36;1m  sleep 10�[0m
2840:  �[36;1m  if [ "$attempt" -eq 2 ]; then�[0m
2841:  �[36;1m    echo "❌ Chat command failed after retries"�[0m
2842:  �[36;1m    echo "$OUTPUT"�[0m
2843:  �[36;1m    curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
2844:  �[36;1m    exit 1�[0m
2845:  �[36;1m  fi�[0m
2846:  �[36;1mdone�[0m
2847:  �[36;1m�[0m
2848:  �[36;1mecho "Chat response:"�[0m
2849:  �[36;1mecho "$OUTPUT"�[0m
2850:  �[36;1m�[0m
2851:  �[36;1m# Verify output is not empty and has some substance�[0m
2852:  �[36;1mif [ -z "$OUTPUT" ] || [ ${#OUTPUT} -lt 10 ]; then�[0m
2853:  �[36;1m  echo "❌ Error: Chat response empty or too short"�[0m
2854:  �[36;1m  curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
...

2999:  Stream line: 
3000:  Stream line: data: [DONE]
3001:  <think>
3002:  </think>
3003:  Neural scaling laws describe how the number of neurons in a model scales with the size of the input or model.
3004:  ✓ Chat command returned a response
3005:  ##[group]Run echo "Running chat command without RAG..."
3006:  �[36;1mecho "Running chat command without RAG..."�[0m
3007:  �[36;1m# Retry once if the runtime crashed and needs to restart�[0m
3008:  �[36;1mfor attempt in 1 2; do�[0m
3009:  �[36;1m  if OUTPUT=$(./lf.exe --cwd "$TEST_DIR" --debug chat \�[0m
3010:  �[36;1m    --no-rag \�[0m
3011:  �[36;1m    "What is 2 + 2?" 2>&1); then�[0m
3012:  �[36;1m    break�[0m
3013:  �[36;1m  fi�[0m
3014:  �[36;1m  echo "⚠ Chat (no RAG) attempt $attempt failed, waiting for runtime to recover..."�[0m
3015:  �[36;1m  sleep 10�[0m
3016:  �[36;1m  if [ "$attempt" -eq 2 ]; then�[0m
3017:  �[36;1m    echo "❌ Chat command (no RAG) failed after retries"�[0m
3018:  �[36;1m    echo "$OUTPUT"�[0m
3019:  �[36;1m    curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
3020:  �[36;1m    exit 1�[0m
3021:  �[36;1m  fi�[0m
3022:  �[36;1mdone�[0m
3023:  �[36;1m�[0m
3024:  �[36;1mecho "Chat response:"�[0m
3025:  �[36;1mecho "$OUTPUT"�[0m
3026:  �[36;1m�[0m
3027:  �[36;1m# Verify output is not empty�[0m
3028:  �[36;1mif [ -z "$OUTPUT" ]; then�[0m
3029:  �[36;1m  echo "❌ Error: Chat command (no RAG) returned empty output"�[0m
3030:  �[36;1m  curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
...

3120:  Content chunk: 4
3121:  Stream line: 
3122:  Stream line: data: {"id": "chatcmpl-048fac2e448248ede6f7365c56d473db", "choices": [{"delta": {"content": ".", "role": "assistant"}, "index": 0}], "created": 1775246808, "model": "unsloth/Qwen3-0.6B-GGUF:IQ1_S", "object": "chat.completion.chunk"}
3123:  Content chunk: .
3124:  Stream line: 
3125:  Stream line: data: {"id": "chatcmpl-048fac2e448248ede6f7365c56d473db", "choices": [{"delta": {}, "finish_reason": "stop", "index": 0}], "created": 1775246808, "model": "unsloth/Qwen3-0.6B-GGUF:IQ1_S", "object": "chat.completion.chunk"}
3126:  Stream line: 
3127:  Stream line: data: [DONE]
3128:  <think>
3129:  </think>
3130:  2 + 2 equals 4.
3131:  ✓ Chat command without RAG works
3132:  ##[group]Run echo "Listing datasets..."
3133:  �[36;1mecho "Listing datasets..."�[0m
3134:  �[36;1mif ! ./lf.exe --cwd "$TEST_DIR" --debug datasets list; then�[0m
3135:  �[36;1m  echo "❌ Dataset listing failed, checking server health..."�[0m
3136:  �[36;1m  curl -s http://localhost:14345/health | jq '.' || echo "Server not reachable"�[0m
...

3393:  NX_NO_CLOUD: true
3394:  LF_VERSION_REF: refs/pull/803/merge
3395:  UV_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu
3396:  UV_INDEX_STRATEGY: unsafe-first-match
3397:  LLAMAFARM_GGUF_FORCE_CPU: 1
3398:  GGML_METAL_ENABLE: 0
3399:  TEST_DIR: D:\a\_temp/e2e-test
3400:  ##[endgroup]
3401:  ==========================================
3402:  Service Logs (windows-latest)
3403:  ==========================================
3404:  --- Server Logs ---
3405:  �[2m2026-04-03T20:06:15.819302Z�[0m [�[32m�[1minfo     �[0m] �[1mChecking task status          �[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mrequest_id�[0m=�[35m4661f4ac103b45c0b2533ad614c9f021�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m
3406:  �[2m2026-04-03T20:06:15.819302Z�[0m [�[32m�[1minfo     �[0m] �[1mTask status                   �[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mready�[0m=�[35mFalse�[0m �[36mrequest_id�[0m=�[35m4661f4ac103b45c0b2533ad614c9f021�[0m �[36mstate�[0m=�[35mPENDING�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m
3407:  �[2m2026-04-03T20:06:15.821332Z�[0m [�[32m�[1minfo     �[0m] �[1mFound stored group metadata   �[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mchild_count�[0m=�[35m2�[0m �[36mrequest_id�[0m=�[35m4661f4ac103b45c0b2533ad614c9f021�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m
3408:  �[2m2026-04-03T20:06:15.823361Z�[0m [�[32m�[1minfo     �[0m] �[1mGroup progress                �[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mcompleted�[0m=�[35m1�[0m �[36mfailed�[0m=�[35m0�[0m �[36mrequest_id�[0m=�[35m4661f4ac103b45c0b2533ad614c9f021�[0m �[36msuccessful�[0m=�[35m1�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m �[36mtotal�[0m=�[35m2�[0m
3409:  �[2m2026-04-03T20:06:15.825390Z�[0m [�[32m�[1minfo     �[0m] �[1m127.0.0.1:56407 - "GET /v1/projects/default/e2e-test/tasks/caa2a04d-8921-459d-b0bb-af1c154055b0 HTTP/1.1" 200�[0m [�[0m�[1m�[34mserver.access�[0m]�[0m �[36mduration�[0m=�[35m6129400�[0m �[36mhttp�[0m=�[35m{'url': '/v1/projects/default/e2e-test/tasks/caa2a04d-8921-459d-b0bb-af1c154055b0', 'status_code': 200, 'method': 'GET', 'request_id': '4661f4ac103b45c0b2533ad614c9f021', 'version': '1.1'}�[0m �[36mnetwork�[0m=�[35m{'client': {'ip': '127.0.0.1', 'port': 56407}}�[0m �[36mrequest_id�[0m=�[35m4661f4ac103b45c0b2533ad614c9f021�[0m
3410:  �[2m2026-04-03T20:06:17.827977Z�[0m [�[32m�[1minfo     �[0m] �[1mChecking task status          �[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mrequest_id�[0m=�[35m8887941e13dd464b8a3567b0d93ea5a4�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m
3411:  �[2m2026-04-03T20:06:17.828555Z�[0m [�[32m�[1minfo     �[0m] �[1mTask status                   �[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mready�[0m=�[35mFalse�[0m �[36mrequest_id�[0m=�[35m8887941e13dd464b8a3567b0d93ea5a4�[0m �[36mstate�[0m=�[35mPENDING�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m
3412:  �[2m2026-04-03T20:06:17.829988Z�[0m [�[32m�[1minfo     �[0m] �[1mFound stored group metadata   �[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mchild_count�[0m=�[35m2�[0m �[36mrequest_id�[0m=�[35m8887941e13dd464b8a3567b0d93ea5a4�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m
3413:  �[2m2026-04-03T20:06:17.829988Z�[0m [�[32m�[1minfo     �[0m] �[1mGroup progress                �[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mcompleted�[0m=�[35m2�[0m �[36mfailed�[0m=�[35m0�[0m �[36mrequest_id�[0m=�[35m8887941e13dd464b8a3567b0d93ea5a4�[0m �[36msuccessful�[0m=�[35m2�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m �[36mtotal�[0m=�[35m2�[0m
3414:  �[2m2026-04-03T20:06:17.830578Z�[0m [�[32m�[1minfo     �[0m] �[1mPersisted final group task state�[0m [�[0m�[1m�[34mapi.routers.projects.projects�[0m]�[0m �[36mfailed�[0m=�[35m0�[0m �[36mprocessed�[0m=�[35m2�[0m �[36mrequest_id�[0m=�[35m8887941e13dd464b8a3567b0d93ea5a4�[0m �[36mskipped�[0m=�[35m0�[0m �[36mstate�[0m=�[35mSUCCESS�[0m �[36mtask_id�[0m=�[35mcaa2a04d-8921-459d-b0bb-af1c154055b0�[0m
3415:  �[2m2026-04-03T20:06:17.832430Z�[0m [�[32m�[1minfo     �[0m] �[1m127.0.0.1:56407 - "GET /v1/projects/default/e2e-test/tasks/caa2a04d-8921-459d-b0bb-af1c154055b0 HTTP/1.1" 200�[0m [�[0m�[1m�[34mserver.access�[0m]�[0m �[36mduration�[0m=�[35m4370000�[0m �[36mhttp�[0m=�[35m{'url': '/v1/projects/default/e2e-test/tasks/caa2a04d-8921-459d-b0bb-af1c154055b0', 'status_code': 200, 'method': 'GET', 'request_id': '8887941e13dd464b8a3567b0d93ea5a4', 'version': '1.1'}�[0m �[36mnetwork�[0m=�[35m{'client': {'ip': '127.0.0.1', 'port': 56407}}�[0m �[36mrequest_id�[0m=�[35m8887941e13dd464b8a3567b0d93ea5a4�[0m
...

3555:  [2026-04-03 20:06:15] [stderr]    \u2705 Status: SUCCESS - 1/1 chunks stored
3556:  [2026-04-03 20:06:15] [stderr] Ingestion complete: 1 stored, 0 skipped from 15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc [rag.core.ingest_handler] name=ChromaStore
3557:  [2026-04-03 20:06:15] [stderr] [info     ] [DUPLICATE] All 1 documents already in database - skipped [rag.core.ingest_handler] name=ChromaStore
3558:  [2026-04-03 20:06:15] [stderr] [info     ] 
3559:  [2026-04-03 20:06:15] [stderr] \U0001f4be Database Storage (ChromaStore): [rag.core.ingest_handler] name=ChromaStore
3560:  [2026-04-03 20:06:15] [stderr] [info     ]    \u23ed\ufe0f  Skipped: 1 duplicate chunks [rag.core.ingest_handler] name=ChromaStore
3561:  [2026-04-03 20:06:15] [stderr] [info     ] 
3562:  [2026-04-03 20:06:15] [stderr] \U0001f4c8 Processing Summary:
3563:  [2026-04-03 20:06:15] [stderr]   \u23f1\ufe0f  Total time: 1.01 seconds
3564:  [2026-04-03 20:06:15] [stderr]    \u26a0\ufe0f  Status: DUPLICATE - All 1 chunks already in database
3565:  [2026-04-03 20:06:15] [stderr] Ingestion complete: 0 stored, 1 skipped from 15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc [rag.core.ingest_handler] name=ChromaStore
3566:  [2026-04-03 20:06:15] [stderr] [warning  ] 
3567:  [2026-04-03 20:06:15] [stderr] \u26a0\ufe0f FILE ALREADY PROCESSED - All 1 chunks already exist in database [rag.core.ingest_handler] name=ChromaStore
3568:  [2026-04-03 20:06:15] [stderr] [info     ] RAG file ingestion completed   [rag.tasks.ingest] extra={'task_id': '5c1d025e-dd4c-4497-a85d-e5e6500e79cc', 'success': True, 'status': 'success', 'stored_count': 1, 'skipped_count': 0} name=ChromaStore
3569:  [2026-04-03 20:06:15] [stderr] [info     ] RAG file ingestion completed   [rag.tasks.ingest] extra={'task_id': '78e9f761-e343-4fea-a3a2-c636db8102e2', 'success': True, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 1} name=ChromaStore
3570:  [2026-04-03 20:06:15] [stderr] [info     ] Task rag.ingest_file[78e9f761-e343-4fea-a3a2-c636db8102e2] succeeded in 13.172000000000025s: (True, {'filename': 'neural_scaling_laws.txt', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 1, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': 'duplicate', 'result': {'status': 'skipped', 'filename': '15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'document_count': 1, 'stored_count': 0, 'skipped_count': 1, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': 'duplicate'}, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 1}) [celery.app.trace] data={'id': '78e9f761-e343-4fea-a3a2-c636db8102e2', 'name': 'rag.ingest_file', 'return_value': "(True, {'filename': 'neural_scaling_laws.txt', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 1, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': 'duplicate', 'result': {'status': 'skipped', 'filename': '15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'document_count': 1, 'stored_count': 0, 'skipped_count': 1, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': 'duplicate'}, 'status': 'skipped', 'stored_count': 0, 'skipped_count': 1})", 'runtime': 13.172000000000025, 'args': "('C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test', 'universal_rag', 'main_database', 'C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test\\lf_data\\datasets\\test_dataset\\raw\\15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'neural_scaling_laws.txt', 'test_dataset', {})", 'kwargs': '{}'} name=ChromaStore
3571:  [2026-04-03 20:06:15] [stderr] [info     ] Task rag.ingest_file[5c1d025e-dd4c-4497-a85d-e5e6500e79cc] succeeded in 10.844000000000051s: (True, {'filename': 'neural_scaling_laws.txt', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 1, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': None, 'result': {'status': 'success', 'filename': '15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'document_count': 1, 'stored_count': 1, 'skipped_count': 0, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': None}, 'status': 'success', 'stored_count': 1, 'skipped_count': 0}) [celery.app.trace] data={'id': '5c1d025e-dd4c-4497-a85d-e5e6500e79cc', 'name': 'rag.ingest_file', 'return_value': "(True, {'filename': 'neural_scaling_laws.txt', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 1, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': None, 'result': {'status': 'success', 'filename': '15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'document_count': 1, 'stored_count': 1, 'skipped_count': 0, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': None}, 'status': 'success', 'stored_count': 1, 'skipped_count': 0})", 'runtime': 10.844000000000051, 'args': "('C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test', 'universal_rag', 'main_database', 'C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test\\lf_data\\datasets\\test_dataset\\raw\\15d09d0ebaada5dee1939c9fb0fa4e326c35eb1a87ac4fdb3e83b9d3dd9438bc', 'neural_scaling_laws.txt', 'test_dataset', {})", 'kwargs': '{}'} name=ChromaStore
3572:  [2026-04-03 20:06:15] [stderr] [info     ] Extraction complete            [rag.components.extractors.base] documents_processed=20 name=ChromaStore
...

3579:  [2026-04-03 20:06:15] [stderr] [info     ] 
3580:  [2026-04-03 20:06:15] [stderr] \U0001f9e0 Embedding with UniversalEmbedder: [rag.core.ingest_handler] name=ChromaStore
3581:  [2026-04-03 20:06:15] [stderr] [info     ]    \u2514\u2500 Dimensions: 384          [rag.core.ingest_handler] name=ChromaStore
3582:  [2026-04-03 20:06:17] [stderr] [info     ] Added 20 documents to ChromaDB collection [rag.components.stores.chroma_store.chroma_store] name=ChromaStore
3583:  [2026-04-03 20:06:17] [stderr] [info     ] Stored all 20 documents        [rag.core.ingest_handler] name=ChromaStore
3584:  [2026-04-03 20:06:17] [stderr] [info     ] [STORED] All 20 documents embedded and stored [rag.core.ingest_handler] name=ChromaStore
3585:  [2026-04-03 20:06:17] [stderr] [info     ] 
3586:  [2026-04-03 20:06:17] [stderr] \U0001f4be Database Storage (ChromaStore): [rag.core.ingest_handler] name=ChromaStore
3587:  [2026-04-03 20:06:17] [stderr] [info     ]    \u2705 Stored: 20 new chunks     [rag.core.ingest_handler] name=ChromaStore
3588:  [2026-04-03 20:06:17] [stderr] [info     ] 
3589:  [2026-04-03 20:06:17] [stderr] \U0001f4c8 Processing Summary:
3590:  [2026-04-03 20:06:17] [stderr]   \u23f1\ufe0f  Total time: 3.22 seconds
3591:  [2026-04-03 20:06:17] [stderr]    \u2705 Status: SUCCESS - 20/20 chunks stored
3592:  [2026-04-03 20:06:17] [stderr] Ingestion complete: 20 stored, 0 skipped from 2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067 [rag.core.ingest_handler] name=ChromaStore
3593:  [2026-04-03 20:06:17] [stderr] [info     ] RAG file ingestion completed   [rag.tasks.ingest] extra={'task_id': '96041bdc-db0b-4a05-b03b-77e03436627f', 'success': True, 'status': 'success', 'stored_count': 20, 'skipped_count': 0} name=ChromaStore
3594:  [2026-04-03 20:06:17] [stderr] [info     ] Task rag.ingest_file[96041bdc-db0b-4a05-b03b-77e03436627f] succeeded in 12.921999999999798s: (True, {'filename': 'best_practices.md', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 20, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': None, 'result': {'status': 'success', 'filename': '2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'document_count': 20, 'stored_count': 20, 'skipped_count': 0, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': None}, 'status': 'success', 'stored_count': 20, 'skipped_count': 0}) [celery.app.trace] data={'id': '96041bdc-db0b-4a05-b03b-77e03436627f', 'name': 'rag.ingest_file', 'return_value': "(True, {'filename': 'best_practices.md', 'parser': 'UniversalParser', 'extractors': ['UniversalExtractor'], 'chunks': 20, 'chunk_size': None, 'embedder': 'UniversalEmbedder', 'error': None, 'reason': None, 'result': {'status': 'success', 'filename': '2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'document_count': 20, 'stored_count': 20, 'skipped_count': 0, 'document_ids': [...], 'parsers_used': [...], 'extractors_applied': [...], 'embedder': 'UniversalEmbedder', 'chunk_size': None, 'reason': None}, 'status': 'success', 'stored_count': 20, 'skipped_count': 0})", 'runtime': 12.921999999999798, 'args': "('C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test', 'universal_rag', 'main_database', 'C:\\Users\\runneradmin\\.llamafarm\\projects\\default\\e2e-test\\lf_data\\datasets\\test_dataset\\raw\\2d161159aa29862302196beb3782620dcc6b9c654b255fe25256bee0ad5ac067', 'best_practices.md', 'test_dataset', {})", 'kwargs': '{}'} name=ChromaStore
3595:  [2026-04-03 20:06:17] [stderr] [warning  ] No valid documents with embeddings to add (all may be duplicates) [rag.components.stores.chroma_store.chroma_store] name=ChromaStore
...

3601:  [2026-04-03 20:06:17] [stderr] [info     ] 
3602:  [2026-04-03 20:06:17] [stderr] \U0001f4c8 Processing Summary:
3603:  [2026-04-03 20:06:17] [stderr]   \u23f1\ufe0f  Total time: 3.30 seconds
3604:  [2026-04-03 20:06:17] [stderr]    \u26a0\ufe0f  Status: DUPLICATE - All 20 chunks already in database
3605:  [2026-04-03 20:06:17] [stderr] Ingestion complete: 0 stored, 20 skipped from 2d161159aa2986230219
3606:  --- Universal Runtime Logs ---
3607:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: general.name     = Qwen3-0.6B [llamafarm_llama.llama_cpp]
3608:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: vocab type       = BPE [llamafarm_llama.llama_cpp]
3609:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: n_vocab          = 151936 [llamafarm_llama.llama_cpp]
3610:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: n_merges         = 151387 [llamafarm_llama.llama_cpp]
3611:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: BOS token        = 11 ',' [llamafarm_llama.llama_cpp]
3612:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: EOS token        = 151645 '<|im_end|>' [llamafarm_llama.llama_cpp]
3613:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: EOT token        = 151645 '<|im_end|>' [llamafarm_llama.llama_cpp]
3614:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: PAD token        = 151654 '<|vision_pad|>' [llamafarm_llama.llama_cpp]
3615:  [2026-04-03 20:05:04] [stderr] [info     ] print_info: LF token         = 198 '\u010a' [llamafarm_llama.llama_cpp]
3616:  [2026-04-03 20:05:04] [stderr] --- Logging error ---
3617:  [2026-04-03 20:05:04] [stderr] Traceback (most recent call last):
3618:  [2026-04-03 20:05:04] [stderr]   File "C:\Users\runneradmin\.llamafarm\python\cpython-3.12.12-windows-x86_64-none\Lib\logging\__init__.py", line 1163, in emit
3619:  [2026-04-03 20:05:04] [stderr]     stream.write(msg + self.terminator)
3620:  [2026-04-03 20:05:04] [stderr]   File "C:\Users\runneradmin\.llamafarm\python\cpython-3.12.12-windows-x86_64-none\Lib\encodings\cp1252.py", line 19, in encode
3621:  [2026-04-03 20:05:04] [stderr]     return codecs.charmap_encode(input,self.errors,encoding_table)[0]
3622:  [2026-04-03 20:05:04] [stderr]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3623:  [2026-04-03 20:05:04] [stderr] UnicodeEncodeError: 'charmap' codec can't encode character '\u010a' in position 101: character maps to <undefined>
3624:  [2026-04-03 20:05:04] [stderr] Call stack:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant