aboutsummaryrefslogtreecommitdiffstats
path: root/TODO.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-06-24 10:33:08 +0200
committerDanilo M. <danix@danix.xyz>2026-06-24 10:33:08 +0200
commit40cd61ce7e0c4a8d35d0e0a505994f9f9b5e4d67 (patch)
tree245aba80c137bea9e22662ea4a6363741d4f97fe /TODO.md
parent9c301a8eac944083556b3dce297764b4fca7d49a (diff)
downloadgitctl-40cd61ce7e0c4a8d35d0e0a505994f9f9b5e4d67.tar.gz
gitctl-40cd61ce7e0c4a8d35d0e0a505994f9f9b5e4d67.zip
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 <noreply@anthropic.com>
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md28
1 files changed, 14 insertions, 14 deletions
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 <days>` 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.