Repository navigation
feat(shortcuts): add Run Query, Open Connection and Add Rows actions to the Mac app - #3753
Merged
Merged
Conversation
datlechin
enabled auto-merge (squash)
October 21, 2026 10:18
…ts-actions # Conflicts: # apple/TablePro/Resources/Localizable.xcstrings
…ts-actions # Conflicts: # apple/TablePro/Resources/Localizable.xcstrings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ScriptQueryRunner, which now takes a channel (AppleScript or Shortcuts): same External Clients check, Safe Mode, audit log and history as AppleScript, under a new Shortcuts history source andOperationCaller.shortcuts.RowChangeStatementFactory,DataWriteExecutor), so drivers with their own row writes (Cassandra, DynamoDB, MongoDB) keep them. Safe Mode shows the whole batch with values once. One app-owned transaction on a pooled connection; an already open transaction is refused, never joined.RowPayload,PayloadRowandIntentDataErrormove toTablePro/Core/Shortcuts/Shared/, compiled by both apps. Row planning is extracted toPayloadRowPlanner, which the iOSRowInsertPlannernow calls.ExternalStatementGate.refuseWriteis the one home of the Read Only refusal.DataWriteStep.rowWritesis shared by the grid and Shortcuts.Test plan
QueryResultFilesTests,ShortcutsPlanningTests,ConnectionEntityQueryTests,GlobalStateSuites/ShortcutsActionTests(Blocked reason, deleted connection, Read Only before the gate and before connecting,SELECT count(*)value with.shortcutshistory and gate caller, one-transaction insert, startup-command transaction, user's open transaction, partial write without transactions).OperationConfirmationPromptTests(Shortcuts caller is distinguishable).verify.sh teston those plusScriptingPolicyTests,QueryHistorySourceTests,HistoryDateRangeTests,ExecutionAuditRecordTests,ScriptingDictionaryTests,HistoryPanelViewModelTests,DataChangeManagerTests: 133 passed.verify.sh ioson the iOS intent and inserter suites: 67 passed.build,lint,l10npass.Metadata.appintentslists the four actions, three entities, the result enum and four App Shortcuts.Not in this PR
insert_rows(MCPConnectionBridge+Data.swift) still writes rawINSERTs row by row: no transaction, no driver row writers, no reload of open table tabs. Its rows arrive as typed JSON values, so moving it to the grid path changes the MCP contract and needs its own review.features/table-operations.mdxin TableProApp/docs fails the menu-path check on main (sequence items).Fixes #3628