From 9809e0dfc43ec1196bc18461e90118c2f9addf45 Mon Sep 17 00:00:00 2001 From: furiosa Date: Sat, 24 Jan 2026 10:13:31 -0800 Subject: [PATCH] fix(plugin): don't record false success when gt plugin run only prints instructions The `gt plugin run` command was recording a "success" run even though it only prints plugin instructions for an agent/user to execute - it doesn't actually run the plugin. This poisoned the cooldown gate: CountRunsSince counted these false successes, preventing actual executions from running because the gate appeared to have recent successful runs. Remove the recording from `gt plugin run`. The actual plugin execution (by whatever follows the printed instructions) should record the result. Co-Authored-By: Claude Opus 4.5 --- internal/cmd/plugin.go | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/internal/cmd/plugin.go b/internal/cmd/plugin.go index 40bde4c0..872014cb 100644 --- a/internal/cmd/plugin.go +++ b/internal/cmd/plugin.go @@ -433,19 +433,10 @@ func runPluginRun(cmd *cobra.Command, args []string) error { fmt.Printf("%s\n", style.Bold.Render("Instructions:")) fmt.Println(p.Instructions) - // Record the run - recorder := plugin.NewRecorder(townRoot) - beadID, err := recorder.RecordRun(plugin.PluginRunRecord{ - PluginName: p.Name, - RigName: p.RigName, - Result: plugin.ResultSuccess, // Manual runs are marked success - Body: "Manual run via gt plugin run", - }) - if err != nil { - fmt.Fprintf(os.Stderr, "Warning: failed to record run: %v\n", err) - } else { - fmt.Printf("\n%s Recorded run: %s\n", style.Dim.Render("●"), beadID) - } + // NOTE: We intentionally do NOT record a run here. This command only prints + // instructions for an agent/user to execute - it doesn't actually run the plugin. + // Recording "success" here would poison the cooldown gate, preventing real executions. + // The actual execution (by whatever follows these instructions) should record the result. return nil }