mirror of
https://github.com/Twigpine/zero.git
synced 2026-11-11 23:40:28 -10:00
* chore(launch): MIT license field, windows-arm64 install guard, TUI TTY guard Three launch-readiness fixes the docs cleanup doesn't cover: - package.json: set "license": "MIT" (was the placeholder "SEE LICENSE IN LICENSE"), matching the LICENSE file and the README badge. - scripts/postinstall.mjs: skip gracefully on windows-arm64. (win32, arm64) resolves to a valid platform/arch but the release matrix ships no windows-arm64 artifact, so the installer would download a 404 and hard-fail npm install. Treat it like any unsupported target (warnSkip, exit 0) and point to the x64 build (which runs under emulation on Windows on ARM) or source. - internal/tui/run.go: fail fast when stdin is not a terminal. The interactive shell otherwise blocks forever in the Bubble Tea event loop on piped/redirected input (e.g. `echo "" | zero`); now it prints guidance toward `zero exec` and exits non-zero. Dependency-free ModeCharDevice check (no x/term added). Tests: windows-arm64 skips with exit 0; the interactive shell returns non-zero (not a hang) on non-TTY stdin. * fix(tui): use term.IsTerminal for the stdin guard; pin exit code in test Address review on the no-TTY guard: - Replace the os.Stdin.Stat()/ModeCharDevice heuristic with term.IsTerminal (github.com/charmbracelet/x/term, already in the module graph via bubbletea). It is a true TTY check — it rejects pipes, regular files, and non-terminal char devices like /dev/null — and fails closed: anything not a verified terminal blocks the interactive shell. - The test now asserts the documented exit code 2 from the guard, not just a non-zero result, so it proves the stdin guard fired.
40 lines
1.4 KiB
AMPL
40 lines
1.4 KiB
AMPL
module github.com/Gitlawb/zero
|
|
|
|
go 1.25.0
|
|
|
|
toolchain go1.26.4
|
|
|
|
require (
|
|
charm.land/bubbles/v2 v2.1.0
|
|
charm.land/bubbletea/v2 v2.0.7
|
|
charm.land/lipgloss/v2 v2.0.4
|
|
github.com/alecthomas/chroma/v2 v2.27.0
|
|
github.com/atotto/clipboard v0.1.4
|
|
github.com/aymanbagabas/go-udiff v0.4.1
|
|
github.com/charmbracelet/colorprofile v0.4.3
|
|
github.com/charmbracelet/x/ansi v0.11.7
|
|
github.com/charmbracelet/x/term v0.2.2
|
|
github.com/ledongthuc/pdf v0.0.0-20250511090121-5959a4027728
|
|
golang.org/x/sys v0.46.0
|
|
mvdan.cc/sh/v3 v3.13.1
|
|
)
|
|
|
|
require (
|
|
github.com/charmbracelet/ultraviolet v0.0.0-20260615092913-2399af76d5b1 // indirect
|
|
github.com/charmbracelet/x/exp/golden v0.0.0-20260615092313-b57e5e6d29bb // indirect
|
|
github.com/charmbracelet/x/termios v0.1.1 // indirect
|
|
github.com/charmbracelet/x/windows v0.2.2 // indirect
|
|
github.com/clipperhouse/displaywidth v0.11.0 // indirect
|
|
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
|
|
github.com/dlclark/regexp2/v2 v2.2.1 // indirect
|
|
github.com/go-quicktest/qt v1.102.0 // indirect
|
|
github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
|
|
github.com/mattn/go-runewidth v0.0.24 // indirect
|
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/rogpeppe/go-internal v1.15.0 // indirect
|
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
|
golang.org/x/exp v0.0.0-20260611194520-c48552f49976 // indirect
|
|
golang.org/x/sync v0.21.0 // indirect
|
|
)
|