The sidebar/dock filter fields (the shared ClideFilterBox) had no CLI peer — a one-way, UI-only affordance that broke D-6 parity. Add the drive+observe verb `clide ui filter <address> [<text>]`, routed entirely through the kernel MessageBus pub/sub so a box reacts to a published message identically whether the trigger was a UI keystroke or the CLI — keeping extensions first-class (no dispatcher→widget wiring). - ClideFilterBox gains an `address`; when set it listens on `filter.set` for its address and republishes its value on `filter.state`. Null address keeps the box a kernel-free UI widget. - FilterStateCache (new kernel service) caches the latest `filter.state` per address — the bus has no retention, so this backs the observe-half. - ui.filter: with text → publishes `filter.set` (drive); without → reads the cache (observe). Honest toolError when there is no live UI. - Address every box: decisions/tickets/files/git/output/problems panes, the four search boxes, and the pql search/query/markdown inputs. Addresses are the ids from `clide pane list` (e.g. decisions.panel). settings.json: allow the `clide` CLI + relevant skills. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
66 lines
1.6 KiB
JSON
66 lines
1.6 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [
|
|
"Skill(pql)",
|
|
"Skill(clide)",
|
|
"Skill(whats-next)",
|
|
"Skill(git-commit)",
|
|
"Bash(git add *)",
|
|
"Bash(git commit *)",
|
|
"Bash(git status *)",
|
|
"Bash(git diff *)",
|
|
"Bash(git log *)",
|
|
"Bash(git show *)",
|
|
"Bash(git branch *)",
|
|
"Bash(git checkout *)",
|
|
"Bash(git switch *)",
|
|
"Bash(git merge *)",
|
|
"Bash(git rebase *)",
|
|
"Bash(git stash *)",
|
|
"Bash(git fetch *)",
|
|
"Bash(git pull *)",
|
|
"Bash(git push *)",
|
|
"Bash(git tag *)",
|
|
"Bash(git remote *)",
|
|
"Bash(git rev-parse *)",
|
|
"Bash(git symbolic-ref *)",
|
|
"Bash(git ls-remote *)",
|
|
"Bash(git config *)",
|
|
"Bash(git blame *)",
|
|
"Bash(git shortlog *)",
|
|
"Bash(git cherry-pick *)",
|
|
"Bash(dart *)",
|
|
"Bash(flutter *)",
|
|
"Bash(make *)",
|
|
"Bash(pql)",
|
|
"Bash(pql *)",
|
|
"Bash(clide)",
|
|
"Bash(clide *)",
|
|
"Bash(awk *)"
|
|
],
|
|
"deny": [
|
|
"Bash(rm -rf /*)",
|
|
"Bash(rm -rf ~*)",
|
|
"Bash(rm -rf $HOME*)",
|
|
"Bash(sudo rm *)",
|
|
"Bash(sudo chmod *)",
|
|
"Bash(sudo chown *)",
|
|
"Bash(mkfs*)",
|
|
"Bash(mkfs.*)",
|
|
"Bash(dd if=*)",
|
|
"Bash(git push --force*)",
|
|
"Bash(git push -f*)",
|
|
"Bash(git push --force-with-lease*)",
|
|
"Bash(git reset --hard*)",
|
|
"Bash(git clean -fd*)",
|
|
"Bash(git clean -fdx*)",
|
|
"Bash(git clean -ffd*)",
|
|
"Bash(git branch -D *)",
|
|
"Bash(git checkout -- *)",
|
|
"Bash(git restore .*)",
|
|
"Bash(chmod -R 777 *)",
|
|
"Bash(chmod 777 *)"
|
|
]
|
|
}
|
|
}
|