Files
m3ta-chironandClaude Fable 5.1 85fa64cfe6 refactor: switch the whole project to English
talk is going to be published. Code comments, CLI output, error messages,
daemon log lines, MCP descriptions and results, test names and assertions,
README, spec, skill, build scripts and flake are now English. Only the
spoken announcement texts stay bilingual: the wrap result and the test
sentence are German or English depending on the detected language.

Language fallback is now configurable: `lang = "en" | "de"` (env
TALK_LANG, default en) is used when detection cannot tell (numbers, single
words, ties) and for talk's own announcements. langdetect.Detect takes the
fallback as an argument instead of hard-coding German. `talk setup` asks for
it; `talk doctor` and `talk status` show it.

Vocabulary pinned across packages so the process-boundary tests observe
stable strings: chain log lines ("chain: tier X skipped (not available)",
"falling back to the next tier", "spoken via X"), queue lines ("discarded:
quiet hours ... active", "replaced by toast", "max_age"), CLI notes
("speaking directly", "daemon started at", "no daemon", "nothing to cancel"),
status block with aligned English labels, MCP messages, origin guard 403.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-24 11:15:35 +02:00

37 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env sh
# Builds the talk release artifacts for all target platforms, reproducibly
# with nothing but the Go toolchain (no GoReleaser needed; this way the same
# step runs identically locally, in Gitea Actions and in nix).
#
# Asset contract (agent-lib pattern, the fleet rollout pins to it):
# dist/talk_<os>_<arch>[.exe] static binary, CGO_ENABLED=0
# dist/checksums.txt sha256 per asset (sha256sum format)
#
# Usage: scripts/release.sh [VERSION] (default: git describe, else "dev")
# Env: TARGETS="linux/amd64 ..." overrides the matrix.
set -eu
cd "$(dirname "$0")/.."
VERSION="${1:-$(git describe --tags --always --dirty 2>/dev/null || echo dev)}"
VERSION="${VERSION#v}"
COMMIT="$(git rev-parse --short HEAD 2>/dev/null || echo unknown)"
TARGETS="${TARGETS:-linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64 windows/arm64}"
DIST=dist
rm -rf "$DIST"
mkdir -p "$DIST"
for target in $TARGETS; do
os="${target%/*}"
arch="${target#*/}"
out="$DIST/talk_${os}_${arch}"
[ "$os" = windows ] && out="$out.exe"
echo "build $out"
CGO_ENABLED=0 GOOS="$os" GOARCH="$arch" go build -trimpath \
-ldflags "-s -w -X main.version=$VERSION -X main.commit=$COMMIT" \
-o "$out" ./cmd/talk
done
(cd "$DIST" && sha256sum talk_* > checksums.txt)
echo
echo "Version $VERSION ($COMMIT):"
cat "$DIST/checksums.txt"