diff --git a/docs-ai/002-custom-commands/005-global-custom-commands-action.md b/docs-ai/002-custom-commands/005-global-custom-commands-action.md new file mode 100644 index 00000000..8bc9fd6b --- /dev/null +++ b/docs-ai/002-custom-commands/005-global-custom-commands-action.md @@ -0,0 +1,30 @@ +# 002.005 — Global Custom Commands: Action Log + +## Timeline + +| Date | Change | Ref | +| --- | --- | --- | +| 2026-07-13 | Added global command storage, resolution, settings UI, source-qualified routing, tests, and manual documentation. | `f481db26` | + +## Outcome & current state (as of 2026-07-13) + +- `UserGlobalSettings` persists `customCommands` in `~/.prowl/global.onevcat.json` through + `UserGlobalSettingsKey`. +- `EffectiveCustomCommand` resolves local commands before global commands and suppresses a + global command when a trimmed, case-insensitive local title matches. +- `AppFeature`, `WorktreeCommands`, `WorktreeDetailView`, and `CommandPaletteFeature` use + source-qualified command identity. Local bindings retain `custom_command.` and + global bindings use `custom_command.global.`; a local shortcut collision disables + the global binding. +- Settings → Custom Commands edits the global list. The toolbar marks global entries and + the overflow menu receives the source-qualified commands. + +## Deviations from plan + +The global editor is intentionally compact rather than extracting the existing +repository editor into a shared view. It supports the same persisted command fields while +keeping the repository editor unchanged. + +## Open questions + +None. diff --git a/docs/.sync-meta.json b/docs/.sync-meta.json index d8d7e5cd..e007528c 100644 --- a/docs/.sync-meta.json +++ b/docs/.sync-meta.json @@ -1,6 +1,6 @@ { "_comment": "Metadata for the docs/ manual. The last_synced_commit is the commit at which docs/ was last verified against the implementation; the sync-docs skill (.claude/skills/sync-docs/SKILL.md) diffs HEAD against it and updates this file. Committed to git on purpose so the baseline persists across sessions and machines. A dotfile + .json so a future docs website does not render it as a page.", - "last_synced_commit": "168d8e9c8e61655f57dcb8411092b0af9263e7e0", - "last_synced_date": "2026-07-10", - "note": "Release prep. All user-facing changes in range were doc-synced in their own PRs (#545 sound picker, #546 mute viewed surface, #542 editor additions, #543 TERM_PROGRAM, #541 gh hardening); #544 symlink-preserving writes and PR tri-state fixes need no doc changes." + "last_synced_commit": "f481db268318eb52963b567b03e7c612f7a94ada", + "last_synced_date": "2026-07-13", + "note": "Verified global Custom Commands, including Settings, toolbar/menu, palette, local precedence, storage, and shortcut behavior." }