Files
Jason Thistlethwaite 9ee9eb3ec6 Organized
2026-10-17 20:50:35 -04:00

2.3 KiB

@everyone I think we should do some tune-ups and checks on the "advanced" Redmine CLI located in ~/projects/redmine/ that is pointed to by ~/projects/redmine/bin/rtl

We kind of had a history with this tool:

  • Initially, it kicked ass and was very fast and powerful, but it lacked a nice TUI
  • We attempted to build a TUI using curses, and found that had severe limitations on the UI; the functionality was powerful, but the UI/UX sucked ass.
  • We tried rebuilding a TUI using more modern libraries and apps as reference points, and somehow totally lost the plot. Not only did we end up with incomplete features agents swore they had completed, we ended up regressing the codebase terribly, to the point even the original CLI features became unreliable, didn't do what the docs/specs said they did, and all kinds of problems. Nobody involved was able to identify a straight path to fixing that.
  • We only recently seem to have restored the basic CLI functionality of the tool. From what I understand, the majority of the problem(s) turned out to be:

a) Unreachable code in CLI argument parsing b) Something to do with order of arguments supplied before or after others would cause silent failures / weird behavior c) Unverified, but we've seen evidence there is a bug that can leave the CACHE in an unusable state if the script is terminated before it finishes a sync, and the code is seems to be unable to recover from or recognize that problem. On subsequent runs, it will act like there are no problems, it just doesn't give correct output if this happens.

As far as I know, at this point, the following things works correctly:

  • jason@onyx > ./bin/rtl sync --remote-status-id '*' --remote-updated-since 30d --run-log --run-log-keep 20 run every 5-10 minutes to keep the local cache updated
  • the walk verb, except it does not have a help menu for what commands it supports (n, p, q, r)
  • view verb, but unclear if it displays local cache or fetches live
  • materialize-queues seems to work
  • contacts-sync
    • Need to make sure this does not delete old contacts if run, for instance, with something like --nax0contacts 50

Minor issues

  • draft verb:
    • doesn't have mechanism to show a drafted change
    • should have simple way to clear old drafts or something

Definitely not working:

  • triage verb