CI / test (push) Failing after 38s
- Beranda: kolom tengah CTA 'masuk workspace' (klikable), strip Disclaimer dan Info aplikasi (versi/repo/config); geometri satu sumber (homeGeom). - Workspace: baris toolbar — pill Cari (klik atau '/' → cari-lompat daftar) + tombol [+ stack]/[konversi] klikable (sementara keduanya jalur konverter). - Detail kontainer: kolom kanan 'Aksi Tab' (mock TAB ACTION) berisi aksi tab aktif yang bisa diklik; disembunyikan di layar sempit agar tab bar utuh. - Footer: hint aksi diprioritaskan; status diagnostik dibuang bila tak muat. - internal/version: versi build dipakai CLI & strip Info aplikasi. - audio: Play/Status aman untuk Engine nil (Model zero-value di tes). - Tes: 3 skenario E2E baru (CTA, cari toolbar, kolom aksi) + tes layout.
40 lines
722 B
Go
40 lines
722 B
Go
// Package version — string versi & build info (dipakai CLI dan TUI).
|
|
package version
|
|
|
|
import (
|
|
"runtime/debug"
|
|
"strings"
|
|
)
|
|
|
|
// String memakai build info VCS — tanpa ldflags.
|
|
func String() string {
|
|
info, ok := debug.ReadBuildInfo()
|
|
if !ok {
|
|
return "tia dev"
|
|
}
|
|
ver := info.Main.Version
|
|
if ver == "" || ver == "(devel)" || strings.HasPrefix(ver, "v0.0.0-") {
|
|
ver = "dev"
|
|
}
|
|
rev, dirty := "", false
|
|
for _, s := range info.Settings {
|
|
switch s.Key {
|
|
case "vcs.revision":
|
|
if len(s.Value) >= 7 {
|
|
rev = s.Value[:7]
|
|
}
|
|
case "vcs.modified":
|
|
dirty = s.Value == "true"
|
|
}
|
|
}
|
|
out := "tia " + ver
|
|
if rev != "" {
|
|
out += " (" + rev
|
|
if dirty {
|
|
out += "-dirty"
|
|
}
|
|
out += ")"
|
|
}
|
|
return out
|
|
}
|