Skip to content

Tags: cego/gitte

Tags

2.1.3

Toggle 2.1.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(actions): make copy-to-clipboard resilient (#242)

* fix(actions): make copy-to-clipboard resilient

Extract clipboard logic into actions/clipboard.go and harden it:

- Bias OSC 52 first when SSH_TTY/SSH_CONNECTION is set; native tools
  would otherwise target the SSH server's clipboard, not the user's.
- Bound each native attempt with a 2s timeout and 1s WaitDelay; treat
  exec.ErrWaitDelay as success since xclip/xsel daemonize and hold the
  inherited stdin pipe (golang/go#13155).
- Gate wl-copy on a live Wayland socket via XDG_RUNTIME_DIR/WAYLAND_DISPLAY.
- Wrap OSC 52 for tmux (\$TMUX) and GNU screen (\$STY+screen TERM) using
  the go-osc52 library so it works under tmux set-clipboard on / screen DCS
  pass-through.
- Skip OSC 52 when the payload exceeds 64 KB (most terminals silently drop
  oversized sequences) and surface a clear toast pointing to 'w' (save to
  file).
- Emit OSC 52 to stderr instead of stdout so the escape cannot race with
  the BubbleTea inline renderer.
- Restrict the macOS ladder to pbcopy (no Linux tools).
- Add unit tests covering the candidate ladder, SSH bias, OSC 52 length
  cap, tmux/screen wrapping, and WaitDelay handling.

* fix(actions): address PR review on clipboard resilience

- Tighten isWaylandLive: skip wl-copy when XDG_RUNTIME_DIR is unset
  rather than attempting a doomed 2 s invocation.
- Thread the resolved binary path from lookPath into exec.CommandContext
  to eliminate the duplicate PATH search and TOCTOU window.
- For oversized payloads OSC 52 now copies the last 64 KB instead of
  refusing — the tail is where task-log errors usually live, and the
  full log is still one keypress away via 'w'. Truncation respects
  UTF-8 rune boundaries.
- Toast surfaces truncation explicitly when OSC 52 was used.

* fix(actions): tighten OSC 52 truncation tests

- Decode the OSC 52 payload in the tail-truncation test rather than
  doing a base64 substring match. The substring check only worked
  because the kept portion happened to start on a 3-byte block
  boundary; with different sizes it would silently flake.
- Reconstruct the rune-boundary test so the naive cut lands on a
  UTF-8 continuation byte (asymmetric padding around a single "é"),
  and assert the decoded length to prove the cut walked forward.

2.1.2

Toggle 2.1.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(executor): reject duplicate task names with a clear error (#239)

Two tasks sharing the same name caused ValidateNoCycles to false-positive
as a dependency cycle with an empty member list ("dependency cycle
detected among tasks: "), because Kahn's processed-vs-len(tasks) check
counts unique nodes but compares against the raw slice length.

Detect duplicates explicitly during graph construction and surface them
as such. Also dedupe discovered repos in gitops.Discover so overlapping
source configs no longer collide on the Host+Path task name.

2.1.1

Toggle 2.1.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(gitops): clean failure display in TUI grid and post-run summary (#…

…236)

Live grid now shows only the project name on failure (no inline error
text), matching the startup checks TUI style.

printSummary renders each failed repo as a multi-line block: the repo
name and elapsed time on the first line, followed by indented dimmed
error lines — making multiline git errors readable instead of broken.

truncateToVisualWidth now appends … when truncating so it is clear
content was cut.

2.1.0

Toggle 2.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat(actions): restore task preamble log and fix clipboard keybindings (

#235)

* feat(actions): restore task preamble log and fix clipboard fallback order

Re-add the dir/cmd/env preamble that was printed at the top of each task
log in the old implementation. emitTaskPreamble emits the working directory,
command, and any gitte-injected env vars (project env, env_when, feature
gates) before the command starts, making logs self-contained for debugging.

Fix copyToClipboardOrFile to try native clipboard tools before OSC 52.
Native tools provide a real exit-code signal; OSC 52 has no feedback
mechanism and silently succeeds even in terminals that do not support it.
OSC 52 is now used as a best-effort fallback for SSH sessions and reports
a distinct "sent via OSC 52 (terminal clipboard)" toast message.

* refactor(actions): split clipboard and save-to-file into separate keybindings

c: copies to clipboard (native tools → OSC 52, errors if nothing available).
w: always writes a temp file and shows the path.

Removes the silent fallback where clipboard failure would silently produce a
file instead, making the two operations explicit and independently reachable.

2.0.0

Toggle 2.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
docs: modernise README, add config ToC, fix outdated clean prompt (#225)

* docs: modernise README, add ToC to config reference, fix outdated clean prompt text

* docs: update tagline to highlight monorepo-like development

2.0.0-rc.17

Toggle 2.0.0-rc.17's commit message
fix(clean): single-keypress prompts with descriptive option labels

2.0.0-rc.16

Toggle 2.0.0-rc.16's commit message
Default version to dev so --version always works

2.0.0-rc.15

Toggle 2.0.0-rc.15's commit message
Rename apt domain to gitte-apt.cego.dk, remove continue-on-error from…

… APT step

2.0.0-rc.14

Toggle 2.0.0-rc.14's commit message
Publish GPG public key to R2 so apt can verify the repository

2.0.0-rc.13

Toggle 2.0.0-rc.13's commit message
Fix tab completion: run initGlobals for __complete, skip only for scr…

…ipt generation