mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-25 14:53:34 +00:00
* refactor: split large files and consolidate test stubs for contributor velocity - Extract 7 Database sub-traits (ConversationStore, JobStore, SandboxStore, RoutineStore, ToolFailureStore, SettingsStore, WorkspaceStore) with Database as a supertrait combining them all - Split libsql_backend.rs (2769 lines) into src/db/libsql/ directory with one file per sub-trait implementation - Split config.rs (1753 lines) into src/config/ directory with 16 domain files - Consolidate 3 duplicate test LLM stubs into shared StubLlm in src/testing.rs - Split server.rs handlers into src/channels/web/handlers/ directory - Extract main.rs init phases into AppBuilder (src/app.rs) - Add developer setup script (scripts/dev-setup.sh) Co-Authored-By: Claude Opus 4.6 <[email protected]> * refactor: move heartbeat test from examples/ to tests/ Convert standalone example binary into a proper #[ignore] integration test, matching the convention of the other integration tests. Co-Authored-By: Claude Opus 4.6 <[email protected]> * style: fix rustfmt formatting for CI Co-Authored-By: Claude Opus 4.6 <[email protected]> * fix: address PR review comments from Copilot - tunnel.rs: replace .ok().flatten() with ? to propagate env var errors - secrets.rs: remove misleading "process-wide cache" comment - database.rs: use uppercase "DATABASE_URL" in error key - testing.rs: gate harness tests with #[cfg(feature = "libsql")] Co-Authored-By: Claude Opus 4.6 <[email protected]> --------- Co-authored-by: Illia Polosukhin <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
57 lines
1.7 KiB
Bash
Executable File
57 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Developer setup script for IronClaw.
|
|
#
|
|
# Gets a fresh checkout ready for development without requiring
|
|
# Docker, PostgreSQL, or any external services.
|
|
#
|
|
# Usage:
|
|
# ./scripts/dev-setup.sh
|
|
#
|
|
# After running, you can:
|
|
# cargo check # default features (postgres + libsql)
|
|
# cargo test # default test suite (uses libsql temp DB)
|
|
# cargo test --all-features # full test suite
|
|
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
echo "=== IronClaw Developer Setup ==="
|
|
echo ""
|
|
|
|
# 1. Check rustup
|
|
if ! command -v rustup &>/dev/null; then
|
|
echo "ERROR: rustup not found. Install from https://rustup.rs"
|
|
exit 1
|
|
fi
|
|
echo "[1/5] rustup found: $(rustup --version 2>/dev/null | head -1)"
|
|
|
|
# 2. Add WASM target (required by build.rs for channel compilation)
|
|
echo "[2/5] Adding wasm32-wasip2 target..."
|
|
rustup target add wasm32-wasip2
|
|
|
|
# 3. Install wasm-tools (required by build.rs for WASM component model)
|
|
echo "[3/5] Installing wasm-tools..."
|
|
if command -v wasm-tools &>/dev/null; then
|
|
echo " wasm-tools already installed: $(wasm-tools --version)"
|
|
else
|
|
cargo install wasm-tools --locked
|
|
fi
|
|
|
|
# 4. Verify the project compiles
|
|
echo "[4/5] Running cargo check..."
|
|
cargo check
|
|
|
|
# 5. Run tests using libsql temp DB (no Docker/external DB needed)
|
|
echo "[5/5] Running tests (no external DB required)..."
|
|
cargo test
|
|
|
|
echo ""
|
|
echo "=== Setup complete ==="
|
|
echo ""
|
|
echo "Quick start:"
|
|
echo " cargo run # Run with default features"
|
|
echo " cargo test # Test suite (libsql temp DB)"
|
|
echo " cargo test --all-features # Full test suite"
|
|
echo " cargo clippy --all-features # Lint all code"
|