Skip to content

Commit 998beb0

Browse files
committed
feat(xait): add filtered trace queues
1 parent 778e16f commit 998beb0

1 file changed

Lines changed: 67 additions & 7 deletions

File tree

local/rg-trace-feedback.el

Lines changed: 67 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,27 @@
3838
(defconst rg/trace-feedback--buckets
3939
'("tbd" "submitted" "noResult" "not_applicable"))
4040

41+
(defconst rg/trace-feedback-monitor-category
42+
"Monitor / Subagent Task / Background Task Issues")
43+
44+
(defconst rg/trace-feedback-categories
45+
(list rg/trace-feedback-monitor-category
46+
"Intent Understanding / Instruction Following"
47+
"Code Correctness"
48+
"Code Scope"
49+
"Code Quality"
50+
"Regression Safety"
51+
"Dangerous Actions"
52+
"Laziness - Unnecessary Ask"
53+
"Laziness - Task Incomplete"
54+
"Laziness - Self verification"
55+
"Tool Call Inefficiencies"
56+
"Hallucination"
57+
"Transparency"
58+
"Reject Premise / Bullshit Actions"
59+
"Presentation"
60+
"Other"))
61+
4162
(defun rg/trace-feedback--require-root ()
4263
"Return the configured trace root or raise a user error."
4364
(unless (and rg/trace-feedback-vault-root
@@ -310,7 +331,7 @@ Signal a user error and display the output when xait exits nonzero."
310331
(defvar rg-trace-feedback-rank-mode-map
311332
(let ((map (make-sparse-keymap)))
312333
(set-keymap-parent map special-mode-map)
313-
(define-key map (kbd "g") #'rg/trace-feedback-rank)
334+
(define-key map (kbd "g") #'rg/trace-feedback-refresh)
314335
(define-key map (kbd "q") #'quit-window)
315336
(define-key map (kbd "/") #'rg/trace-feedback-rank-search)
316337
map)
@@ -319,6 +340,9 @@ Signal a user error and display the output when xait exits nonzero."
319340
(define-derived-mode rg-trace-feedback-rank-mode special-mode "xait-rank"
320341
"Major mode for xait trace queue output.")
321342

343+
(defvar-local rg/trace-feedback--queue-args nil
344+
"xait argument list used to populate the current queue buffer.")
345+
322346
(defun rg/trace-feedback-rank-search ()
323347
"Search the rank buffer with Consult when available."
324348
(interactive)
@@ -335,19 +359,50 @@ Signal a user error and display the output when xait exits nonzero."
335359
(erase-buffer)
336360
(insert output)
337361
(goto-char (point-min))
338-
(rg-trace-feedback-rank-mode)))
362+
(rg-trace-feedback-rank-mode)
363+
(setq rg/trace-feedback--queue-args (copy-sequence args))))
339364
(display-buffer buffer)
340365
buffer))
341366

342-
(defun rg/trace-feedback-rank ()
343-
"Open the ranked trace feedback queue."
367+
(defun rg/trace-feedback-refresh ()
368+
"Refresh the current queue with the arguments that opened it."
344369
(interactive)
370+
(unless rg/trace-feedback--queue-args
371+
(user-error "This buffer has no saved xait queue arguments"))
345372
(rg/trace-feedback--queue-buffer
346-
"*xait trace rank*"
373+
(buffer-name) rg/trace-feedback--queue-args))
374+
375+
(defun rg/trace-feedback--rank-args (&optional category)
376+
"Return ranked-queue arguments, optionally filtered by CATEGORY."
377+
(append
347378
(list "db" "trace" "rank" "--model"
348379
(or rg/trace-feedback-default-model
349380
(user-error "Set the default trace model"))
350-
"--spread")))
381+
"--spread")
382+
(when category (list "--category" category))))
383+
384+
(defun rg/trace-feedback-rank ()
385+
"Open the ranked trace feedback queue."
386+
(interactive)
387+
(rg/trace-feedback--queue-buffer
388+
"*xait trace rank*"
389+
(rg/trace-feedback--rank-args)))
390+
391+
(defun rg/trace-feedback-filter-category (category)
392+
"Open the ranked trace queue filtered by CATEGORY."
393+
(interactive
394+
(list (completing-read "Trace category: "
395+
rg/trace-feedback-categories nil nil)))
396+
(when (string-empty-p (string-trim category))
397+
(user-error "A category filter is required"))
398+
(rg/trace-feedback--queue-buffer
399+
(format "*xait trace rank: %s*" category)
400+
(rg/trace-feedback--rank-args category)))
401+
402+
(defun rg/trace-feedback-monitor ()
403+
"Open the ranked monitor and background-task findings queue."
404+
(interactive)
405+
(rg/trace-feedback-filter-category rg/trace-feedback-monitor-category))
351406

352407
(defun rg/trace-feedback-status ()
353408
"Open the xait trace status output."
@@ -373,6 +428,8 @@ Signal a user error and display the output when xait exits nonzero."
373428
rg/trace-feedback-mark-not-submitted)]
374429
["Queue"
375430
("r" "Ranked queue" rg/trace-feedback-rank)
431+
("f" "Filter category" rg/trace-feedback-filter-category)
432+
("m" "Monitor queue" rg/trace-feedback-monitor)
376433
("t" "Status" rg/trace-feedback-status)]]))))
377434

378435
(defun rg/trace-feedback-dispatch ()
@@ -387,7 +444,8 @@ Signal a user error and display the output when xait exits nonzero."
387444
"Trace command: "
388445
'("rg/trace-feedback-new" "rg/trace-feedback-lint-export"
389446
"rg/trace-feedback-submit" "rg/trace-feedback-mark-not-submitted"
390-
"rg/trace-feedback-rank" "rg/trace-feedback-status")
447+
"rg/trace-feedback-rank" "rg/trace-feedback-filter-category"
448+
"rg/trace-feedback-monitor" "rg/trace-feedback-status")
391449
nil t)))))
392450

393451
(defun rg/trace-feedback-install-keybindings ()
@@ -405,6 +463,8 @@ Signal a user error and display the output when xait exits nonzero."
405463
"s" #'rg/trace-feedback-submit
406464
"c" #'rg/trace-feedback-mark-not-submitted
407465
"r" #'rg/trace-feedback-rank
466+
"f" #'rg/trace-feedback-filter-category
467+
"m" #'rg/trace-feedback-monitor
408468
"t" #'rg/trace-feedback-status)))
409469

410470
(defun rg/trace-feedback-load-private-settings ()

0 commit comments

Comments
 (0)