Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
19d89f2
feat: add AISettings component and related AI service functionality
Yashh56 Jun 2, 2026
06f2217
feat: add shared types and interfaces for AI integration layer and pr…
Yashh56 Jun 2, 2026
0eef9b9
feat: add prompt builders for chart recommendation, query explanation…
Yashh56 Jun 2, 2026
3b94bea
feat: implement AI provider classes for Anthropic, Gemini, Groq, Mist…
Yashh56 Jun 2, 2026
532194a
feat: implement AIHandlers and AIService classes for enhanced AI prov…
Yashh56 Jun 2, 2026
0d02221
feat(ai): restructure AI integration and update imports
Yashh56 Jun 2, 2026
068d0f3
feat(ai): add AIHandlers and register AI-related RPC methods
Yashh56 Jun 2, 2026
2f1d381
feat: implement AI-powered chart suggestions and interactive query re…
Yashh56 Jun 3, 2026
079dac2
feat(ai): add AI suggestion functionality to ChartVisualization and i…
Yashh56 Jun 3, 2026
958f31d
feat(ai): implement AI history management and caching for analysis re…
Yashh56 Jun 4, 2026
d01903b
feat(ai): add AI history management components and integrate into set…
Yashh56 Jun 4, 2026
5242002
Merge pull request #72 from Yashh56/feat/ai-int
Yashh56 Jun 4, 2026
0040077
feat: enhance project management features with import/export function…
Yashh56 Jun 5, 2026
0f01edf
feat(project): integrate project auto-creation on database addition a…
Yashh56 Jun 5, 2026
e6525da
feat: update font families to IBM Plex Sans and Mono in stylesheets
Yashh56 Jun 5, 2026
07c9536
fix: disable text selection
Yashh56 Jun 5, 2026
c4c1da0
fix: fixed ScrollArea in GitStatusPanel
Yashh56 Jun 5, 2026
9a28023
fix: import project component
Yashh56 Jun 6, 2026
fc3e9be
Merge pull request #73 from Yashh56/feat/ai-int
Yashh56 Jun 6, 2026
bdda5f7
feat: add BridgeStatus component for monitoring connection state and …
Yashh56 Jun 7, 2026
9fdaaf3
feat: enhance TitleBar with BridgeStatus component and improved windo…
Yashh56 Jun 7, 2026
d4e650d
fix: fixed WhatsNewDialog component and configure Tauri release workflow
Yashh56 Jun 7, 2026
b61cebd
feat: implement theme transition effects and settings dialog in TitleBar
Yashh56 Jun 8, 2026
67b8cb2
refactor: remove unused Preview component from Settings page
Yashh56 Jun 8, 2026
1d264e2
feat: implement SettingsDialog component and update related component…
Yashh56 Jun 8, 2026
f20c831
feat: enhance BridgeStatus component with button for reconnect and up…
Yashh56 Jun 8, 2026
8ac1429
Merge pull request #74 from Yashh56/feat/ai-int
Yashh56 Jun 8, 2026
2f5412b
docs: add documentation for bridge architecture
Yashh56 Jun 8, 2026
6c54cd6
feat: increase max tokens to 4096 for AI provider models
Yashh56 Jun 8, 2026
ffdbaa2
feat: export resolvePkgNativeBindingPath function and update AIHistor…
Yashh56 Jun 8, 2026
1321b75
docs: update CONTRIBUTING.md with build instructions for bridge packa…
Yashh56 Jun 9, 2026
f2daab7
feat(migration): enhance migration handling with sync and lock features
Yashh56 Jun 12, 2026
9f47b98
feat(migrations): refactor migration directory handling and enhance m…
Yashh56 Jun 12, 2026
4510686
feat: update uuid package to version 14.0.0 and add types for uuid; e…
Yashh56 Jun 12, 2026
ae7c51e
feat: implement migration analysis and sync features; add SQL preview…
Yashh56 Jun 12, 2026
6140afd
feat: enhance migration handling and UI integration; add migration sy…
Yashh56 Jun 12, 2026
7157d41
fix: migration status card and sheet
Yashh56 Jun 13, 2026
2902694
feat: added format time functions
Yashh56 Jun 13, 2026
e0b1e9a
fix: removed the @types/uuid for test cases
Yashh56 Jun 13, 2026
b5f0459
refactor: fixed test case and added docker command in md and cleaned …
Yashh56 Jun 13, 2026
87d7224
fix: syncSchemaFile expects a filesystem path
Yashh56 Jun 14, 2026
bdfbd0b
fix: Migrations management and creation
Yashh56 Jun 14, 2026
30f3f2c
fix: migration-lock.json sync commit issue
Yashh56 Jun 14, 2026
97f6861
feat: impl handleGenerateSQL
Yashh56 Jun 14, 2026
390cc55
Merge pull request #75 from Yashh56/feat/ai-int
Yashh56 Jun 14, 2026
e060ef7
refactor: Refactored the / page
Yashh56 Jun 14, 2026
40eee20
feat: add project link/unlink methods
Yashh56 Jun 15, 2026
669201a
feat: UI Implemented project link/unlink detection while deleting DB
Yashh56 Jun 15, 2026
697a778
chore: update the FEATURES.md
Yashh56 Jun 15, 2026
562f851
Merge pull request #76 from Yashh56/feat/ai-int
Yashh56 Jun 15, 2026
7951842
chore: update version from 0.7.0-beta-1 to 0.9.0-rc-1
Yashh56 Jun 15, 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
6 changes: 0 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,6 @@ jobs:
with:
tagName: v__VERSION__
releaseName: "RelWave v__VERSION__"
# Let GitHub auto-generate the changelog from merged PRs and commits
# since the last release tag. The generated markdown is injected into
# latest.json as the `notes` field, which the in-app updater reads and
# displays in the What's New dialog after update.
releaseBody: ""
generateReleaseNotes: true
releaseDraft: true
prerelease: false
args: ${{ matrix.args }}
17 changes: 17 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,27 @@ pnpm --dir bridge install
pnpm tauri dev
```

To build the bridge package for your platform, run one of these from the repo root:

```bash
cd bridge
pnpm build:pkg:win
```

or on Linux:

```bash
cd bridge
pnpm build:pkg:linux
```

If you are working on bridge-related code, you can run bridge tests directly:

```bash
cd bridge

docker compose -f docker-compose.test.yml up -d

pnpm test
```

Expand Down
29 changes: 28 additions & 1 deletion FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,12 @@ The main landing page for managing database connections. Features a clean, IDE-i
**Connection Management**

- Add new database connections with detailed configuration (name, type, host, port, user, password, SSL options)
- **SSH Tunneling** — connect securely to remote databases via SSH tunnels using private keys and passphrases
- **SQLite support** — connect to local `.db`, `.sqlite`, `.sqlite3`, `.s3db` files via native file picker
- Connect via URL — paste connection strings like `postgres://user:pass@host:port/db`
- Auto-parse URLs to populate connection form fields (including `sqlite://` protocol)
- **Safe connection deletion** — intercepts deletion to prevent accidental loss of associated project data (schemas, queries, diagrams)
- **Unlinked project management** — view, delete, or relink orphaned projects to new connections directly from the sidebar
- Delete existing database connections
- Test connections with real-time feedback
- Connection status indicators for all databases
Expand Down Expand Up @@ -376,6 +379,30 @@ RelWave includes native Git integration powered by `simple-git`, providing a ful

---

## AI Features and Providers

RelWave integrates deeply with multiple Large Language Models (LLMs) to provide intelligent database assistance, schema analysis, and query explanations.

### Supported Providers
The application supports a flexible, multi-provider AI architecture:
- **OpenAI** (GPT-4o, GPT-4 Turbo, etc.)
- **Anthropic** (Claude 3.5 Sonnet, Opus, etc.)
- **Mistral** (Mistral Large, Mistral Small, etc.)
- **Groq** (Llama 3, Mixtral, etc. for ultra-fast inference)
- **Ollama** (Local models like Llama 3, Phi-3, Mistral)
- **Google Gemini** (Gemini 1.5 Pro, Flash)

### AI Capabilities
| Feature | Description |
| ------- | ----------- |
| **Schema Analysis** | Analyzes the structure of your database, identifying relationships, potential optimizations, and providing a human-readable summary of complex schemas. Uses a highly optimized, token-efficient dense schema representation. |
| **Query Explanation** | Breaks down complex SQL queries into plain English, explaining joins, filters, performance implications, and the overall intent of the query. |
| **Local AI Support** | Full privacy and zero-cost inference available through local Ollama integration, ensuring sensitive database schemas never leave your machine. |
| **Context Aware** | The AI system automatically receives the dialect (PostgreSQL, MySQL, SQLite) and the relevant database schema context to provide accurate, dialect-specific responses. |
| **High Token Capacity** | Configured with large output windows (up to 4096 tokens) to handle extensive schema analyses and complex query breakdowns without truncation. |

---

## Visual Tools

### Chart Visualization
Expand Down Expand Up @@ -642,6 +669,6 @@ All database and Git operations use a JSON-RPC protocol over stdin/stdout. The b

---

**Last Updated:** May 2026
**Last Updated:** June 2026

This document is maintained alongside the application and updated with each release.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

_A high-performance, cross-platform desktop suite for developers who demand more from their database tools._

[![Version](https://img.shields.io/badge/version-0.7.0--beta.1-0066ff?style=for-the-badge&logo=semver)](https://github.com/Relwave/relwave-app/releases)
[![Version](https://img.shields.io/badge/version-0.9.0--rc.1-0066ff?style=for-the-badge&logo=semver)](https://github.com/Relwave/relwave-app/releases)
[![License](https://img.shields.io/badge/license-MIT-00cc66?style=for-the-badge)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux-lightgray?style=for-the-badge&logo=windows)](https://github.com/Relwave/relwave-app/releases)
[![Tauri](https://img.shields.io/badge/built%20with-Tauri-FFC131?style=for-the-badge&logo=tauri)](https://tauri.app/)
Expand Down
12 changes: 9 additions & 3 deletions bridge/__tests__/projectStore.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -257,9 +257,12 @@ describe("ProjectStore", () => {
name: "users",
type: "BASE TABLE",
columns: [
{ name: "id", type: "integer", nullable: false, isPrimaryKey: true, isForeignKey: false, defaultValue: null, isUnique: true },
{ name: "email", type: "varchar(255)", nullable: false, isPrimaryKey: false, isForeignKey: false, defaultValue: null, isUnique: true },
{ name: "id", type: "integer", nullable: false, isPrimaryKey: true, isForeignKey: false, defaultValue: null, isUnique: true, isSerial: true, ordinalPosition: 1 },
{ name: "email", type: "varchar(255)", nullable: false, isPrimaryKey: false, isForeignKey: false, defaultValue: null, isUnique: true, isSerial: false, ordinalPosition: 2 },
],
indexes: [],
foreignKeys: [],
checks: [],
},
],
},
Expand Down Expand Up @@ -301,8 +304,11 @@ describe("ProjectStore", () => {
name: "posts",
type: "BASE TABLE",
columns: [
{ name: "id", type: "integer", nullable: false, isPrimaryKey: true, isForeignKey: false, defaultValue: null, isUnique: true },
{ name: "id", type: "integer", nullable: false, isPrimaryKey: true, isForeignKey: false, defaultValue: null, isUnique: true, isSerial: true, ordinalPosition: 1 },
],
indexes: [],
foreignKeys: [],
checks: [],
},
],
},
Expand Down
17 changes: 12 additions & 5 deletions bridge/package.json
Original file line number Diff line number Diff line change
@@ -1,32 +1,39 @@
{
"name": "relwave-bridge",
"version": "0.7.0-beta-1",
"version": " 0.9.0-rc-1",
"type": "commonjs",
"main": "dist/index.cjs",
"scripts": {
"dev": "ts-node-dev --respawn --transpile-only src/index.ts",
"start": "node dist/index.cjs",
"build": "tsc --project tsconfig.json && esbuild src/index.ts --bundle --platform=node --outfile=dist/index.cjs --format=cjs --packages=external",
"build:bundle-for-pkg": "esbuild src/index.ts --bundle --platform=node --outfile=dist/index.bundled.cjs --format=cjs --external:better-sqlite3 --external:@napi-rs/keyring --external:ssh2 --external:cpu-features --external:pg-native",
"copy:native": "node scripts/copy-native.js",
"rebuild:native": "npm rebuild better-sqlite3",
"build:pkg:win": "npm run build && npm run rebuild:native && npm run copy:native && npx @yao-pkg/pkg . --target node22-win-x64 --output ../src-tauri/resources/bridge-x86_64-pc-windows-msvc.exe",
"build:pkg:linux": "npm run build && npm run rebuild:native && npm run copy:native && npx @yao-pkg/pkg . --target node22-linux-x64 --output ../src-tauri/resources/bridge-x86_64-unknown-linux-gnu",
"build:pkg:win": "npm run build && npm run build:bundle-for-pkg && npm run rebuild:native && npm run copy:native && npx @yao-pkg/pkg dist/index.bundled.cjs --target node22-win-x64 --output ../src-tauri/resources/bridge-x86_64-pc-windows-msvc.exe",
"build:pkg:linux": "npm run build && npm run build:bundle-for-pkg && npm run rebuild:native && npm run copy:native && npx @yao-pkg/pkg dist/index.bundled.cjs --target node22-linux-x64 --output ../src-tauri/resources/bridge-x86_64-unknown-linux-gnu",
"test": "jest",
"test:watch": "jest --watchAll --detectOpenHandles"
},
"dependencies": {
"@anthropic-ai/sdk": "^0.100.1",
"@google/generative-ai": "^0.24.1",
"@jest/globals": "^30.2.0",
"@mistralai/mistralai": "^2.2.5",
"@napi-rs/keyring": "^1.2.0",
"@types/ssh2": "^1.15.5",
"bcryptjs": "^3.0.3",
"better-sqlite3": "^11.9.0",
"dotenv": "^17.2.3",
"groq-sdk": "^1.2.1",
"mysql2": "^3.15.3",
"ollama": "^0.6.3",
"openai": "^6.41.0",
"pg": "^8.16.3",
"pg-query-stream": "^4.10.3",
"pino": "^9.14.0",
"ssh2": "^1.17.0",
"uuid": "^8.3.2",
"uuid": "^9.0.1",
"ws": "^8.19.0"
},
"bin": "./dist/index.cjs",
Expand All @@ -53,4 +60,4 @@
"ts-node-dev": "^2.0.0",
"typescript": "^5.0.0"
}
}
}
Loading
Loading