From 40cd61ce7e0c4a8d35d0e0a505994f9f9b5e4d67 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 24 Jun 2026 10:33:08 +0200 Subject: feat: repo-name completion + label helper passthrough output - Bash completion now completes repo NAMES for desc/delete/add-remote at the name position, sourced from `gitctl repo list` (first field, header row dropped). One ssh call, only at that position, so a stray Tab never hits the network; the leading -y is handled. - call_helper prefixes every passthrough line from the helper (and the sync script it runs) with "server: " via _server_prefixed, so output like "No changes." reads as remote output instead of interleaved local noise. quiet=True callers (repo list) still get raw stdout to parse. Client-only, no helper redeploy needed. Self-test pins _server_prefixed. Co-Authored-By: Claude Opus 4.8 --- TODO.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'TODO.md') diff --git a/TODO.md b/TODO.md index 9bb4ad8..677217b 100644 --- a/TODO.md +++ b/TODO.md @@ -69,22 +69,22 @@ Done as part of items 1-3: both SKILL.md files updated (delete + `-y` limit), self-test coverage for every new helper verb, completion actions for `list` and `delete`, README and CLAUDE.md brought current. -## Remaining (not started) +## Remaining -These are the leftovers after the three features shipped. None block anything. +1. Repo-name bash completion -- DONE. `desc`, `delete`, and `add-remote` + complete repo NAMES at the name position from `gitctl repo list` (first + field, header dropped), one ssh call, only at that position so a stray Tab + never hits the network. `-y` before the subcommand is handled. -1. Repo-name bash completion. Now that `repo list` exists, complete repo NAMES - for `desc`, `delete`, and `add-remote` (the way `--section` is completed from - the server today). One ssh call (`gitctl repo list`, cut field 1), only when - completing the repo-name argument, so a stray Tab does not hit the network. - -2. Quiet the stray `No changes.` line. In `repo create` and `repo delete` the - `list-sections` / `add-section` helper passthrough prints a `No changes.` - line out of order, before the cgit-block message. Cosmetic only. Fix by - calling those helper steps with `quiet=True` (the flag already exists) and - printing a clean status, or by suppressing that specific echo. +2. Stray sync-script echo -- DONE. The `No changes.` / `Wrote N change(s).` + lines come from the server sync script, passed through over ssh. Rather than + hide them, `call_helper` now prefixes every passthrough line with `server: ` + (`_server_prefixed`), so they read clearly as remote output instead of + interleaved local noise. 3. FUTURE / YAGNI: `gc-trash --older-than ` helper verb to prune `TRASH_DIR` entries past a retention window, runnable from cron. The - timestamped trash layout already supports it; do not build until there is an - actual need to reclaim space. + timestamped trash layout already supports it. It would be the ONLY real + `rm -rf` in the tool, so it needs hard guards (realpath-under-TRASH_DIR + check, no symlink follow, validated timestamp parse) and a dry-run default. + Do not build until trash actually accumulates and space needs reclaiming. -- cgit v1.2.3