refactor: nama binary final tia-love (cmd/, Makefile, README, PRD)
This commit is contained in:
1 parent
db75653e3d
commit
3b4bbf09bc
6 files changed
+44
-41
No files matched your search
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
# Build artifacts
|
# Build artifacts
|
||||||
/tia
|
/tia-love
|
||||||
/dist/
|
/dist/
|
||||||
*.exe
|
*.exe
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
BINARY := tia
|
BINARY := tia-love
|
||||||
|
|
||||||
.PHONY: build run test vet fmt clean
|
.PHONY: build run test vet fmt clean
|
||||||
|
|
||||||
build:
|
build:
|
||||||
go build -o $(BINARY) ./cmd/tia
|
go build -o $(BINARY) ./cmd/tia-love
|
||||||
|
|
||||||
run: build
|
run: build
|
||||||
./$(BINARY)
|
./$(BINARY)
|
||||||
|
|||||||
@@ -11,16 +11,18 @@ Status: **Phase 0 — fondasi** (lihat roadmap di `docs/PRD.md` §8).
|
|||||||
## Build & jalankan
|
## Build & jalankan
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make build # menghasilkan ./tia
|
make build # menghasilkan ./tia-love
|
||||||
./tia # buka TUI
|
./tia-love # buka TUI
|
||||||
./tia version # versi & build info
|
./tia-love version # versi & build info
|
||||||
make test # unit test
|
make test # unit test
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Nama binary final: **`tia-love`** (nama produk tetap **tia**).
|
||||||
|
|
||||||
## Struktur repo
|
## Struktur repo
|
||||||
|
|
||||||
```
|
```
|
||||||
cmd/tia/ entry point — router TUI default vs CLI companion
|
cmd/tia-love/ entry point — router TUI default vs CLI companion
|
||||||
internal/app/ root Bubble Tea model
|
internal/app/ root Bubble Tea model
|
||||||
internal/ (menyusul) docker, stack, config, ui, i18n, host, cli, audio
|
internal/ (menyusul) docker, stack, config, ui, i18n, host, cli, audio
|
||||||
docs/PRD.md product requirements
|
docs/PRD.md product requirements
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"runtime/debug"
|
"runtime/debug"
|
||||||
|
"strings"
|
||||||
|
|
||||||
tea "charm.land/bubbletea/v2"
|
tea "charm.land/bubbletea/v2"
|
||||||
|
|
||||||
@@ -13,8 +14,8 @@ import (
|
|||||||
const usage = `tia — Terminal Is A My Way (Just Work)
|
const usage = `tia — Terminal Is A My Way (Just Work)
|
||||||
|
|
||||||
Pemakaian:
|
Pemakaian:
|
||||||
tia Buka TUI interaktif
|
tia-love Buka TUI interaktif
|
||||||
tia version Tampilkan versi & build info
|
tia-love version Tampilkan versi & build info
|
||||||
|
|
||||||
Subcommand CLI pendamping (convert, ps, up, down, update, doctor)
|
Subcommand CLI pendamping (convert, ps, up, down, update, doctor)
|
||||||
menyusul di Phase 1–3 — lihat docs/PRD.md §F-028.
|
menyusul di Phase 1–3 — lihat docs/PRD.md §F-028.
|
||||||
@@ -33,7 +34,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if _, err := tea.NewProgram(app.New()).Run(); err != nil {
|
if _, err := tea.NewProgram(app.New()).Run(); err != nil {
|
||||||
fmt.Fprintln(os.Stderr, "tia:", err)
|
fmt.Fprintln(os.Stderr, "tia-love:", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -45,7 +46,7 @@ func versionString() string {
|
|||||||
return "tia dev"
|
return "tia dev"
|
||||||
}
|
}
|
||||||
ver := info.Main.Version
|
ver := info.Main.Version
|
||||||
if ver == "" || ver == "(devel)" {
|
if ver == "" || ver == "(devel)" || strings.HasPrefix(ver, "v0.0.0-") {
|
||||||
ver = "dev"
|
ver = "dev"
|
||||||
}
|
}
|
||||||
rev, dirty := "", false
|
rev, dirty := "", false
|
||||||
+28
-28
@@ -26,11 +26,11 @@ Tagline: "Just Work"
|
|||||||
### Prinsip Produk: Satu Binary Multifungsi (TUI Utama + CLI Pendamping)
|
### Prinsip Produk: Satu Binary Multifungsi (TUI Utama + CLI Pendamping)
|
||||||
tia hadir sebagai **satu binary mandiri (single static binary)** yang fleksibel dengan filosofi **"Just Work"**:
|
tia hadir sebagai **satu binary mandiri (single static binary)** yang fleksibel dengan filosofi **"Just Work"**:
|
||||||
1. **Pengalaman Utama = TUI Interaktif Penuh:**
|
1. **Pengalaman Utama = TUI Interaktif Penuh:**
|
||||||
Menjalankan `tia` tanpa argumen langsung meluncurkan TUI modern lengkap dengan dashboard keren (logo, jam digital ASCII), animasi dinamis, mouse support penuh, efek suara interaktif, dan notifikasi toast status.
|
Menjalankan `tia-love` tanpa argumen langsung meluncurkan TUI modern lengkap dengan dashboard keren (logo, jam digital ASCII), animasi dinamis, mouse support penuh, efek suara interaktif, dan notifikasi toast status.
|
||||||
2. **Mode CLI Pendamping (Scriptable & Headless):**
|
2. **Mode CLI Pendamping (Scriptable & Headless):**
|
||||||
Untuk kebutuhan otomatisasi, CI/CD, atau perintah kilat tanpa membuka antarmuka TUI, binary yang sama dapat dipanggil dengan subcommand CLI (misal: `tia convert ...`, `tia ps`, `tia up <stack>`, `tia doctor`). Seluruh logika inti di-share dari `internal/core`, sehingga output dan perilakunya 100% konsisten.
|
Untuk kebutuhan otomatisasi, CI/CD, atau perintah kilat tanpa membuka antarmuka TUI, binary yang sama dapat dipanggil dengan subcommand CLI (misal: `tia-love convert ...`, `tia-love ps`, `tia-love up <stack>`, `tia-love doctor`). Seluruh logika inti di-share dari `internal/core`, sehingga output dan perilakunya 100% konsisten.
|
||||||
3. **Instalasi Instan:**
|
3. **Instalasi Instan:**
|
||||||
Dapat diinstal dengan **1 baris perintah (`curl -fsSL ... | sh`)** atau cukup unduh binary Go precompiled secara manual dan langsung jalankan (`./tia`).
|
Dapat diinstal dengan **1 baris perintah (`curl -fsSL ... | sh`)** atau cukup unduh binary Go precompiled secara manual dan langsung jalankan (`./tia-love`).
|
||||||
4. **Mouse & Keyboard Setara:**
|
4. **Mouse & Keyboard Setara:**
|
||||||
Seluruh navigasi dan operasi di TUI ramah mouse (klik, drag, scroll, hover) maupun keyboard shortcut vim-like.
|
Seluruh navigasi dan operasi di TUI ramah mouse (klik, drag, scroll, hover) maupun keyboard shortcut vim-like.
|
||||||
5. **Aset Bebas & Terbuka:**
|
5. **Aset Bebas & Terbuka:**
|
||||||
@@ -67,7 +67,7 @@ tia hadir sebagai **satu binary mandiri (single static binary)** yang fleksibel
|
|||||||
| **Audio Engine** | Oto v3 | `github.com/ebitengine/oto/v3` | Pure-Go audio player (`CGO_ENABLED=0`), PulseAudio/PipeWire/ALSA fallback |
|
| **Audio Engine** | Oto v3 | `github.com/ebitengine/oto/v3` | Pure-Go audio player (`CGO_ENABLED=0`), PulseAudio/PipeWire/ALSA fallback |
|
||||||
| **Audio Assets** | Kenney Interface Sounds | CC0 1.0 Universal | Aset audio open-source tanpa royalti, WAV 44.1kHz mono embedded (<2MB) |
|
| **Audio Assets** | Kenney Interface Sounds | CC0 1.0 Universal | Aset audio open-source tanpa royalti, WAV 44.1kHz mono embedded (<2MB) |
|
||||||
| **Animation Engine**| Harmonica v2 | `charm.land/harmonica/v2` | Fisika pegas (spring physics) & timer ticker 30 FPS untuk animasi TUI |
|
| **Animation Engine**| Harmonica v2 | `charm.land/harmonica/v2` | Fisika pegas (spring physics) & timer ticker 30 FPS untuk animasi TUI |
|
||||||
| **CLI Dispatcher** | Native Go Router | Go standard library | Router ringan untuk mode CLI pendamping (`tia convert`, `tia ps`, dll) |
|
| **CLI Dispatcher** | Native Go Router | Go standard library | Router ringan untuk mode CLI pendamping (`tia-love convert`, `tia-love ps`, dll) |
|
||||||
|
|
||||||
### Docker Interaction Strategy: Hybrid
|
### Docker Interaction Strategy: Hybrid
|
||||||
|
|
||||||
@@ -320,16 +320,16 @@ tia hadir sebagai **satu binary mandiri (single static binary)** yang fleksibel
|
|||||||
|
|
||||||
#### F-028: Satu Binary Multifungsi & CLI Companion Mode
|
#### F-028: Satu Binary Multifungsi & CLI Companion Mode
|
||||||
- **Priority:** P0 (arsitektur fondasi)
|
- **Priority:** P0 (arsitektur fondasi)
|
||||||
- **Description:** `tia` adalah satu file binary mandiri (single binary) yang multifungsi. Secara default `tia` membuka TUI interaktif penuh, namun dapat dipanggil langsung dari command line (CLI mode) untuk eksekusi skrip, CI/CD, atau konversi cepat tanpa membuka TUI.
|
- **Description:** `tia-love` adalah satu file binary mandiri (single binary) yang multifungsi. Secara default `tia-love` membuka TUI interaktif penuh, namun dapat dipanggil langsung dari command line (CLI mode) untuk eksekusi skrip, CI/CD, atau konversi cepat tanpa membuka TUI.
|
||||||
- **Subcommand CLI Pendamping:**
|
- **Subcommand CLI Pendamping:**
|
||||||
- `tia`: Meluncurkan antarmuka TUI interaktif penuh.
|
- `tia-love`: Meluncurkan antarmuka TUI interaktif penuh.
|
||||||
- `tia convert [flags/command]`: Mengonversi perintah `docker run` menjadi compose YAML dan mencetaknya ke stdout atau menyimpannya langsung ke direktori stack (contoh: `tia convert "docker run -d -p 80:80 nginx"`).
|
- `tia-love convert [flags/command]`: Mengonversi perintah `docker run` menjadi compose YAML dan mencetaknya ke stdout atau menyimpannya langsung ke direktori stack (contoh: `tia-love convert "docker run -d -p 80:80 nginx"`).
|
||||||
- `tia ps`: Menampilkan ringkasan status semua stack & kontainer dalam format tabel rapi atau JSON (`--json`).
|
- `tia-love ps`: Menampilkan ringkasan status semua stack & kontainer dalam format tabel rapi atau JSON (`--json`).
|
||||||
- `tia up <stack-name>`: Menjalankan stack di background tanpa membuka TUI.
|
- `tia-love up <stack-name>`: Menjalankan stack di background tanpa membuka TUI.
|
||||||
- `tia down <stack-name>`: Menghentikan & menurunkan stack.
|
- `tia-love down <stack-name>`: Menghentikan & menurunkan stack.
|
||||||
- `tia update <stack-name>`: Menarik image terbaru dan merefresh kontainer stack via CLI.
|
- `tia-love update <stack-name>`: Menarik image terbaru dan merefresh kontainer stack via CLI.
|
||||||
- `tia doctor`: Memeriksa kesehatan sistem (koneksi Docker daemon, ketersediaan sound server/driver, versi Go, direktori stack).
|
- `tia-love doctor`: Memeriksa kesehatan sistem (koneksi Docker daemon, ketersediaan sound server/driver, versi Go, direktori stack).
|
||||||
- `tia version` / `tia --version`: Menampilkan versi, commit git, dan build info.
|
- `tia-love version` / `tia-love --version`: Menampilkan versi, commit git, dan build info.
|
||||||
- **Acceptance Criteria:**
|
- **Acceptance Criteria:**
|
||||||
- Berbagi basis kode logika inti yang sama di `internal/core`, menjamin kesamaan hasil antara eksekusi di TUI dan CLI.
|
- Berbagi basis kode logika inti yang sama di `internal/core`, menjamin kesamaan hasil antara eksekusi di TUI dan CLI.
|
||||||
- Kode keluar (*exit codes*) standar (0 = sukses, >0 = error) untuk integrasi skrip bash.
|
- Kode keluar (*exit codes*) standar (0 = sukses, >0 = error) untuk integrasi skrip bash.
|
||||||
@@ -338,7 +338,7 @@ tia hadir sebagai **satu binary mandiri (single static binary)** yang fleksibel
|
|||||||
|
|
||||||
#### F-029: 1-Line Installer & Standalone Binary Distribution
|
#### F-029: 1-Line Installer & Standalone Binary Distribution
|
||||||
- **Priority:** P0 (distribusi rilis)
|
- **Priority:** P0 (distribusi rilis)
|
||||||
- **Description:** Pengguna dapat memasang `tia` dalam hitungan detik menggunakan perintah instalasi satu baris (*one-line command*) otomatis, atau dengan mengunduh binary Go mandiri tanpa proses kompilasi manual.
|
- **Description:** Pengguna dapat memasang `tia-love` dalam hitungan detik menggunakan perintah instalasi satu baris (*one-line command*) otomatis, atau dengan mengunduh binary Go mandiri tanpa proses kompilasi manual.
|
||||||
- **Metode Instalasi:**
|
- **Metode Instalasi:**
|
||||||
1. **One-Line Command (Rekomendasi):**
|
1. **One-Line Command (Rekomendasi):**
|
||||||
```bash
|
```bash
|
||||||
@@ -347,13 +347,13 @@ tia hadir sebagai **satu binary mandiri (single static binary)** yang fleksibel
|
|||||||
- Skrip otomatis mendeteksi OS (Linux, macOS) dan arsitektur CPU (`amd64`, `arm64`).
|
- Skrip otomatis mendeteksi OS (Linux, macOS) dan arsitektur CPU (`amd64`, `arm64`).
|
||||||
- Mengunduh rilis tarball terbaru dari GitHub Releases.
|
- Mengunduh rilis tarball terbaru dari GitHub Releases.
|
||||||
- Memverifikasi checksum SHA256 secara otomatis demi keamanan sebelum mengekstrak.
|
- Memverifikasi checksum SHA256 secara otomatis demi keamanan sebelum mengekstrak.
|
||||||
- Memasang binary ke direktori pengguna (`~/.local/bin/tia` tanpa memerlukan akses `sudo`).
|
- Memasang binary ke direktori pengguna (`~/.local/bin/tia-love` tanpa memerlukan akses `sudo`).
|
||||||
- Memberikan instruksi jika `~/.local/bin` belum ada di `$PATH`.
|
- Memberikan instruksi jika `~/.local/bin` belum ada di `$PATH`.
|
||||||
2. **Manual Download Precompiled Binary:**
|
2. **Manual Download Precompiled Binary:**
|
||||||
- Pengguna dapat langsung menuju halaman GitHub Releases, mengunduh file binary terkompresi (misal: `tia_linux_amd64.tar.gz`), mengekstraknya, dan langsung menjalankannya (`./tia`).
|
- Pengguna dapat langsung menuju halaman GitHub Releases, mengunduh file binary terkompresi (misal: `tia-love_linux_amd64.tar.gz`), mengekstraknya, dan langsung menjalankannya (`./tia-love`).
|
||||||
3. **Go Install (untuk developer Go):**
|
3. **Go Install (untuk developer Go):**
|
||||||
```bash
|
```bash
|
||||||
go install github.com/oxpoe/tia/cmd/tia@latest
|
go install github.com/oxpoe/tia/cmd/tia-love@latest
|
||||||
```
|
```
|
||||||
- **Acceptance Criteria:**
|
- **Acceptance Criteria:**
|
||||||
- Skrip instalasi aman (`set -euo pipefail`), transparan, dan tidak meminta privilege root/sudo secara membabi-buta.
|
- Skrip instalasi aman (`set -euo pipefail`), transparan, dan tidak meminta privilege root/sudo secara membabi-buta.
|
||||||
@@ -910,7 +910,7 @@ graph TD
|
|||||||
```
|
```
|
||||||
tia/
|
tia/
|
||||||
├── cmd/
|
├── cmd/
|
||||||
│ └── tia/
|
│ └── tia-love/
|
||||||
│ └── main.go # Entry point (Router TUI default vs CLI companion)
|
│ └── main.go # Entry point (Router TUI default vs CLI companion)
|
||||||
├── internal/
|
├── internal/
|
||||||
│ ├── app/
|
│ ├── app/
|
||||||
@@ -919,10 +919,10 @@ tia/
|
|||||||
│ │ └── messages.go # Custom tea.Msg types
|
│ │ └── messages.go # Custom tea.Msg types
|
||||||
│ ├── cli/ # Mode CLI pendamping (single binary)
|
│ ├── cli/ # Mode CLI pendamping (single binary)
|
||||||
│ │ ├── root.go # CLI argument parser & dispatcher
|
│ │ ├── root.go # CLI argument parser & dispatcher
|
||||||
│ │ ├── convert.go # 'tia convert' command
|
│ │ ├── convert.go # 'tia-love convert' command
|
||||||
│ │ ├── ps.go # 'tia ps' list stacks & containers
|
│ │ ├── ps.go # 'tia-love ps' list stacks & containers
|
||||||
│ │ ├── stack.go # 'tia up / down / update' commands
|
│ │ ├── stack.go # 'tia-love up / down / update' commands
|
||||||
│ │ └── doctor.go # 'tia doctor' diagnostic check
|
│ │ └── doctor.go # 'tia-love doctor' diagnostic check
|
||||||
│ ├── audio/ # Audio feedback engine (Pure Go, Oto v3)
|
│ ├── audio/ # Audio feedback engine (Pure Go, Oto v3)
|
||||||
│ │ ├── player.go # Audio context & sound player
|
│ │ ├── player.go # Audio context & sound player
|
||||||
│ │ ├── sounds.go # Sound event definitions & mapping
|
│ │ ├── sounds.go # Sound event definitions & mapping
|
||||||
@@ -1200,9 +1200,9 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem
|
|||||||
| Config | Basic config load/save |
|
| Config | Basic config load/save |
|
||||||
| Theme | Catppuccin (Mocha/Latte), mode Otomatis/Gelap/Terang/Terminal, deteksi background terminal, semua warna via token semantik |
|
| Theme | Catppuccin (Mocha/Latte), mode Otomatis/Gelap/Terang/Terminal, deteksi background terminal, semua warna via token semantik |
|
||||||
| Status bar | Context-aware help text (hint klikable) |
|
| Status bar | Context-aware help text (hint klikable) |
|
||||||
| **Rilis awal** | goreleaser + GitHub Releases + `install.sh` + checksum (F-029), `tia --version` / `tia doctor` |
|
| **Rilis awal** | goreleaser + GitHub Releases + `install.sh` + checksum (F-029), `tia-love --version` / `tia-love doctor` |
|
||||||
|
|
||||||
**Exit Criteria:** Jalankan `tia` → splash → Home Dashboard (jam, ringkasan) → masuk workspace, lihat semua resource Docker, navigasi dengan keyboard **dan mouse**; setiap aksi memberi suara + toast; instal dengan satu baris perintah berhasil di mesin bersih
|
**Exit Criteria:** Jalankan `tia-love` → splash → Home Dashboard (jam, ringkasan) → masuk workspace, lihat semua resource Docker, navigasi dengan keyboard **dan mouse**; setiap aksi memberi suara + toast; instal dengan satu baris perintah berhasil di mesin bersih
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1235,7 +1235,7 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem
|
|||||||
| Setup wizard | First-run setup with huh forms |
|
| Setup wizard | First-run setup with huh forms |
|
||||||
| Compose CLI wrapper | docker compose up/down/pull/restart/ps |
|
| Compose CLI wrapper | docker compose up/down/pull/restart/ps |
|
||||||
| REA modul 1, 2, 7 | Analisis composerize, Dockge (stack), dan format output Compose, hasil di `docs/rea/` + test vectors |
|
| REA modul 1, 2, 7 | Analisis composerize, Dockge (stack), dan format output Compose, hasil di `docs/rea/` + test vectors |
|
||||||
| CLI mode (pendamping) | `tia convert`, `tia ps`, `tia stacks`, `tia up/down/restart/update`, `--json`, kode keluar jelas (F-028) |
|
| CLI mode (pendamping) | `tia-love convert`, `tia-love ps`, `tia-love stacks`, `tia-love up/down/restart/update`, `--json`, kode keluar jelas (F-028) |
|
||||||
|
|
||||||
**Exit Criteria:** Convert docker run command → save as stack → manage it, **baik dari TUI maupun dari CLI**, dengan hasil identik
|
**Exit Criteria:** Convert docker run command → save as stack → manage it, **baik dari TUI maupun dari CLI**, dengan hasil identik
|
||||||
|
|
||||||
@@ -1316,7 +1316,7 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem
|
|||||||
- **Satu binary statis** (`CGO_ENABLED=0`), tanpa runtime dependency selain Docker (audio memakai library pure-Go; server audio hanya dibutuhkan jika suara diaktifkan)
|
- **Satu binary statis** (`CGO_ENABLED=0`), tanpa runtime dependency selain Docker (audio memakai library pure-Go; server audio hanya dibutuhkan jika suara diaktifkan)
|
||||||
- Instal satu baris (skrip) **atau** unduh binary manual dari GitHub Releases, detail di **F-029**
|
- Instal satu baris (skrip) **atau** unduh binary manual dari GitHub Releases, detail di **F-029**
|
||||||
- Release otomatis via goreleaser: `.tar.gz`/`.zip` + `checksums.txt`; `.deb`, `.rpm`, Homebrew, AUR menyusul
|
- Release otomatis via goreleaser: `.tar.gz`/`.zip` + `checksums.txt`; `.deb`, `.rpm`, Homebrew, AUR menyusul
|
||||||
- Binary name: `tia`
|
- Binary name: `tia-love` (nama produk tetap: tia)
|
||||||
|
|
||||||
### Audio & Animasi
|
### Audio & Animasi
|
||||||
- Suara dan animasi **opsional**: bisa dimatikan penuh dari Pengaturan, dan aplikasi tetap 100% fungsional tanpa keduanya
|
- Suara dan animasi **opsional**: bisa dimatikan penuh dari Pengaturan, dan aplikasi tetap 100% fungsional tanpa keduanya
|
||||||
@@ -1345,7 +1345,7 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem
|
|||||||
| Latensi suara klik | < 100 ms dari aksi sampai terdengar |
|
| Latensi suara klik | < 100 ms dari aksi sampai terdengar |
|
||||||
| Notifikasi (toast) muncul | < 100 ms setelah event, tampil di atas-tengah dengan status lengkap |
|
| Notifikasi (toast) muncul | < 100 ms setelah event, tampil di atas-tengah dengan status lengkap |
|
||||||
| Animasi | Stabil 30 FPS, CPU idle < 3% saat dashboard terbuka |
|
| Animasi | Stabil 30 FPS, CPU idle < 3% saat dashboard terbuka |
|
||||||
| Instalasi satu baris | < 30 detik dari perintah sampai `tia` bisa dijalankan |
|
| Instalasi satu baris | < 30 detik dari perintah sampai `tia-love` bisa dijalankan |
|
||||||
| Paritas CLI vs TUI | Hasil konversi & operasi stack lewat CLI identik dengan lewat TUI |
|
| Paritas CLI vs TUI | Hasil konversi & operasi stack lewat CLI identik dengan lewat TUI |
|
||||||
| Coverage aset | 100% aset tercatat di register aset dengan lisensi valid |
|
| Coverage aset | 100% aset tercatat di register aset dengan lisensi valid |
|
||||||
|
|
||||||
@@ -1363,7 +1363,7 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem
|
|||||||
| Mouse event tidak konsisten antar terminal/tmux/SSH | Medium | Test di terminal populer (kitty, alacritty, wezterm, gnome-terminal, tmux, SSH), keyboard selalu jadi fallback penuh, toggle mouse via config |
|
| Mouse event tidak konsisten antar terminal/tmux/SSH | Medium | Test di terminal populer (kitty, alacritty, wezterm, gnome-terminal, tmux, SSH), keyboard selalu jadi fallback penuh, toggle mouse via config |
|
||||||
| Mouse capture mengganggu copy-paste teks native | Medium | Sediakan mode "text select" (toggle `m`) + tombol Copy di log/YAML viewer + dukungan OSC52 clipboard |
|
| Mouse capture mengganggu copy-paste teks native | Medium | Sediakan mode "text select" (toggle `m`) + tombol Copy di log/YAML viewer + dukungan OSC52 clipboard |
|
||||||
| Suara tidak terdengar saat tia dijalankan lewat SSH (audio diputar di server, bukan di laptop pengguna) | High | Deteksi sesi SSH → suara default mati + info; semua suara selalu punya padanan visual; opsi terminal bell (BEL) sebagai fallback; rekomendasikan pola "tia lokal + multi-host" |
|
| Suara tidak terdengar saat tia dijalankan lewat SSH (audio diputar di server, bukan di laptop pengguna) | High | Deteksi sesi SSH → suara default mati + info; semua suara selalu punya padanan visual; opsi terminal bell (BEL) sebagai fallback; rekomendasikan pola "tia lokal + multi-host" |
|
||||||
| Tidak ada audio device/server (PulseAudio/PipeWire/ALSA) di mesin | Medium | Deteksi saat start, degradasi diam-diam ke mode tanpa suara + notifikasi sekali; `tia doctor` menampilkan status audio |
|
| Tidak ada audio device/server (PulseAudio/PipeWire/ALSA) di mesin | Medium | Deteksi saat start, degradasi diam-diam ke mode tanpa suara + notifikasi sekali; `tia-love doctor` menampilkan status audio |
|
||||||
| Dependensi audio merusak single static binary (cgo) | High | Pilih library audio pure-Go (Oto v3 dengan `CGO_ENABLED=0`); **spike teknis di Phase 0** untuk membuktikan sebelum dikunci |
|
| Dependensi audio merusak single static binary (cgo) | High | Pilih library audio pure-Go (Oto v3 dengan `CGO_ENABLED=0`); **spike teknis di Phase 0** untuk membuktikan sebelum dikunci |
|
||||||
| Animasi menghabiskan CPU / flicker di terminal lambat | Medium | Batas 30 FPS, animasi dimatikan otomatis saat idle/terminal lambat, mode "reduced motion", toggle di Pengaturan |
|
| Animasi menghabiskan CPU / flicker di terminal lambat | Medium | Batas 30 FPS, animasi dimatikan otomatis saat idle/terminal lambat, mode "reduced motion", toggle di Pengaturan |
|
||||||
| Spam suara/notifikasi dari event Docker beruntun | Medium | Debounce, rate limit, dan pengelompokan notifikasi sejenis |
|
| Spam suara/notifikasi dari event Docker beruntun | Medium | Debounce, rate limit, dan pengelompokan notifikasi sejenis |
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
## 1. Ringkasan & Tujuan
|
## 1. Ringkasan & Tujuan
|
||||||
|
|
||||||
`composerize` mengubah perintah `docker run` menjadi file compose YAML. Di tia, logika ini menjadi
|
`composerize` mengubah perintah `docker run` menjadi file compose YAML. Di tia, logika ini menjadi
|
||||||
**konverter inti** yang dipakai dua-duanya: modal konverter TUI (F-008) dan `tia convert` CLI (F-028).
|
**konverter inti** yang dipakai dua-duanya: modal konverter TUI (F-008) dan `tia-love convert` CLI (F-028).
|
||||||
|
|
||||||
Yang diporting: **pipeline parsing, tabel pemetaan flag, dan aturan normalisasi**.
|
Yang diporting: **pipeline parsing, tabel pemetaan flag, dan aturan normalisasi**.
|
||||||
Yang tidak diport: fitur merge dengan file compose existing via stdin (ditangani layer stack tia
|
Yang tidak diport: fitur merge dengan file compose existing via stdin (ditangani layer stack tia
|
||||||
|
|||||||
Reference in new issue
Block a user