Skip to content

Commit 499592e

Browse files
committed
chore: auto build
1 parent 7909aa0 commit 499592e

File tree

9 files changed

+191
-58
lines changed

9 files changed

+191
-58
lines changed

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"WebFetch(domain:v2.tauri.app)",
66
"WebFetch(domain:thatgurjot.com)",
77
"Bash(pnpm add:*)",
8-
"Bash(pnpm tauri signer generate:*)"
8+
"Bash(pnpm tauri signer generate:*)",
9+
"Bash(chmod:*)"
910
],
1011
"deny": [],
1112
"ask": []

README.md

Lines changed: 80 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,84 +4,111 @@
44
<img src="public/icon.png" alt="Milo Logo" width="128" height="128">
55
</div>
66

7-
Milo is a lightweight desktop application that helps you transform text using AI. It lives in your system tray and provides quick access to text transformation with customizable tones.
7+
Milo is a lightweight desktop application that helps you transform text using AI. Copy any text, hit a keyboard shortcut, and get instant AI transformations with customizable tones.
88

9-
## Features
9+
## Features
1010

11-
- 🎯 Transform clipboard text with one click
12-
- 🎨 Customize transformation tones
13-
- 🔄 Quick access from system tray
14-
- ⚡ Fast and lightweight
11+
- 🎯 **Instant transformations** - Transform clipboard text with global shortcuts
12+
- 🎨 **Custom tones** - Create personalized transformation prompts
13+
- 📊 **Usage tracking** - Monitor your transformations and word counts
14+
- 🔄 **Auto-updates** - Seamless updates with built-in update system
15+
- 🌙 **Dark mode** - Beautiful light and dark themes
16+
-**Lightweight** - Fast, native desktop app built with Tauri
1517

16-
## Installation
18+
## 🚀 Quick Start
1719

18-
### Prerequisites
20+
### Download
1921

20-
- Node.js (v16 or later)
21-
- pnpm (latest version)
22-
- Rust (latest stable)
23-
- OpenAI API key
22+
1. Visit the [Releases page](https://github.com/antoncoding/milo/releases)
23+
2. Download the latest version for your platform
24+
3. Install and launch Milo
2425

25-
### Build from Source
26+
### Setup
2627

27-
1. Clone the repository:
28-
```bash
29-
git clone https://github.com/yourusername/milo.git
30-
cd milo
31-
```
28+
1. **Get a usage key** from the [official Milo website](https://milo-ai.com)
29+
2. **Open Milo settings** from the system tray
30+
3. **Enter your usage key** in the settings
31+
4. **Start transforming!** Copy text and use the shortcut (default: `Cmd+M`)
3232

33-
2. Install dependencies:
34-
```bash
35-
pnpm install
36-
```
33+
## 🎯 How to Use
3734

38-
3. Build the application:
39-
```bash
40-
pnpm run tauri build
41-
```
35+
1. **Copy any text** you want to transform
36+
2. **Press your shortcut** (default: `Cmd+M`)
37+
3. **Your transformed text** replaces the clipboard content
38+
4. **Paste anywhere** - the improved text is ready to use!
39+
40+
## ⚙️ Configuration
4241

43-
The built application will be available in `src-tauri/target/release`.
42+
- **Custom shortcuts** - Set your preferred key combination
43+
- **Transform tones** - Create custom prompts for different writing styles
44+
- **Usage tracking** - View your transformation history and statistics
45+
- **Auto-updates** - Enable automatic app updates
4446

45-
## Usage
47+
# Releasing
4648

47-
1. Launch Milo - it will appear in your system tray
48-
2. Click the tray icon and select "Settings"
49-
3. Enter your OpenAI API key
50-
4. Copy any text you want to transform
51-
5. Click "Transform" from the tray menu
52-
6. The transformed text will be copied to your clipboard
49+
## 🔐 Important: Back Up Your Signing Key
5350

54-
### Customizing Tones
51+
**For developers building from source:**
5552

56-
1. Open Settings from the tray menu
57-
2. Click "Add New Tone"
58-
3. Enter a name and prompt for your custom tone
59-
4. Select your tone before transforming text
53+
Your Tauri signing key is located at `~/.tauri/milo.key`. **CRITICAL:** Back this up securely!
6054

61-
## Development
55+
---
56+
57+
## 🛠️ Development
58+
59+
### Prerequisites
60+
61+
- Node.js (v16 or later)
62+
- pnpm (latest version)
63+
- Rust (latest stable)
64+
- Milo usage key (for testing)
6265

6366
### Tech Stack
6467

65-
- Frontend: React + Vite
66-
- Backend: Rust + Tauri
67-
- AI: OpenAI API
68+
- **Frontend**: React + Vite + TypeScript + Tailwind CSS
69+
- **Backend**: Rust + Tauri v2
70+
- **AI Integration**: LiteLLM proxy server
71+
- **Auto-updates**: Built-in Tauri updater with cryptographic signatures
6872

69-
### Development Setup
73+
### Build from Source
7074

71-
1. Install dependencies:
72-
```bash
73-
pnpm install
74-
```
75+
1. **Clone and install**:
76+
```bash
77+
git clone https://github.com/antoncoding/milo.git
78+
cd milo
79+
pnpm install
80+
```
81+
82+
2. **Development server**:
83+
```bash
84+
pnpm run tauri dev
85+
```
86+
87+
3. **Production build**:
88+
```bash
89+
pnpm run tauri build
90+
```
91+
92+
### 🚀 Release Process
7593

76-
2. Start development server:
7794
```bash
78-
pnpm run tauri dev
95+
# Export signing key
96+
export TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/milo.key)
97+
98+
# Automated release
99+
pnpm release v0.1.9
79100
```
80101

81-
### Building for Production
82102

83-
```bash
84-
pnpm run tauri build
103+
### 📁 Project Structure
104+
105+
```
106+
milo/
107+
├── src/ # React frontend
108+
├── src-tauri/ # Rust backend
109+
├── scripts/ # Release automation
110+
├── public/ # Static assets
111+
└── dist/ # Built frontend
85112
```
86113

87114
## Contributing

nano

Whitespace-only changes.

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
{
22
"name": "milo",
33
"private": true,
4-
"version": "0.1.8",
4+
"version": "0.1.10",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",
88
"build": "tsc && vite build",
99
"preview": "vite preview",
10-
"tauri": "tauri"
10+
"tauri": "tauri",
11+
"release": "node scripts/update-latest.cjs",
12+
"release:shell": "./scripts/release.sh"
1113
},
1214
"dependencies": {
1315
"@dnd-kit/core": "^6.3.1",

scripts/README.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Milo Release Scripts
2+
3+
Automated scripts to handle releases and update the `latest.json` file for Tauri auto-updates.
4+
5+
## 🚀 Quick Release
6+
7+
### Method 1: JavaScript Script (Recommended)
8+
```bash
9+
pnpm release v0.1.9
10+
```
11+
12+
### Method 2: Shell Script
13+
```bash
14+
pnpm run release:shell v0.1.9
15+
```
16+
17+
### Method 3: Direct Script Execution
18+
```bash
19+
# JavaScript version
20+
node scripts/update-latest.js v0.1.9
21+
22+
# Shell version
23+
./scripts/release.sh v0.1.9
24+
```
25+
26+
## 📋 What These Scripts Do
27+
28+
1. **Update version files** (`Cargo.toml`, `package.json`)
29+
2. **Build the Tauri app** with signatures
30+
3. **Extract signatures** from build artifacts
31+
4. **Generate `latest.json`** with proper format
32+
5. **Commit and tag** (optional)
33+
34+
## 🎯 Complete Release Workflow
35+
36+
```bash
37+
# 1. Run the release script
38+
pnpm release v0.1.9
39+
40+
# 2. Review the generated latest.json
41+
42+
# 3. Push to GitHub
43+
git push origin main
44+
git push origin v0.1.9
45+
46+
# 4. Create GitHub release
47+
# - Go to GitHub → Releases → Create new release
48+
# - Upload the built .dmg/.app.tar.gz files
49+
# - The auto-updater will automatically detect new version!
50+
```
51+
52+
## 📄 Generated latest.json Format
53+
54+
```json
55+
{
56+
"version": "v0.1.9",
57+
"notes": "Milo v0.1.9 - Bug fixes and improvements",
58+
"pub_date": "2025-01-18T12:00:00Z",
59+
"platforms": {
60+
"darwin-aarch64": {
61+
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6...",
62+
"url": "https://github.com/antoncoding/milo/releases/download/v0.1.9/Milo_aarch64.app.tar.gz"
63+
},
64+
"darwin-x86_64": {
65+
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6...",
66+
"url": "https://github.com/antoncoding/milo/releases/download/v0.1.9/Milo_x64.app.tar.gz"
67+
}
68+
}
69+
}
70+
```
71+
72+
## 🔧 Configuration
73+
74+
The scripts are pre-configured for:
75+
- **Repository**: `antoncoding/milo`
76+
- **Signing key**: `~/.tauri/milo.key`
77+
- **Key password**: `test123`
78+
- **Endpoint**: `https://raw.githubusercontent.com/antoncoding/milo/main/latest.json`
79+
80+
## ⚠️ Notes
81+
82+
- Make sure you have the signing key at `~/.tauri/milo.key`
83+
- The scripts will automatically extract signatures from build artifacts
84+
- If signature extraction fails, template signatures are created for manual completion
85+
- Always review the generated `latest.json` before pushing
86+
- The auto-updater in your app will check this file on startup
87+
88+
## 🐛 Troubleshooting
89+
90+
### Build fails
91+
- Ensure `~/.tauri/milo.key` exists
92+
- Check that the key password is correct
93+
- Verify all dependencies are installed (`pnpm install`)
94+
95+
### Signatures not found
96+
- Check `src-tauri/target/release/bundle/` for `.sig` files
97+
- Manual signatures can be added to the generated `latest.json`
98+
99+
### Auto-update not working
100+
- Verify `latest.json` is accessible at the configured endpoint
101+
- Check the version format matches (must be higher than current)
102+
- Ensure the download URLs are accessible

scripts/release.sh

100644100755
File mode changed.

scripts/update-latest.js renamed to scripts/update-latest.cjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const { execSync } = require('child_process');
1313
// Configuration
1414
const REPO_OWNER = 'antoncoding';
1515
const REPO_NAME = 'milo';
16+
const BRANCH = 'master'; // Updated to match tauri.conf.json
1617
const GITHUB_RELEASES_BASE = `https://github.com/${REPO_OWNER}/${REPO_NAME}/releases/download`;
1718

1819
// File paths

src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "milo"
3-
version = "0.1.8"
3+
version = "0.1.10"
44
description = "Milo - AI Text Transformation Tool"
55
authors = ["you"]
66
edition = "2021"

src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"plugins": {
2626
"updater": {
2727
"endpoints": [
28-
"https://raw.githubusercontent.com/antoncoding/milo/main/latest.json"
28+
"https://raw.githubusercontent.com/antoncoding/milo/master/latest.json"
2929
],
3030
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEVEN0Q0OEYzNDgyOTIxQUEKUldTcUlTbEk4MGg5N1VITktmZ3VBK2QrVzcrRzJYTmhSVTQ0ZjRvSVFxUGsvcmtEdHE0SXhKemIK"
3131
}

0 commit comments

Comments
 (0)