Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
e92452f
feat: Add basic MVP for agent
SonnyTaylor Dec 17, 2025
2707390
feat: Implement agent system with command execution, memory managemen…
SonnyTaylor Dec 17, 2025
560158d
feat: Enhance agent settings with support for multiple API keys and n…
SonnyTaylor Dec 17, 2025
4a60a05
feat: Add agent chat service with multi-provider support and streamin…
SonnyTaylor Dec 17, 2025
352428d
feat: Add 'agent' subdirectory to data directory structure and improv…
SonnyTaylor Dec 17, 2025
1d399b9
feat: Refactor AgentPage layout for improved responsiveness and user …
SonnyTaylor Dec 17, 2025
09eb8d0
feat: Update DeepSeek, OpenRouter, Ollama, and Custom provider implem…
SonnyTaylor Dec 17, 2025
ddf3489
feat: Improve error handling in CommandApprovalPanel and reset pendin…
SonnyTaylor Dec 17, 2025
02e07c0
feat: Implement inline command approval UI and enhance agent tool han…
SonnyTaylor Dec 18, 2025
5d6a629
feat: enhance ChatMessage component with ReactMarkdown for improved c…
SonnyTaylor Dec 18, 2025
3404ba7
feat: implement agent activity tracking with new components and types…
SonnyTaylor Dec 18, 2025
b1770c2
feat: add new agent components and enhance functionality for file ope…
SonnyTaylor Dec 18, 2025
729962b
feat: enhance tool call validation and error handling in AgentPage co…
SonnyTaylor Dec 18, 2025
406c7fe
feat: implement conversation management with CRUD operations and UI c…
SonnyTaylor Dec 18, 2025
035e1ec
feat: implement approval handling for HITL tools with YOLO mode auto-…
SonnyTaylor Dec 18, 2025
367db88
feat: reorder assistant message content and activities for improved d…
SonnyTaylor Dec 18, 2025
451d7de
feat: enhance agent memory system with portable memory design and sma…
SonnyTaylor Dec 19, 2025
52ac73b
refactor: simplify agent sidebar and remove unused components
SonnyTaylor Dec 19, 2025
32f1458
feat: add MCP server for remote LLM control with HTTP interface
SonnyTaylor Dec 19, 2025
44eb274
feat: implement JSON-RPC protocol for MCP server with enhanced tool m…
SonnyTaylor Dec 19, 2025
4c453f9
polish: agent system overhaul - theme, tools, types, UX
SonnyTaylor Feb 7, 2026
447de49
feat(agent): remove memory system, fix message grouping & conversatio…
SonnyTaylor Feb 7, 2026
cb18569
Add MCP client support, fix sequential execution, add stop button
SonnyTaylor Feb 7, 2026
44b341e
feat(agent): enhance tool call validation and sequential execution in…
SonnyTaylor Feb 7, 2026
cfd8dd4
fix(agent): fix critical bugs, extract shared logic, improve chat UX
SonnyTaylor Feb 9, 2026
c429626
feat: Add file upload and generation tools to agent system
SonnyTaylor Feb 15, 2026
d8f0685
fix: Update agent_read_file to find uploaded files by original name
SonnyTaylor Feb 15, 2026
06fdf29
fix(agent): auto-create parent directories when writing files
SonnyTaylor Feb 15, 2026
409e473
feat: enhance agent tooling with nanocode-inspired tools
SonnyTaylor Feb 15, 2026
61d8fed
feat: add edit file functionality and update agent activity types
SonnyTaylor Feb 15, 2026
e032bd3
feat: improve agent UX, startup manager, event log search, and networ…
SonnyTaylor Feb 26, 2026
ec03f81
feat: add find_exe tool, recursive program discovery, and parameteriz…
SonnyTaylor Feb 26, 2026
914e2e0
fix: smart auto-scroll and lazy conversation creation
SonnyTaylor Feb 26, 2026
0de63bb
feat: implement 5 new automated diagnostic services
SonnyTaylor Feb 27, 2026
d2d7999
Improve service runner UI and fix battery report parsing
SonnyTaylor Feb 27, 2026
e804170
Fix runner: task completion tracking, card padding, SpeedtestRenderer…
SonnyTaylor Feb 27, 2026
2e872a5
feat: Add agentic servicing tools to the agent
SonnyTaylor Feb 27, 2026
18dbd30
feat: Add parallel task execution
SonnyTaylor Feb 27, 2026
a83856e
feat: Implement AI features for program search and script generation
SonnyTaylor Feb 27, 2026
24c0132
feat: Enhance CameraTestTab with video diagnostics and fullscreen sup…
SonnyTaylor Feb 27, 2026
1827b76
feat: Add printable system info component and print functionality to …
SonnyTaylor Feb 27, 2026
4cc1444
feat: Add gamepad tester, disk health dashboard, and restore point ma…
SonnyTaylor Feb 27, 2026
55c7898
feat: Improve servicing feature stability, UX, and add new features
SonnyTaylor Feb 27, 2026
ec9387a
feat: Add agent loop queue, heartbeat watchdog, multi-HITL resolution…
SonnyTaylor Feb 28, 2026
2bacb44
fix: Add error boundaries and defensive guards to prevent blank scree…
SonnyTaylor Feb 28, 2026
e7a4aab
feat: Enhance Claude theme with Anthropic brand styling
SonnyTaylor Mar 1, 2026
ff5258c
feat: Add Anthropic brand fonts to Claude theme
SonnyTaylor Mar 1, 2026
a5018bd
fix: Rebuild Claude theme from actual claude.ai computed color values
SonnyTaylor Mar 1, 2026
818d1e0
fix: Replace Lora serif with system-ui sans-serif in Claude theme
SonnyTaylor Mar 1, 2026
1813eb2
fix: Remove leftover Lora font vars from Claude dark mode block
SonnyTaylor Mar 1, 2026
23a5abe
feat: add USB Stability Test Service Renderer with detailed performan…
SonnyTaylor Mar 3, 2026
f7951ea
fix: resolve all compiler and PostCSS warnings
SonnyTaylor Mar 4, 2026
8da657c
feat: add Touch/Stylus tab, more display patterns, enhanced tone gene…
SonnyTaylor Mar 4, 2026
410af87
fix: update tab grid to grid-cols-9 for new Touch tab
SonnyTaylor Mar 4, 2026
d769aff
feat: redesign System Info page with WMI hardware details and improve…
SonnyTaylor Mar 4, 2026
9d2cbbf
fix: use centralized program resolver for smartctl detection in disk …
SonnyTaylor Mar 4, 2026
10f2acf
fix: resolve agent tool calls reverting to 'Running' after completion
SonnyTaylor Mar 4, 2026
b9f4aa4
feat: require administrator privileges for portable exe
SonnyTaylor Mar 4, 2026
52a6530
fix: only require admin elevation for release builds
SonnyTaylor Mar 4, 2026
d0afea2
fix: consolidate duplicate battery services into single battery-report
SonnyTaylor Mar 4, 2026
39d0eac
fix: reduce cramped feel on Service Queue page
SonnyTaylor Mar 4, 2026
2b8f4e3
feat: add skip button to business mode start dialog and refactor serv…
SonnyTaylor Mar 4, 2026
1815ddf
feat: add AI-powered Startup Optimizer service
SonnyTaylor Mar 5, 2026
db54390
fix: reduce padding and font sizes in service renderers and report view
SonnyTaylor Mar 5, 2026
13c54d3
chore: migrate from pnpm to bun
SonnyTaylor Mar 8, 2026
3236a66
fix: reduce page padding and redesign service queue with animations
SonnyTaylor Mar 16, 2026
691ff67
perf: move blocking IPC commands to spawn_blocking
SonnyTaylor Mar 16, 2026
b3dab68
feat: add Forge, Cobalt, Circuit, Oxide, Neon Workshop themes
SonnyTaylor Mar 17, 2026
e9f52ce
feat: add USB Shield logo and update app metadata
SonnyTaylor Mar 17, 2026
2a5764a
feat: add service dependencies, restore point service, and standardiz…
SonnyTaylor Mar 17, 2026
883d1e4
fix: agent tool call status revert, unlimited turns, and HITL lookup …
SonnyTaylor Mar 18, 2026
11000af
docs: update README, agent docs, CI for bun migration and agent refactor
SonnyTaylor Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"mcpServers": {
"shadcn": {
"command": "npx",
"args": ["shadcn@latest", "mcp"]
},
"ai-elements": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://registry.ai-sdk.dev/api/mcp"]
}
}
}
57 changes: 57 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: CI

on:
push:
branches: [master, "feature/**"]
pull_request:
branches: [master]

env:
CARGO_INCREMENTAL: 0
RUST_BACKTRACE: short

jobs:
frontend:
name: Frontend Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: bun install --frozen-lockfile

- name: TypeScript check
run: bunx tsc --noEmit

- name: Vite build
run: bun run build

rust:
name: Rust Check
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
src-tauri/target/
key: ${{ runner.os }}-cargo-ci-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-ci-

- name: Cargo check
working-directory: src-tauri
run: cargo check --all-targets
207 changes: 207 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
name: Release

on:
push:
tags:
- "v*.*.*"
workflow_dispatch:
inputs:
version:
description: 'Release version (e.g., 0.2.0) — omit the "v" prefix'
required: true
type: string
prerelease:
description: "Mark as pre-release"
required: false
type: boolean
default: false

permissions:
contents: write

env:
CARGO_INCREMENTAL: 0
RUST_BACKTRACE: short

jobs:
build-and-release:
name: Build & Release
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Determine version
id: version
shell: bash
run: |
if [ "${{ github.event_name }}" = "push" ]; then
VERSION="${GITHUB_REF#refs/tags/v}"
TAG_NAME="${GITHUB_REF#refs/tags/}"
else
VERSION="${{ github.event.inputs.version }}"
TAG_NAME="v${VERSION}"
fi
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
echo "tag_name=${TAG_NAME}" >> "$GITHUB_OUTPUT"
echo "📦 Building version: ${VERSION} (tag: ${TAG_NAME})"

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: echo "STORE_PATH=$(pnpm store path)" >> "$GITHUB_OUTPUT"

- name: Cache pnpm store
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
src-tauri/target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-

- name: Install frontend dependencies
run: pnpm install --frozen-lockfile

- name: Sync version numbers
shell: bash
run: |
VERSION="${{ steps.version.outputs.version }}"

# Update package.json
node -e "
const fs = require('fs');
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
pkg.version = '${VERSION}';
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
"

# Update tauri.conf.json
node -e "
const fs = require('fs');
const conf = JSON.parse(fs.readFileSync('src-tauri/tauri.conf.json', 'utf8'));
conf.version = '${VERSION}';
fs.writeFileSync('src-tauri/tauri.conf.json', JSON.stringify(conf, null, 2) + '\n');
"

# Update Cargo.toml
sed -i "s/^version = \".*\"/version = \"${VERSION}\"/" src-tauri/Cargo.toml

echo "✅ Synced all version files to ${VERSION}"

- name: Build Tauri app
run: pnpm tauri build

- name: Prepare release artifacts
id: artifacts
shell: bash
run: |
VERSION="${{ steps.version.outputs.version }}"

# Find NSIS installer
INSTALLER=$(find src-tauri/target/release/bundle/nsis -name "*.exe" -type f | head -1)
INSTALLER_NAME="rustservice-${VERSION}-x64-setup.exe"
cp "${INSTALLER}" "${INSTALLER_NAME}"
echo "installer=${INSTALLER_NAME}" >> "$GITHUB_OUTPUT"

# Portable exe
PORTABLE_NAME="rustservice-${VERSION}-portable.exe"
cp "src-tauri/target/release/rustservice.exe" "${PORTABLE_NAME}"
echo "portable=${PORTABLE_NAME}" >> "$GITHUB_OUTPUT"

echo "📦 Artifacts ready:"
echo " Installer: ${INSTALLER_NAME}"
echo " Portable: ${PORTABLE_NAME}"

- name: Generate changelog
id: changelog
shell: bash
run: |
VERSION="${{ steps.version.outputs.version }}"
TAG="${{ steps.version.outputs.tag_name }}"

# Get previous tag
PREV_TAG=$(git tag --sort=-v:refname | grep -v "^${TAG}$" | head -1)

{
echo "body<<CHANGELOG_EOF"
echo "## What's in this release"
echo ""

if [ -n "${PREV_TAG}" ]; then
echo "### Changes since ${PREV_TAG}"
echo ""
git log "${PREV_TAG}..HEAD" --pretty=format:"- %s (%h)" --no-merges 2>/dev/null || echo "- Initial release"
else
echo "### Initial Release"
echo ""
git log --pretty=format:"- %s (%h)" --no-merges -20 2>/dev/null || echo "- Initial release"
fi

echo ""
echo ""
echo "---"
echo ""
echo "### Downloads"
echo ""
echo "| File | Description |"
echo "|------|-------------|"
echo "| \`rustservice-${VERSION}-x64-setup.exe\` | Windows installer (recommended) |"
echo "| \`rustservice-${VERSION}-portable.exe\` | Portable executable (no install needed) |"
echo ""
echo "> **Note:** The portable executable requires WebView2 Runtime to be installed on the target system."
echo "CHANGELOG_EOF"
} >> "$GITHUB_OUTPUT"

- name: Determine pre-release status
id: prerelease
shell: bash
run: |
VERSION="${{ steps.version.outputs.version }}"
if [[ "${{ github.event.inputs.prerelease }}" == "true" ]] || [[ "${VERSION}" =~ (alpha|beta|rc|dev) ]]; then
echo "is_prerelease=true" >> "$GITHUB_OUTPUT"
else
echo "is_prerelease=false" >> "$GITHUB_OUTPUT"
fi

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.tag_name }}
name: RustService ${{ steps.version.outputs.tag_name }}
body: ${{ steps.changelog.outputs.body }}
draft: false
prerelease: ${{ steps.prerelease.outputs.is_prerelease }}
generate_release_notes: true
files: |
${{ steps.artifacts.outputs.installer }}
${{ steps.artifacts.outputs.portable }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading
Loading