Skip to content

Commit e25314b

Browse files
comchangsclaude
andcommitted
fix: sync all version references to v0.3.0
- cmd/tow/main.go: Version = "0.3.0" - MCP server: version "0.3.0" - VS Code extension: version "0.3.0" - npm package.json: version "0.3.0" - Homebrew formula: version "0.3.0" - SECURITY.md: supported versions (0.3.x, 0.2.x) - npm README: synced with root README Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 4fb45f6 commit e25314b

7 files changed

Lines changed: 94 additions & 21 deletions

File tree

SECURITY.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77
| Version | Supported |
88
|---------|--------------------|
9-
| 0.1.x | :white_check_mark: |
9+
| 0.3.x | :white_check_mark: |
10+
| 0.2.x | :white_check_mark: |
11+
| 0.1.x | :x: |
1012

1113
## Reporting a Vulnerability
1214

cmd/tow/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929
)
3030

3131
var (
32-
Version = "0.1.0"
32+
Version = "0.3.0"
3333
BuildDate = "dev"
3434
cfgFile string
3535
)

integrations/mcp-server/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ func (s *Server) Run() error {
244244
"protocolVersion": "2024-11-05",
245245
"serverInfo": map[string]string{
246246
"name": "tow-mcp-server",
247-
"version": "0.1.0",
247+
"version": "0.3.0",
248248
},
249249
"capabilities": map[string]interface{}{
250250
"tools": map[string]bool{},

integrations/vscode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "tow-cli",
33
"displayName": "Tow CLI",
44
"description": "Deploy to bare-metal servers and VMs — without the complexity of Kubernetes",
5-
"version": "0.1.2",
5+
"version": "0.3.0",
66
"publisher": "neurosamai",
77
"author": {
88
"name": "Murry Jeong (comchangs)",

packaging/homebrew/tow.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Tow < Formula
1111
desc "Lightweight, agentless deployment orchestrator for bare-metal servers and VMs"
1212
homepage "https://tow-cli.neurosam.ai"
1313
license "MIT"
14-
version "0.1.0"
14+
version "0.3.0"
1515

1616
on_macos do
1717
if Hardware::CPU.arm?

packaging/npm/README.md

Lines changed: 86 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,51 @@ tow auto -e prod -m api-server # Build → package → upload → deploy
3434
tow rollback -e prod -m api-server # Instant rollback
3535
```
3636

37+
<details>
38+
<summary><b>See it in action — real production output</b></summary>
39+
40+
```
41+
$ tow status -e prod -m api-server -o json
42+
[
43+
{
44+
"host": "3.34.xx.xxx",
45+
"server": "api-1",
46+
"status": "running",
47+
"pid": "23117",
48+
"uptime": "56-01:58:33",
49+
"memory": "962468KB",
50+
"deployment": "20240424-110212"
51+
}
52+
]
53+
54+
$ tow logs -e prod -m kafka --all -n 3
55+
[kafka-1] 2026-03-30 14:35:49 GC(7722152) Pause Young 765M→702M(1024M) 17ms
56+
[kafka-2] 2026-03-30 14:35:55 GC(8629812) Pause Young 340M→292M(1024M) 18ms
57+
[kafka-3] 2026-03-30 14:36:01 GC(7493779) Pause Young 797M→723M(1024M) 13ms
58+
59+
$ tow ssh -e prod -m kafka --all -- "free -h | head -2"
60+
[kafka-1] total used free
61+
[kafka-1] Mem: 1.9Gi 1.7Gi 66Mi
62+
[kafka-2] total used free
63+
[kafka-2] Mem: 1.9Gi 1.7Gi 77Mi
64+
[kafka-3] total used free
65+
[kafka-3] Mem: 1.9Gi 1.7Gi 70Mi
66+
67+
$ tow doctor -e prod -m api-server
68+
✓ tow.yaml is valid
69+
✓ Environment 'prod' exists
70+
✓ SSH key exists
71+
✓ Servers configured (22)
72+
✓ SSH connection successful
73+
✓ Remote dir exists
74+
✓ Disk space — Available: 4.9G
75+
✓ Branch policy
76+
✓ No active deploy lock
77+
9 passed, 0 failed
78+
```
79+
80+
</details>
81+
3782
## Why Tow?
3883

3984
| | Tow | Ansible | Capistrano | Kamal |
@@ -203,6 +248,9 @@ Local Machine Remote Server
203248
| `tow status` | Check module status (PID, uptime, memory) |
204249
| `tow rollback` | Switch to previous deployment |
205250
| `tow logs` | Stream remote logs with optional grep filter |
251+
| `tow ssh` | Execute commands on remote servers |
252+
| `tow diff` | Compare deployed vs local code |
253+
| `tow config` | Manage servers, modules, and assignments |
206254
| `tow upload` | Upload a file to target servers |
207255
| `tow install` | Install uploaded package (extract + symlink) |
208256
| `tow login` | SSH into a server |
@@ -211,6 +259,8 @@ Local Machine Remote Server
211259
| `tow cleanup` | Remove old deployment directories |
212260
| `tow download` | Download files from remote servers |
213261
| `tow provision` | Provision a new server (timezone, JRE, tools) |
262+
| `tow metrics` | Show deployment statistics from audit log |
263+
| `tow doctor` | Pre-flight diagnostics |
214264
| `tow mcp-server` | Start MCP server for AI agent integration |
215265

216266
**Advanced flags:**
@@ -241,7 +291,16 @@ tow status -o json # Machine-readable JSON output
241291
| `elixir` | `mix deps.get, compile, release` | TCP port check |
242292
| `generic` || TCP port check |
243293

244-
Infrastructure services are supported via [35 YAML plugins](plugins/) — Kafka, Redis, MySQL, PostgreSQL, MongoDB, Elasticsearch, ZooKeeper, Nginx, Prometheus, Grafana, Loki, Vault, Jenkins, and more. Community can add new services without writing Go code.
294+
Infrastructure services are supported via [35 bundled YAML plugins](plugins/) — Kafka, Redis, MySQL, PostgreSQL, MongoDB, Elasticsearch, ZooKeeper, Nginx, Prometheus, Grafana, Loki, Vault, Jenkins, and more.
295+
296+
Community plugins can be installed from GitHub:
297+
298+
```bash
299+
tow plugin add someuser/tow-plugin-mssql # GitHub repo
300+
tow plugin add myorg/infra-plugins/oracle.yaml # specific file
301+
tow plugin add https://example.com/custom.yaml # any URL
302+
tow plugin list # list all (bundled + external)
303+
```
245304

246305
## Documentation
247306

@@ -283,30 +342,42 @@ Copy [`integrations/claude-skill/tow-deploy.md`](integrations/claude-skill/tow-d
283342

284343
See [`integrations/vscode/`](integrations/vscode/) — sidebar UI with environments, modules, and deployment controls.
285344

286-
## Current Status
345+
## Production-Tested
346+
347+
Tow has been validated on **real production infrastructure** at [Balkari Inc.](https://balkari.io), managing:
348+
349+
- **22 servers** across Spring Boot microservices, Kafka clusters, Redis, MongoDB, Prometheus, Grafana, and more
350+
- **Multi-server operations**: status checks across 3-node Kafka cluster, multiplexed log viewing, parallel SSH execution
351+
- **Legacy compatibility**: seamlessly manages existing deployments created by bash scripts (deploy_path `{module}-{server}`)
287352

288-
Tow is at **v0.1.0** — it's functional and actively developed, but early-stage. Here's what to expect:
353+
```
354+
$ tow doctor -e prod -m api-server
355+
✓ tow.yaml is valid
356+
✓ Environment 'prod' exists
357+
✓ SSH key exists
358+
✓ Servers configured (22)
359+
✓ SSH connection successful
360+
✓ Remote dir exists
361+
✓ Disk space — Available: 4.9G
362+
✓ Branch policy
363+
✓ No active deploy lock
364+
9 passed, 0 failed
365+
```
366+
367+
## Current Status
289368

290-
**What works well:**
291-
- Project auto-detection and config generation (10 languages, 40+ frameworks, 35 infrastructure plugins)
292-
- Full deployment pipeline over SSH (build → package → upload → install → restart)
293-
- Symlink-based instant rollback
294-
- Parallel execution, rolling deploy, auto-rollback
295-
- Health checks, deploy locking, branch policies
296-
- YAML plugin system for infrastructure services
369+
Tow is at **v0.3.0** — production-tested and actively developed.
297370

298-
**Known limitations (v0.1.0):**
299-
- No resume for interrupted large file uploads — failed uploads must restart from scratch
300-
- `tow init` generates a config skeleton — you still need to edit server IPs and SSH key paths
371+
**Known limitations:**
372+
- No resume for interrupted large file uploads
301373
- No blue-green deployment strategy yet (rolling deploy is supported)
302374
- IDE plugins (VS Code, JetBrains) are functional but early-stage
303-
- Test coverage is ~42% overall (87-100% for pure logic, lower for SSH-dependent code pending interface refactoring)
304375

305376
**Roadmap to v1.0:**
306-
- SSH interface abstraction for testability (target: 80%+ coverage)
307377
- Blue-green deployment strategy
308378
- Web dashboard for deployment status
309379
- Config encryption for sensitive values
380+
- SSH interface abstraction for 80%+ test coverage
310381

311382
If you hit an issue, please [open a GitHub issue](https://github.com/neurosamAI/tow-cli/issues). We take bug reports seriously.
312383

packaging/npm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@neurosamai/tow",
3-
"version": "0.1.0",
3+
"version": "0.3.0",
44
"description": "Lightweight, agentless deployment orchestrator for bare-metal servers and VMs",
55
"author": "Murry Jeong <oss@neurosam.ai> (https://github.com/comchangs)",
66
"license": "MIT",

0 commit comments

Comments
 (0)