Marketplace: Tauri commands, store-owned fields and startup refresh

The 21 marketplace commands, registered and granted; marketplace fields
kept store-owned in update_settings/update_project; a background refresh
of every marketplace at app start.

- apply_marketplace_now emits marketplace-sync-finished per project (F4).
- Settings export carries marketplace account tokens in ExportedSecrets
  (account id -> token) and import restores them; imported accounts,
  marketplaces and global installs are validated with the commands' own
  rules before anything is written. The import preview discloses the
  marketplace count, token count and global hook installs, and warns on
  the latter (F10).
- refresh_pins and cache removal hold the repo lock (F11).
- ops::validate_host/validate_branch delegate to auth::valid_host and
  git::valid_branch (F13).
- A finished gh container login frees only its own cancel slot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-27 09:41:59 -07:00
co-authored by Claude Opus 5.5
parent 7a55c11b31
commit f4153dce42
17 changed files with 2111 additions and 6 deletions
@@ -350,6 +350,24 @@
"const": "allow-acquire-claude-token",
"markdownDescription": "Enables the acquire_claude_token command without any pre-configured scope."
},
{
"description": "Enables the add_marketplace command without any pre-configured scope.",
"type": "string",
"const": "allow-add-marketplace",
"markdownDescription": "Enables the add_marketplace command without any pre-configured scope."
},
{
"description": "Enables the add_marketplace_gh_host_account command without any pre-configured scope.",
"type": "string",
"const": "allow-add-marketplace-gh-host-account",
"markdownDescription": "Enables the add_marketplace_gh_host_account command without any pre-configured scope."
},
{
"description": "Enables the add_marketplace_token_account command without any pre-configured scope.",
"type": "string",
"const": "allow-add-marketplace-token-account",
"markdownDescription": "Enables the add_marketplace_token_account command without any pre-configured scope."
},
{
"description": "Enables the add_project command without any pre-configured scope.",
"type": "string",
@@ -362,6 +380,12 @@
"const": "allow-add-scheduled-task",
"markdownDescription": "Enables the add_scheduled_task command without any pre-configured scope."
},
{
"description": "Enables the apply_marketplace_now command without any pre-configured scope.",
"type": "string",
"const": "allow-apply-marketplace-now",
"markdownDescription": "Enables the apply_marketplace_now command without any pre-configured scope."
},
{
"description": "Enables the apply_settings_import command without any pre-configured scope.",
"type": "string",
@@ -398,6 +422,12 @@
"const": "allow-cancel-claude-token",
"markdownDescription": "Enables the cancel_claude_token command without any pre-configured scope."
},
{
"description": "Enables the cancel_marketplace_gh_login command without any pre-configured scope.",
"type": "string",
"const": "allow-cancel-marketplace-gh-login",
"markdownDescription": "Enables the cancel_marketplace_gh_login command without any pre-configured scope."
},
{
"description": "Enables the check_browser_view_support command without any pre-configured scope.",
"type": "string",
@@ -524,6 +554,12 @@
"const": "allow-export-settings",
"markdownDescription": "Enables the export_settings command without any pre-configured scope."
},
{
"description": "Enables the forget_marketplace_installs command without any pre-configured scope.",
"type": "string",
"const": "allow-forget-marketplace-installs",
"markdownDescription": "Enables the forget_marketplace_installs command without any pre-configured scope."
},
{
"description": "Enables the get_app_version command without any pre-configured scope.",
"type": "string",
@@ -590,6 +626,12 @@
"const": "allow-get-help-content",
"markdownDescription": "Enables the get_help_content command without any pre-configured scope."
},
{
"description": "Enables the get_marketplace_sync_report command without any pre-configured scope.",
"type": "string",
"const": "allow-get-marketplace-sync-report",
"markdownDescription": "Enables the get_marketplace_sync_report command without any pre-configured scope."
},
{
"description": "Enables the get_migration_state command without any pre-configured scope.",
"type": "string",
@@ -650,6 +692,12 @@
"const": "allow-install-browser-view-support",
"markdownDescription": "Enables the install_browser_view_support command without any pre-configured scope."
},
{
"description": "Enables the install_marketplace_item command without any pre-configured scope.",
"type": "string",
"const": "allow-install-marketplace-item",
"markdownDescription": "Enables the install_marketplace_item command without any pre-configured scope."
},
{
"description": "Enables the list_aws_profiles command without any pre-configured scope.",
"type": "string",
@@ -674,6 +722,18 @@
"const": "allow-list-container-files",
"markdownDescription": "Enables the list_container_files command without any pre-configured scope."
},
{
"description": "Enables the list_marketplace_snapshots command without any pre-configured scope.",
"type": "string",
"const": "allow-list-marketplace-snapshots",
"markdownDescription": "Enables the list_marketplace_snapshots command without any pre-configured scope."
},
{
"description": "Enables the list_marketplace_updates command without any pre-configured scope.",
"type": "string",
"const": "allow-list-marketplace-updates",
"markdownDescription": "Enables the list_marketplace_updates command without any pre-configured scope."
},
{
"description": "Enables the list_notes command without any pre-configured scope.",
"type": "string",
@@ -692,6 +752,18 @@
"const": "allow-list-scheduled-tasks",
"markdownDescription": "Enables the list_scheduled_tasks command without any pre-configured scope."
},
{
"description": "Enables the marketplace_gh_host_available command without any pre-configured scope.",
"type": "string",
"const": "allow-marketplace-gh-host-available",
"markdownDescription": "Enables the marketplace_gh_host_available command without any pre-configured scope."
},
{
"description": "Enables the marketplace_item_diff command without any pre-configured scope.",
"type": "string",
"const": "allow-marketplace-item-diff",
"markdownDescription": "Enables the marketplace_item_diff command without any pre-configured scope."
},
{
"description": "Enables the migrate_project_to_base command without any pre-configured scope.",
"type": "string",
@@ -776,6 +848,12 @@
"const": "allow-reconcile-project-statuses",
"markdownDescription": "Enables the reconcile_project_statuses command without any pre-configured scope."
},
{
"description": "Enables the refresh_marketplaces command without any pre-configured scope.",
"type": "string",
"const": "allow-refresh-marketplaces",
"markdownDescription": "Enables the refresh_marketplaces command without any pre-configured scope."
},
{
"description": "Enables the regenerate_gateway_auth_token command without any pre-configured scope.",
"type": "string",
@@ -788,6 +866,18 @@
"const": "allow-regenerate-web-terminal-token",
"markdownDescription": "Enables the regenerate_web_terminal_token command without any pre-configured scope."
},
{
"description": "Enables the remove_marketplace command without any pre-configured scope.",
"type": "string",
"const": "allow-remove-marketplace",
"markdownDescription": "Enables the remove_marketplace command without any pre-configured scope."
},
{
"description": "Enables the remove_marketplace_account command without any pre-configured scope.",
"type": "string",
"const": "allow-remove-marketplace-account",
"markdownDescription": "Enables the remove_marketplace_account command without any pre-configured scope."
},
{
"description": "Enables the remove_project command without any pre-configured scope.",
"type": "string",
@@ -878,6 +968,12 @@
"const": "allow-set-gateway-api-key",
"markdownDescription": "Enables the set_gateway_api_key command without any pre-configured scope."
},
{
"description": "Enables the set_global_item_disabled command without any pre-configured scope.",
"type": "string",
"const": "allow-set-global-item-disabled",
"markdownDescription": "Enables the set_global_item_disabled command without any pre-configured scope."
},
{
"description": "Enables the set_scheduled_task_enabled command without any pre-configured scope.",
"type": "string",
@@ -896,6 +992,12 @@
"const": "allow-start-gateway",
"markdownDescription": "Enables the start_gateway command without any pre-configured scope."
},
{
"description": "Enables the start_marketplace_gh_container_login command without any pre-configured scope.",
"type": "string",
"const": "allow-start-marketplace-gh-container-login",
"markdownDescription": "Enables the start_marketplace_gh_container_login command without any pre-configured scope."
},
{
"description": "Enables the start_project_container command without any pre-configured scope.",
"type": "string",
@@ -968,12 +1070,36 @@
"const": "allow-terminal-resize",
"markdownDescription": "Enables the terminal_resize command without any pre-configured scope."
},
{
"description": "Enables the test_marketplace_account command without any pre-configured scope.",
"type": "string",
"const": "allow-test-marketplace-account",
"markdownDescription": "Enables the test_marketplace_account command without any pre-configured scope."
},
{
"description": "Enables the transcribe_audio command without any pre-configured scope.",
"type": "string",
"const": "allow-transcribe-audio",
"markdownDescription": "Enables the transcribe_audio command without any pre-configured scope."
},
{
"description": "Enables the uninstall_marketplace_item command without any pre-configured scope.",
"type": "string",
"const": "allow-uninstall-marketplace-item",
"markdownDescription": "Enables the uninstall_marketplace_item command without any pre-configured scope."
},
{
"description": "Enables the update_marketplace command without any pre-configured scope.",
"type": "string",
"const": "allow-update-marketplace",
"markdownDescription": "Enables the update_marketplace command without any pre-configured scope."
},
{
"description": "Enables the update_marketplace_item command without any pre-configured scope.",
"type": "string",
"const": "allow-update-marketplace-item",
"markdownDescription": "Enables the update_marketplace_item command without any pre-configured scope."
},
{
"description": "Enables the update_project command without any pre-configured scope.",
"type": "string",
@@ -1040,6 +1166,24 @@
"const": "deny-acquire-claude-token",
"markdownDescription": "Denies the acquire_claude_token command without any pre-configured scope."
},
{
"description": "Denies the add_marketplace command without any pre-configured scope.",
"type": "string",
"const": "deny-add-marketplace",
"markdownDescription": "Denies the add_marketplace command without any pre-configured scope."
},
{
"description": "Denies the add_marketplace_gh_host_account command without any pre-configured scope.",
"type": "string",
"const": "deny-add-marketplace-gh-host-account",
"markdownDescription": "Denies the add_marketplace_gh_host_account command without any pre-configured scope."
},
{
"description": "Denies the add_marketplace_token_account command without any pre-configured scope.",
"type": "string",
"const": "deny-add-marketplace-token-account",
"markdownDescription": "Denies the add_marketplace_token_account command without any pre-configured scope."
},
{
"description": "Denies the add_project command without any pre-configured scope.",
"type": "string",
@@ -1052,6 +1196,12 @@
"const": "deny-add-scheduled-task",
"markdownDescription": "Denies the add_scheduled_task command without any pre-configured scope."
},
{
"description": "Denies the apply_marketplace_now command without any pre-configured scope.",
"type": "string",
"const": "deny-apply-marketplace-now",
"markdownDescription": "Denies the apply_marketplace_now command without any pre-configured scope."
},
{
"description": "Denies the apply_settings_import command without any pre-configured scope.",
"type": "string",
@@ -1088,6 +1238,12 @@
"const": "deny-cancel-claude-token",
"markdownDescription": "Denies the cancel_claude_token command without any pre-configured scope."
},
{
"description": "Denies the cancel_marketplace_gh_login command without any pre-configured scope.",
"type": "string",
"const": "deny-cancel-marketplace-gh-login",
"markdownDescription": "Denies the cancel_marketplace_gh_login command without any pre-configured scope."
},
{
"description": "Denies the check_browser_view_support command without any pre-configured scope.",
"type": "string",
@@ -1214,6 +1370,12 @@
"const": "deny-export-settings",
"markdownDescription": "Denies the export_settings command without any pre-configured scope."
},
{
"description": "Denies the forget_marketplace_installs command without any pre-configured scope.",
"type": "string",
"const": "deny-forget-marketplace-installs",
"markdownDescription": "Denies the forget_marketplace_installs command without any pre-configured scope."
},
{
"description": "Denies the get_app_version command without any pre-configured scope.",
"type": "string",
@@ -1280,6 +1442,12 @@
"const": "deny-get-help-content",
"markdownDescription": "Denies the get_help_content command without any pre-configured scope."
},
{
"description": "Denies the get_marketplace_sync_report command without any pre-configured scope.",
"type": "string",
"const": "deny-get-marketplace-sync-report",
"markdownDescription": "Denies the get_marketplace_sync_report command without any pre-configured scope."
},
{
"description": "Denies the get_migration_state command without any pre-configured scope.",
"type": "string",
@@ -1340,6 +1508,12 @@
"const": "deny-install-browser-view-support",
"markdownDescription": "Denies the install_browser_view_support command without any pre-configured scope."
},
{
"description": "Denies the install_marketplace_item command without any pre-configured scope.",
"type": "string",
"const": "deny-install-marketplace-item",
"markdownDescription": "Denies the install_marketplace_item command without any pre-configured scope."
},
{
"description": "Denies the list_aws_profiles command without any pre-configured scope.",
"type": "string",
@@ -1364,6 +1538,18 @@
"const": "deny-list-container-files",
"markdownDescription": "Denies the list_container_files command without any pre-configured scope."
},
{
"description": "Denies the list_marketplace_snapshots command without any pre-configured scope.",
"type": "string",
"const": "deny-list-marketplace-snapshots",
"markdownDescription": "Denies the list_marketplace_snapshots command without any pre-configured scope."
},
{
"description": "Denies the list_marketplace_updates command without any pre-configured scope.",
"type": "string",
"const": "deny-list-marketplace-updates",
"markdownDescription": "Denies the list_marketplace_updates command without any pre-configured scope."
},
{
"description": "Denies the list_notes command without any pre-configured scope.",
"type": "string",
@@ -1382,6 +1568,18 @@
"const": "deny-list-scheduled-tasks",
"markdownDescription": "Denies the list_scheduled_tasks command without any pre-configured scope."
},
{
"description": "Denies the marketplace_gh_host_available command without any pre-configured scope.",
"type": "string",
"const": "deny-marketplace-gh-host-available",
"markdownDescription": "Denies the marketplace_gh_host_available command without any pre-configured scope."
},
{
"description": "Denies the marketplace_item_diff command without any pre-configured scope.",
"type": "string",
"const": "deny-marketplace-item-diff",
"markdownDescription": "Denies the marketplace_item_diff command without any pre-configured scope."
},
{
"description": "Denies the migrate_project_to_base command without any pre-configured scope.",
"type": "string",
@@ -1466,6 +1664,12 @@
"const": "deny-reconcile-project-statuses",
"markdownDescription": "Denies the reconcile_project_statuses command without any pre-configured scope."
},
{
"description": "Denies the refresh_marketplaces command without any pre-configured scope.",
"type": "string",
"const": "deny-refresh-marketplaces",
"markdownDescription": "Denies the refresh_marketplaces command without any pre-configured scope."
},
{
"description": "Denies the regenerate_gateway_auth_token command without any pre-configured scope.",
"type": "string",
@@ -1478,6 +1682,18 @@
"const": "deny-regenerate-web-terminal-token",
"markdownDescription": "Denies the regenerate_web_terminal_token command without any pre-configured scope."
},
{
"description": "Denies the remove_marketplace command without any pre-configured scope.",
"type": "string",
"const": "deny-remove-marketplace",
"markdownDescription": "Denies the remove_marketplace command without any pre-configured scope."
},
{
"description": "Denies the remove_marketplace_account command without any pre-configured scope.",
"type": "string",
"const": "deny-remove-marketplace-account",
"markdownDescription": "Denies the remove_marketplace_account command without any pre-configured scope."
},
{
"description": "Denies the remove_project command without any pre-configured scope.",
"type": "string",
@@ -1568,6 +1784,12 @@
"const": "deny-set-gateway-api-key",
"markdownDescription": "Denies the set_gateway_api_key command without any pre-configured scope."
},
{
"description": "Denies the set_global_item_disabled command without any pre-configured scope.",
"type": "string",
"const": "deny-set-global-item-disabled",
"markdownDescription": "Denies the set_global_item_disabled command without any pre-configured scope."
},
{
"description": "Denies the set_scheduled_task_enabled command without any pre-configured scope.",
"type": "string",
@@ -1586,6 +1808,12 @@
"const": "deny-start-gateway",
"markdownDescription": "Denies the start_gateway command without any pre-configured scope."
},
{
"description": "Denies the start_marketplace_gh_container_login command without any pre-configured scope.",
"type": "string",
"const": "deny-start-marketplace-gh-container-login",
"markdownDescription": "Denies the start_marketplace_gh_container_login command without any pre-configured scope."
},
{
"description": "Denies the start_project_container command without any pre-configured scope.",
"type": "string",
@@ -1658,12 +1886,36 @@
"const": "deny-terminal-resize",
"markdownDescription": "Denies the terminal_resize command without any pre-configured scope."
},
{
"description": "Denies the test_marketplace_account command without any pre-configured scope.",
"type": "string",
"const": "deny-test-marketplace-account",
"markdownDescription": "Denies the test_marketplace_account command without any pre-configured scope."
},
{
"description": "Denies the transcribe_audio command without any pre-configured scope.",
"type": "string",
"const": "deny-transcribe-audio",
"markdownDescription": "Denies the transcribe_audio command without any pre-configured scope."
},
{
"description": "Denies the uninstall_marketplace_item command without any pre-configured scope.",
"type": "string",
"const": "deny-uninstall-marketplace-item",
"markdownDescription": "Denies the uninstall_marketplace_item command without any pre-configured scope."
},
{
"description": "Denies the update_marketplace command without any pre-configured scope.",
"type": "string",
"const": "deny-update-marketplace",
"markdownDescription": "Denies the update_marketplace command without any pre-configured scope."
},
{
"description": "Denies the update_marketplace_item command without any pre-configured scope.",
"type": "string",
"const": "deny-update-marketplace-item",
"markdownDescription": "Denies the update_marketplace_item command without any pre-configured scope."
},
{
"description": "Denies the update_project command without any pre-configured scope.",
"type": "string",