Skip to content

Conversation

@k3dz0r
Copy link
Contributor

@k3dz0r k3dz0r commented Dec 11, 2025

Update run-unsloth.sh to accept a dataset as an existing offer
Add README to Unsloth and vLLM
Remove old and broken Docs links
Update general README

Summary by CodeRabbit

  • Documentation

    • Expanded and added detailed guides for Unsloth and vLLM; updated main solutions list/table and simplified several README introductions by removing external deployment links.
    • Updated numerous in-app documentation links and navigation labels (e.g., Docs, CLI, Marketplace) for consistency.
  • Chores

    • Clarified and broadened user prompts in deployment scripts to accept resource IDs, paths, or folders.
    • Adjusted editor recommendations by removing ESLint from auto-recommendations and retaining Prettier as unwanted.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 11, 2025

Walkthrough

Updates replace and consolidate documentation links, remove some external deployment references from READMEs, add detailed READMEs for Unsloth and vLLM, and enhance the Unsloth runner script to accept numeric offer IDs and additional data input forms.

Changes

Cohort / File(s) Summary
VS Code Configuration
\.vscode/extensions.json
Cleared the recommendations array (removed dbaeumer.vscode-eslint); unwantedRecommendations remains ["esbenp.prettier-vscode"].
Chat UI link updates
Tunnel Client/chat/src/client/components/Main/Blocks/Deploy/helpers.ts, Tunnel Client/chat/src/client/components/Main/Blocks/Description/helpers.ts, Tunnel Client/chat/src/client/components/Main/Blocks/Title/helpers.ts, Tunnel Client/chat/src/client/components/PageLinks/helpers.ts, Tunnel Client/chat/src/client/components/Room/InfoAccordion/helpers.tsx
Updated multiple exported constants/arrays to change link text and hrefs to new documentation/CLI URLs; items removed/added in page links list.
Static content link updates
Tunnel Client/static-content/src/common/data.ts, Tunnel Client/static-content/src/views/Content/Marketplace/helpers.ts, Tunnel Client/static-content/src/views/Content/Rewards/helpers.ts
Replaced FAQ/Developers entries and adjusted footer hrefs to new docs and marketplace paths.
README removals / edits (deployment links)
Blockchain/README.md, Tunnel Client/chat/README.md, Tunnel Client/minecraft/README.md, Python/readme.md
Removed or shortened lines referencing external deployment guides and removed some deployment/link guidance; Python intro shortened.
Top-level README changes
readme.md
Replaced introductory block and expanded the solutions table with additional entries (ComfyUI, Jupyter Notebook, n8n, Text Generation WebUI, Unsloth, vLLM); formatting adjusted.
New / expanded solution docs
unsloth/README.md, vllm/README.md
Added comprehensive documentation for Unsloth and vLLM: prerequisites, usage steps, run scripts, order placement, dry-run examples, and API/endpoints notes.
Unsloth runner script changes
unsloth/scripts/run-unsloth.sh
Enhanced input parsing and prompts: added support for numeric DATA_RESOURCE/DATA_DIR as direct IDs, adjusted descriptor accumulation logic and messaging, clarified prompts for resources/models/folders, and refined error/suggest-only paths.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Special attention areas:
    • unsloth/scripts/run-unsloth.sh — verify numeric-ID handling, descriptor accumulation, and suggest-only vs error behavior.
    • Chat and static-content helpers — confirm updated hrefs and labels point to correct documentation endpoints.
    • unsloth/README.md and vllm/README.md — validate instructions, example commands, and expected outputs for accuracy.

Poem

🐰 In burrows bright the docs align,

Links hop home to a tidier vine,
Scripts accept numbers, paths, and more,
New guides unpack each secret door,
The rabbit hops — the changelog fine. 🌿

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Feat/vllm unsloth readme' is partially related to the changeset but captures only a portion of the main work—it mentions adding READMEs for vLLM and Unsloth but omits the significant changes to documentation links across multiple files and script updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (3)
Tunnel Client/chat/src/client/components/Main/Blocks/Description/helpers.ts (1)

24-29: Docs URL is fine; consider aligning trailing-slash style

The new CLI docs URL works, but other places in this PR typically use https://docs.superprotocol.com/cli (no trailing slash). Consider standardizing for consistency, though it’s not functionally required.

unsloth/README.md (1)

1-172: Strong end‑to‑end README; only minor markdown/style nits

The overall flow (TEE paths, SPCTL prerequisites, file vs Jupyter modes, dry‑run, dataset/model selection) is clear and matches how Unsloth is expected to run on Super Protocol. Content-wise this is in good shape. A few small polish points:

  1. Markdown list indentation (MD007)
    Nested bullets under “2) your model” and the “Provide your dataset…” steps are indented with 4 spaces before the dash. markdownlint flags these (lines 48–50 and 136–138) and expects 2-space indentation. For example, you can adjust patterns like:

    • a path to the model's resource JSON file, if it was already uploaded with SPCTL
    • model offer ID, if the model exists on the Marketplace
    • a path to the local directory with the model to upload it using SPCTL.
    • a path to the model's resource JSON file, if it was already uploaded with SPCTL
    • model offer ID, if the model exists on the Marketplace
    • a path to the local directory with the model to upload it using SPCTL.
    
    Same applies to the analogous dataset bullets in both the file and Jupyter sections.
    
    
    
  1. Step numbering in the Jupyter section
    The Jupyter section has two items numbered “8.” (waiting for the Jupyter order and opening the link). Markdown renderers will auto-renumber, but it reads a bit confusing in raw form. Consider making the final step “9.” for clarity.

  2. Optional clarity: working directory
    You mention copying spctl and config.json into unsloth/scripts and then show ./run-unsloth.sh. Adding a brief “cd unsloth/scripts” before the first shell block would make it explicit where users should run the script from.

Overall, the README is comprehensive and well aligned with the existing Unsloth behavior and workflows. Based on learnings, …

unsloth/scripts/run-unsloth.sh (1)

736-736: Remove unused variable.

DATA_ARCHIVE_NAME is computed but never used. The script now performs direct folder uploads without archiving (as indicated by the "no archiving" message on line 754).

Apply this diff:

           # Compute descriptor name for suggestion regardless of existence
           DATA_DIR_BASE="$(basename -- "$DATA_DIR_VALUE")"
-          DATA_ARCHIVE_NAME="${DATA_DIR_BASE}-data.tar.gz"
           DATA_DESCRIPTOR_NAME="${DATA_DIR_BASE}-data.json"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between a0cc917 and 5e62ffb.

📒 Files selected for processing (17)
  • .vscode/extensions.json (1 hunks)
  • Blockchain/README.md (0 hunks)
  • Python/readme.md (1 hunks)
  • Tunnel Client/chat/README.md (0 hunks)
  • Tunnel Client/chat/src/client/components/Main/Blocks/Deploy/helpers.ts (1 hunks)
  • Tunnel Client/chat/src/client/components/Main/Blocks/Description/helpers.ts (1 hunks)
  • Tunnel Client/chat/src/client/components/Main/Blocks/Title/helpers.ts (1 hunks)
  • Tunnel Client/chat/src/client/components/PageLinks/helpers.ts (1 hunks)
  • Tunnel Client/chat/src/client/components/Room/InfoAccordion/helpers.tsx (1 hunks)
  • Tunnel Client/minecraft/README.md (0 hunks)
  • Tunnel Client/static-content/src/common/data.ts (1 hunks)
  • Tunnel Client/static-content/src/views/Content/Marketplace/helpers.ts (1 hunks)
  • Tunnel Client/static-content/src/views/Content/Rewards/helpers.ts (1 hunks)
  • readme.md (1 hunks)
  • unsloth/README.md (1 hunks)
  • unsloth/scripts/run-unsloth.sh (4 hunks)
  • vllm/README.md (1 hunks)
💤 Files with no reviewable changes (3)
  • Blockchain/README.md
  • Tunnel Client/chat/README.md
  • Tunnel Client/minecraft/README.md
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-10-31T14:54:13.528Z
Learnt from: marchuk-vlad
Repo: Super-Protocol/solutions PR: 135
File: unsloth/Dockerfile:7-7
Timestamp: 2025-10-31T14:54:13.528Z
Learning: For Super Protocol solutions, Docker images that copy .env files are acceptable because images are encrypted and loaded in TEE (Trusted Execution Environment), which provides a different security model than traditional Docker deployments.

Applied to files:

  • unsloth/README.md
  • vllm/README.md
  • readme.md
  • Python/readme.md
📚 Learning: 2025-10-31T14:58:50.082Z
Learnt from: marchuk-vlad
Repo: Super-Protocol/solutions PR: 135
File: unsloth/src/helpers.ts:59-65
Timestamp: 2025-10-31T14:58:50.082Z
Learning: In the unsloth solution (unsloth/src/helpers.ts), the runPythonFile and runIpynbFile functions intentionally swallow errors by logging and returning instead of throwing. This allows the Kubernetes pod to complete successfully and return logs even when execution fails, which is required for their operational workflow.

Applied to files:

  • unsloth/README.md
📚 Learning: 2025-10-31T15:01:54.857Z
Learnt from: marchuk-vlad
Repo: Super-Protocol/solutions PR: 135
File: unsloth/src/server.ts:26-83
Timestamp: 2025-10-31T15:01:54.857Z
Learning: In the unsloth project (unsloth/src/server.ts), the Jupyter notebook spawn arguments include embedded single quotes (e.g., `--NotebookApp.token=''`, `--NotebookApp.allow_origin='*'`, `--NotebookApp.password='${hashed}'`) and this pattern has been tested and confirmed to work correctly with Jupyter's argument parsing.

Applied to files:

  • unsloth/README.md
📚 Learning: 2025-10-31T14:56:52.188Z
Learnt from: marchuk-vlad
Repo: Super-Protocol/solutions PR: 135
File: unsloth/scripts/run-unsloth.sh:503-520
Timestamp: 2025-10-31T14:56:52.188Z
Learning: In the unsloth/scripts/run-unsloth.sh script, displaying sensitive credentials (TLS private keys and tunnel tokens) in suggestion hints and terminal output is an accepted risk for this project.

Applied to files:

  • unsloth/README.md
🪛 Gitleaks (8.30.0)
vllm/README.md

[high] 48-48: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🪛 markdownlint-cli2 (0.18.1)
unsloth/README.md

48-48: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


49-49: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


50-50: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


136-136: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


137-137: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


138-138: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

🪛 Shellcheck (0.11.0)
unsloth/scripts/run-unsloth.sh

[warning] 736-736: DATA_ARCHIVE_NAME appears unused. Verify use (or export if used externally).

(SC2034)

🔇 Additional comments (11)
.vscode/extensions.json (1)

2-2: Clarify the intent of removing ESLint recommendation.

The removal of dbaeumer.vscode-eslint from the recommendations is not mentioned in the PR objectives, which focus on documentation updates and script changes. Please confirm whether this change is intentional and related to the broader PR scope.

Tunnel Client/static-content/src/views/Content/Marketplace/helpers.ts (1)

24-27: Marketplace footer URL update looks correct

The new docs URL for Marketplace is consistent with the rest of the PR and keeps the structure unchanged.

Tunnel Client/chat/src/client/components/Main/Blocks/Title/helpers.ts (1)

6-9: Guide link pointing to CLI docs is consistent

Routing the guide button to the CLI docs aligns with other updated links and the overall docs consolidation in this PR.

Python/readme.md (1)

1-3: Concise Python image description looks good

The shortened introduction is clear and avoids stale links, which fits the docs cleanup in this PR.

Tunnel Client/static-content/src/common/data.ts (1)

12-21: Docs and CLI links update is consistent

Renaming “FAQ” to “Docs” and “Developers” to “Super Protocol CLI” with the new URLs matches the rest of the navigation changes and keeps the structure intact.

Tunnel Client/chat/src/client/components/Main/Blocks/Deploy/helpers.ts (1)

13-21: Deployment links now target the right docs

Pointing the GUI entry to the Marketplace overview and the CLI entry to the quick-guide aligns with the new documentation structure and keeps the array shape unchanged.

Tunnel Client/chat/src/client/components/Room/InfoAccordion/helpers.tsx (1)

11-12: Info accordion links updated consistently

The updated links for Testnet info and building on Super Protocol correctly route users to the main docs and CLI docs, in line with the rest of the navigation changes.

readme.md (1)

3-20: LGTM!

The updated solution table comprehensively documents all available solutions including the new vLLM and Unsloth entries. The formatting and descriptions are clear and consistent.

Tunnel Client/static-content/src/views/Content/Rewards/helpers.ts (1)

8-16: LGTM!

The documentation link updates align with the centralized documentation structure. The URLs are correctly formatted and point to appropriate CLI-focused guidance.

Tunnel Client/chat/src/client/components/PageLinks/helpers.ts (1)

3-6: LGTM!

Consolidating multiple documentation links into a single Docs hub entry simplifies navigation and aligns with the centralized documentation approach across the PR.

unsloth/scripts/run-unsloth.sh (1)

686-764: LGTM!

The enhanced input handling correctly supports:

  • Numeric offer IDs for direct marketplace references
  • JSON resource descriptors for pre-uploaded data
  • Directory paths for new uploads

The logic properly handles suggest-only mode and provides appropriate error messages. The no-archiving upload flow aligns with modern best practices.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
unsloth/scripts/run-unsloth.sh (2)

736-736: Remove unused archive name variables.

DATA_ARCHIVE_NAME (line 736) and MODEL_ARCHIVE_NAME (line 819) are defined but never referenced. These appear to be artifacts from older archiving logic and should be deleted to keep the code clean.

-          DATA_DIR_BASE="$(basename -- "$DATA_DIR_VALUE")"
-          DATA_ARCHIVE_NAME="${DATA_DIR_BASE}-data.tar.gz"
-          DATA_DESCRIPTOR_NAME="${DATA_DIR_BASE}-data.json"
+          DATA_DIR_BASE="$(basename -- "$DATA_DIR_VALUE")"
+          DATA_DESCRIPTOR_NAME="${DATA_DIR_BASE}-data.json"
-      MODEL_DIR_BASE="$(basename -- "$MODEL_DIR_VALUE")"
-      MODEL_ARCHIVE_NAME="${MODEL_DIR_BASE}-model.tar.gz"
-      MODEL_DESCRIPTOR_NAME="${MODEL_DIR_BASE}-model.json"
+      MODEL_DIR_BASE="$(basename -- "$MODEL_DIR_VALUE")"
+      MODEL_DESCRIPTOR_NAME="${MODEL_DIR_BASE}-model.json"

Also applies to: 819-819


773-773: Remove the extra blank line.

Line 773 is a blank line that appears unintended. If section separation is desired, a single blank line between logical sections is sufficient.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 5e62ffb and 2a064b1.

📒 Files selected for processing (2)
  • unsloth/scripts/run-unsloth.sh (4 hunks)
  • vllm/README.md (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-31T14:54:13.528Z
Learnt from: marchuk-vlad
Repo: Super-Protocol/solutions PR: 135
File: unsloth/Dockerfile:7-7
Timestamp: 2025-10-31T14:54:13.528Z
Learning: For Super Protocol solutions, Docker images that copy .env files are acceptable because images are encrypted and loaded in TEE (Trusted Execution Environment), which provides a different security model than traditional Docker deployments.

Applied to files:

  • vllm/README.md
🪛 Gitleaks (8.30.0)
vllm/README.md

[high] 48-48: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🪛 Shellcheck (0.11.0)
unsloth/scripts/run-unsloth.sh

[warning] 736-736: DATA_ARCHIVE_NAME appears unused. Verify use (or export if used externally).

(SC2034)

🔇 Additional comments (12)
unsloth/scripts/run-unsloth.sh (5)

242-243: ✓ Typo fix approved.

Line 243 now correctly reads "Model input:" instead of the previous "Model inputc:". The updated prompt also appropriately reflects the new capability to accept resource JSON paths, numeric offer IDs, or folder paths.


686-705: Numeric ID support for data resources looks solid.

The logic correctly distinguishes between numeric offer IDs (which bypass file existence checks) and file-based resource JSON paths. The conditional flow and error handling align well with the suggest-only vs. strict-mode behavior.


709-709: ✓ Updated prompt reflects expanded input forms.

The prompt now clearly communicates the three accepted input types: resource JSON path, numeric offer ID, or folder path. This improves user clarity.


719-764: Multi-form data input handling is well-structured.

The logic correctly:

  • Routes numeric IDs directly to DATA_DESCRIPTORS without file checks
  • Detects JSON descriptors via grep (fields: "hash", "encryption", "resource") and reclassifies them as DATA_RESOURCE
  • Handles folder uploads with proper error messaging in both suggest-only and strict modes
  • Records suggestions appropriately for non-interactive re-runs

775-799: Model resource handling mirrors data resource pattern correctly.

The numeric ID and file-path handling for models is consistent with the data resource logic and appropriately integrates with the DATA_DESCRIPTORS array used downstream.

vllm/README.md (7)

3-3: Past review concern already resolved.

The previous comment flagged an incorrect reference to "Unsloth workloads" in the vLLM README. This has been corrected—line 3 now properly references "vLLM workloads."


45-51: Static analysis false positive—example output is safe.

The gitleaks finding on line 48 detects a generic API key pattern in the example output block. This is expected and harmless; it's clearly a dummy key shown for documentation purposes to illustrate the deployment output format, not a real exposed credential.


1-8: Introduction is clear and accurate.

The overview effectively communicates the purpose, TEE capability, and key implementation detail that the script uses a pre-existing solution offer.


11-16: Prerequisites are clear and actionable.

The section correctly identifies required dependencies and provides clear setup instructions. The link to SPCTL documentation appears well-formed.


18-53: Order placement workflow is comprehensive and well-documented.

The interactive dialog steps are clearly explained with good examples. The enhancement to accept numeric offer IDs (line 35) is properly documented, aligning with the script improvements mentioned in the PR objectives.


55-62: API endpoints are accurately documented with proper reference.

The list of main endpoints is representative, and the link to the full vLLM API documentation is appropriate for readers needing more detailed information.


64-82: Dry run workflow is well-explained with practical examples.

The --suggest-only flag, dialog completion process, and example output are clearly documented. The generated command example (lines 77-82) provides a useful pattern for non-interactive usage.

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