Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
c8ab774
Plugin system: hooks, themes, /themes command, watcher lock, test fixes
giveen Jul 25, 2026
74494fd
plugin: complete OMP-parity — marketplace resolver, update command, O…
giveen Jul 25, 2026
af52d6a
plugin: wire CallOnToolResultHooks into orchestrator tool-execution l…
giveen Jul 26, 2026
65cc115
fix: resolve compile errors in plugin system build
giveen Jul 26, 2026
972aad7
fix: restore os import and 'i' loop variable in command.go
giveen Jul 26, 2026
7ec8178
fix: restore compile errors in plugin branch
giveen Jul 26, 2026
1a3b135
fix: reconcile upstream API drift on plugin branch
giveen Jul 26, 2026
ab1077f
chore+fix: align plugin/entrypoint to branch APIs and compile
giveen Jul 26, 2026
4de4122
fix(plugin): universal format support + install fixes
giveen Jul 27, 2026
cc00617
fix(plugin): detect flat-format .mcp.json from Claude Code plugins
giveen Jul 27, 2026
4f604d4
merge: resolve upstream conflicts in AvailableCommands type migration
giveen Jul 27, 2026
3e0907a
fix(plugin): manifest parsing and MCP server dir threading
giveen Jul 27, 2026
5cd0271
fix(plugin): intercept --help before subcommand dispatch
giveen Jul 27, 2026
939d649
fix(plugin): support dual skill layout in discovery
giveen Jul 27, 2026
e49e3c3
fix(plugin): remove CLONE_NEWPID isolation
giveen Jul 27, 2026
55f1492
test(plugin): reconcile plugin tests with current APIs
giveen Jul 27, 2026
69edf75
test(tui): align with bubbletea v2 and theming
giveen Jul 27, 2026
4587d21
fix(plugin): clean orphan @scope dir + self-clean skills on remove
giveen Jul 29, 2026
6a99702
plugin: reject manifest names that escape the plugin store
giveen Aug 4, 2026
bead207
Merge remote-tracking branch 'upstream/main' into plugin
giveen Aug 4, 2026
705a8d0
fix(plugin): match slash commands with trailing arguments
giveen Aug 4, 2026
55aea22
fix(plugin): require user confirmation for inline plugin tools
giveen Aug 4, 2026
e143eca
fix(plugin): eliminate nested RLock deadlock in HandleCommand
giveen Aug 4, 2026
4c0e215
fix(plugin): raise hook stdin payload cap from 256B to 16MiB
giveen Aug 4, 2026
8a5b3eb
fix(plugin): onToolResult payload must marshal plain-text results as …
giveen Aug 4, 2026
bb8603f
refactor(plugin): remove unwired onInput/onTurnStart/onTurnEnd hooks
giveen Aug 4, 2026
48fe58d
test(plugin): make clone-failure test deterministic and offline
giveen Aug 4, 2026
529a055
fix(plugin): resolve remaining pre-existing test failures
giveen Aug 4, 2026
105fb0a
fix(plugin): overhaul plugin lifecycle, tool naming, and hooks
giveen Aug 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
395 changes: 374 additions & 21 deletions cmd/late/main.go

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions cmd/late/main_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package main

import (
"testing"
)

// TestPluginInlineTool_RequiresConfirmation guards the documented contract
// that plugin inline tools (arbitrary scripts) go through the normal user
// confirmation flow. plugin-example.md: "user confirmation still prompts
// the user"; plugin-sdk.md: "plugin tools respect user confirmation".
func TestPluginInlineTool_RequiresConfirmation(t *testing.T) {
tool := pluginInlineTool{name: "example:lookup"}
if !tool.RequiresConfirmation(nil) {
t.Error("plugin inline tool must require confirmation before running its script")
}
}
Loading