diff --git a/CHANGELOG.md b/CHANGELOG.md index 06807f7..717bf33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Intelligent learning system for multi-agent coordination -- Cost optimization with budget enforcement -- Gradual production deployment guide +- **Web Assets Optimization**: Restructured landing page with minification pipeline + - Separated source (`assets/web/src/index.html`) from minified production version + - Automated minification script (`assets/web/minify.sh`) for version synchronization + - 32% compression achieved (26KB → 18KB) + - Bilingual content (English/Spanish) preserved with localStorage persistence + - Complete documentation in `assets/web/README.md` + +- **Infrastructure & Build System** + - Just recipes for CI/CD automation (50+ recipes organized by category) + - Parametrized help system for command discovery + - Integration with development workflows + +### Changed + +- **Code Quality Improvements** + - Removed unused imports from API and workflow modules (5+ files) + - Fixed 6 unnecessary `mut` keyword warnings in provider analytics + - Improved code patterns: converted verbose match to `matches!` macro (workflow/state.rs) + - Applied automatic clippy fixes for idiomatic Rust + +- **Documentation & Linting** + - Fixed markdown linting compliance in `assets/web/README.md` + - Proper code fence language specifications (MD040) + - Blank lines around code blocks (MD031) + - Table formatting with compact style (MD060) + +### Fixed + +- **Compilation & Testing** + - Eliminated all unused import warnings in vapora-backend + - Suppressed architectural dead code with appropriate attributes + - All 55 tests passing in vapora-backend + - 0 compilation errors, clean build output + +### Technical Details + +- **Architecture**: Refactored unused imports from workflow and API modules + - Tests moved to test-only scope for AgentConfig/RegistryConfig types + - Intentional suppression for components not yet integrated + - Future-proof markers for architectural patterns + +- **Build Status**: Clean compilation pipeline + - `cargo build -p vapora-backend` ✅ + - `cargo clippy -p vapora-backend` ✅ (5 nesting suggestions only) + - `cargo test -p vapora-backend` ✅ (55/55 passing) ## [1.2.0] - 2026-01-11 diff --git a/README.md b/README.md index b5fbdcc..8771b9b 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,12 @@ # Install dependencies cargo build + # Available Just recipes (50+ commands) + just help # Show all available recipes + just help build # Show build recipes + just help test # Show test recipes + just help ci # Show CI recipes + # Setup SurrealDB (Docker) docker run -d --name surrealdb \ -p 8000:8000 \ @@ -356,6 +362,13 @@ provisioning workflow run workflows/deploy-full-stack.yaml │ ├── vapora-analytics/ # Event pipeline + usage stats │ ├── vapora-worktree/ # Git worktree management │ └── vapora-doc-lifecycle/ # Documentation management + ├── assets/ + │ ├── web/ # Landing page (optimized + minified) + │ │ ├── src/index.html # Source (readable, 26KB) + │ │ ├── index.html # Production (minified, 18KB) + │ │ ├── minify.sh # Auto-minification script + │ │ └── README.md # Web assets guide + │ └── vapora.svg # Logo ├── kubernetes/ # K8s manifests (base, overlays, platform) ├── migrations/ # SurrealDB migrations ├── config/ # Configuration files (TOML) diff --git a/assets/web/README.md b/assets/web/README.md new file mode 100644 index 0000000..75458d6 --- /dev/null +++ b/assets/web/README.md @@ -0,0 +1,218 @@ +# Vapora Web Assets + +Web-based landing page and static content for Vapora. + +## Directory Structure + +```text +assets/web/ +├── src/ +│ └── index.html # Source HTML (readable, 26KB) +├── index.html # Minified/Production HTML (18KB) +└── README.md # This file +``` + +## Files + +### `src/index.html` - Source Version + +- **Purpose**: Development and maintenance +- **Size**: 26KB (uncompressed) +- **Content**: + - Full formatting and indentation + - Inline CSS and JavaScript + - Bilingual (English/Spanish) content + - Language-aware dynamic switching + - Interactive agent showcase + - Technology stack display + +**Use for:** +- Editing content +- Understanding structure +- Version control +- Making translations updates + +### `index.html` - Production Version + +- **Purpose**: Served to browsers (fast loading) +- **Size**: 18KB (32% compression) +- **Optimizations**: + - Removed all comments + - Compressed CSS (removed spaces, combined rules) + - Minified JavaScript (single line) + - Removed whitespace between tags + - Preserved all functionality + +**Use for:** +- Production web server +- CDN distribution +- Browser caching +- Fast load times + +## How to Use + +### Development + +Edit `src/index.html`: + +```bash +# Edit source file +nano assets/web/src/index.html + +# Regenerate minified version (script below) +``` + +### Update Minified Version + +When you update `src/index.html`, regenerate `index.html`: + +```bash +# Using the minification script (Perl) +perl -e ' +use strict; +use warnings; + +open(my $fh, "<", "assets/web/src/index.html") or die $!; +my $content = do { local $/; <$fh> }; +close($fh); + +# Remove comments +$content =~ s///gs; + +# Compress whitespace in style tags +$content =~ s/(]*>)(.*?)(<\/style>)/ + my $before = $1; + my $style = $2; + my $after = $3; + $style =~ s{\/\*.*?\*\/}{}gs; + $style =~ s{\s+}{ }gs; + $style =~ s{\s*([{}:;,>+~])\s*}{$1}gs; + $before . $style . $after; +/gies; + +# Compress whitespace in script tags +$content =~ s/(]*>)(.*?)(<\/script>)/ + my $before = $1; + my $script = $2; + my $after = $3; + $script =~ s{\/\/.*$}{}gm; + $script =~ s{\s+}{ }gs; + $script =~ s{\s*([{}();,])\s*}{$1}gs; + $before . $script . $after; +/gies; + +# Remove whitespace between tags +$content =~ s/>\s+", "assets/web/index.html") or die $!; +print $out $content; +close($out); + +print "✅ Minified version created\n"; +' +``` + +### Deployment + +Serve `index.html` from your web server: + +```bash + +# Using Rust +cargo install static-web-server +static-web-server -d assets/web/ + +# Using Python +python3 -m http.server --directory assets/web + +# Using Node.js +npx http-server assets/web + +# Using nginx +# Point root to assets/web/ +# Serve index.html as default +``` + +## Features + +✅ **Responsive Design** +- Mobile-first approach +- Flexbox layouts +- Media queries for mobile + +✅ **Performance** +- Inline CSS (no separate requests) +- Inline JavaScript (no blocking external scripts) +- Minimal dependencies (no frameworks) +- 18KB minified size + +✅ **Bilingual** +- English and Spanish +- LocalStorage persistence +- Data attributes for translations +- Dynamic language switching + +✅ **Modern CSS** +- CSS Gradients +- Animations (fadeInUp) +- Hover effects +- Grid layouts + +✅ **Styling** +- Vapora color scheme +- Gradient backgrounds +- Monospace font (JetBrains Mono) +- Smooth transitions + +## Content Sections + +1. **Hero** - Title, tagline, logo +2. **Problems** - 4 problems Vapora solves +3. **How It Works** - Feature overview +4. **Technology Stack** - Tech badges +5. **Available Agents** - Agent showcase (12 agents) +6. **CTA** - Call-to-action button +7. **Footer** - Credits and links + +## Translations + +All text content is bilingual. Edit data attributes in `src/index.html`: + +```html + +Hello +``` + +The JavaScript automatically updates based on selected language. + +## Maintenance + +- Source edits go in `src/index.html` +- Regenerate `index.html` when source changes +- Both files are versioned in git +- Keep them in sync + +## Git Workflow + +```bash +# Edit source +git add assets/web/src/index.html +git add assets/web/index.html +git commit -m "Update landing page content" +git push +``` + +## Compression Statistics + +|File|Size|Type| +|---|---|---| +|`src/index.html`|26KB|Source (readable)| +|`index.html`|18KB|Production (minified)| +|**Compression**|**32%**|**Saved 8.8KB**| + +--- + +**Last Updated**: 2026-01-11 +**Version**: 1.2.0 (matches Vapora release) diff --git a/assets/web/index.html b/assets/web/index.html new file mode 100644 index 0000000..181712f --- /dev/null +++ b/assets/web/index.html @@ -0,0 +1 @@ + Vapora
✅ v1.2.0
Vapora - Development Orchestration

Evaporate complexity

Development Flows

Specialized agentsorchestrate pipelines for design, implementation, testing, documentation and deployment. Agents learn from history and optimize costs automatically.100% self-hosted.

The 4 Problems It Solves

01

Context Switching

Developers jump between tools constantly. Vapora unifies everything in one intelligent system where context flows.

02

Knowledge Fragmentation

Decisions lost in threads, code scattered, docs unmaintained. RAG search and semantic indexing make knowledge discoverable.

03

Manual Coordination

Orchestrating code review, testing, documentation and deployment manually creates bottlenecks. Multi-agent workflows solve this.

04

Dev-Ops Friction

Handoffs between developers and operations lack visibility and context. Vapora maintains unified deployment readiness.

How It Works

🤖

Specialized Agents

Customizable agents for every role: architecture, development, testing, documentation, deployment and more. Agents learn from execution history with recency bias for continuous improvement.

🧠

Intelligent Orchestration

Agents coordinate automatically based on dependencies, context and expertise. Learning-based selection improves over time. Budget enforcement with automatic fallback ensures cost control.

☸️

Cloud-Native & Self-Hosted

Deploy to any Kubernetes cluster (EKS, GKE, AKS, vanilla K8s). Local Docker Compose development. Zero vendor lock-in.

Technology Stack

RustAxumSurrealDBNATS JetStreamLeptos WASMKubernetesPrometheusGrafanaKnowledge Graph

Available Agents

ArchitectSystem design
DeveloperCode implementation
CodeReviewerQuality assurance
TesterTests & benchmarks
DocumenterDocumentation
MarketerMarketing content
PresenterPresentations
DevOpsCI/CD deployment
MonitorHealth & alerting
SecurityAudit & compliance
ProjectManagerRoadmap tracking
DecisionMakerConflict resolution

Ready for intelligent orchestration?

Built with Rust 🦀 | Open Source | Self-Hosted

Explore on GitHub →

Vapora v1.2.0

Made with Vapora dreams and Rust reality ✨

Intelligent Development Orchestration | Multi-Agent Multi-IA Platform

\ No newline at end of file diff --git a/assets/web/minify.sh b/assets/web/minify.sh new file mode 100755 index 0000000..c42d733 --- /dev/null +++ b/assets/web/minify.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# Minify index.html from src/ to production version +# Usage: ./minify.sh + +set -e + +SRC_FILE="$(dirname "$0")/src/index.html" +OUT_FILE="$(dirname "$0")/index.html" +TEMP_FILE="${OUT_FILE}.tmp" + +if [ ! -f "$SRC_FILE" ]; then + echo "❌ Source file not found: $SRC_FILE" + exit 1 +fi + +echo "🔨 Minifying HTML..." +echo " Input: $SRC_FILE" +echo " Output: $OUT_FILE" + +perl -e " +use strict; +use warnings; + +open(my \$fh, '<', '$SRC_FILE') or die \$!; +my \$content = do { local \$/; <\$fh> }; +close(\$fh); + +# Remove HTML comments +\$content =~ s///gs; + +# Compress CSS (remove spaces and comments) +\$content =~ s/(]*>)(.*?)(<\/style>)/ + my \$before = \$1; + my \$style = \$2; + my \$after = \$3; + \$style =~ s{\/\*.*?\*\/}{}gs; + \$style =~ s{\s+}{ }gs; + \$style =~ s{\s*([{}:;,>+~])\s*}{\$1}gs; + \$before . \$style . \$after; +/gies; + +# Compress JavaScript (remove comments and extra spaces) +\$content =~ s/(]*>)(.*?)(<\/script>)/ + my \$before = \$1; + my \$script = \$2; + my \$after = \$3; + \$script =~ s{\/\/.*\$}{}gm; + \$script =~ s{\s+}{ }gs; + \$script =~ s{\s*([{}();,])\s*}{\$1}gs; + \$before . \$script . \$after; +/gies; + +# Remove whitespace between tags +\$content =~ s/>\s+', '$TEMP_FILE') or die \$!; +print \$out \$content; +close(\$out); +" || { + echo "❌ Minification failed" + rm -f "$TEMP_FILE" + exit 1 +} + +mv "$TEMP_FILE" "$OUT_FILE" + +# Show statistics +original=$(wc -c < "$SRC_FILE") +minified=$(wc -c < "$OUT_FILE") +saved=$((original - minified)) +percent=$((saved * 100 / original)) + +echo "" +echo "✅ Minification complete!" +echo "" +echo "📊 Compression statistics:" +printf " Original: %6d bytes\n" "$original" +printf " Minified: %6d bytes\n" "$minified" +printf " Saved: %6d bytes (%d%%)\n" "$saved" "$percent" +echo "" +echo "✅ $OUT_FILE is ready for production" diff --git a/assets/web/src/index.html b/assets/web/src/index.html new file mode 100644 index 0000000..959a811 --- /dev/null +++ b/assets/web/src/index.html @@ -0,0 +1,868 @@ + + + + + + + Vapora + + + + + +
+ +
+ + +
+ +
+
+ ✅ v1.2.0 +
+ Vapora - Development Orchestration +
+

Evaporate complexity

+

+ Development Flows +

+

+ Specialized agents + orchestrate pipelines for design, implementation, testing, + documentation and deployment. Agents learn from history and optimize + costs automatically. + 100% self-hosted. + +

+
+ +
+

+ The 4 Problems It Solves +

+
+
+
01
+

+ Context Switching +

+

+ Developers jump between tools constantly. Vapora unifies + everything in one intelligent system where context flows. +

+
+
+
02
+

+ Knowledge Fragmentation +

+

+ Decisions lost in threads, code scattered, docs unmaintained. RAG + search and semantic indexing make knowledge discoverable. +

+
+
+
03
+

+ Manual Coordination +

+

+ Orchestrating code review, testing, documentation and deployment + manually creates bottlenecks. Multi-agent workflows solve this. +

+
+
+
04
+

+ Dev-Ops Friction +

+

+ Handoffs between developers and operations lack visibility and + context. Vapora maintains unified deployment readiness. +

+
+
+
+ +
+

+ How It Works +

+
+
+
🤖
+

+ Specialized Agents +

+

+ Customizable agents for every role: architecture, development, + testing, documentation, deployment and more. Agents learn from + execution history with recency bias for continuous improvement. +

+
+
+
🧠
+

+ Intelligent Orchestration +

+

+ Agents coordinate automatically based on dependencies, context and + expertise. Learning-based selection improves over time. Budget + enforcement with automatic fallback ensures cost control. +

+
+
+
☸️
+

+ Cloud-Native & Self-Hosted +

+

+ Deploy to any Kubernetes cluster (EKS, GKE, AKS, vanilla K8s). + Local Docker Compose development. Zero vendor lock-in. +

+
+
+
+ +
+

+ Technology Stack +

+
+ Rust + Axum + SurrealDB + NATS JetStream + Leptos WASM + Kubernetes + Prometheus + Grafana + Knowledge Graph +
+
+ +
+

+ Available Agents +

+
+
+ ArchitectSystem design +
+
+ DeveloperCode implementation +
+
+ CodeReviewerQuality assurance +
+
+ TesterTests & benchmarks +
+
+ DocumenterDocumentation +
+
+ MarketerMarketing content +
+
+ PresenterPresentations +
+
+ DevOpsCI/CD deployment +
+
+ MonitorHealth & alerting +
+
+ SecurityAudit & compliance +
+
+ ProjectManagerRoadmap tracking +
+
+ DecisionMakerConflict resolution +
+
+
+ +
+

+ Ready for intelligent orchestration? +

+

+ Built with Rust 🦀 | Open Source | Self-Hosted +

+ Explore on GitHub → +
+ +
+

Vapora v1.2.0

+

+ Made with Vapora dreams and Rust reality ✨ +

+

+ Intelligent Development Orchestration | Multi-Agent Multi-IA Platform +

+
+
+ + + + diff --git a/assets/web/src/vapora.svg b/assets/web/src/vapora.svg new file mode 100644 index 0000000..cdcdff4 --- /dev/null +++ b/assets/web/src/vapora.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VAPORA + + + + VAPORA + + + + + + VAPORA + + + + + Evaporate complexity + + + + + + + + + + + + + + + + diff --git a/assets/web/vapora.svg b/assets/web/vapora.svg new file mode 100644 index 0000000..cdcdff4 --- /dev/null +++ b/assets/web/vapora.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VAPORA + + + + VAPORA + + + + + + VAPORA + + + + + Evaporate complexity + + + + + + + + + + + + + + + +