Skip to content

feat: write commits, open issues and go live from search - #738

Merged
nunomaduro merged 5 commits into
dev-null-sh:productionfrom
simonhamp:feat/omnibox
Oct 26, 2026
Merged

nunomaduro merged 5 commits into
dev-null-sh:productionfrom
simonhamp:feat/omnibox

Conversation

@simonhamp

Copy link
Copy Markdown
Contributor

Search can now do a few things as well as find them. Type "commit", "feature", "bug" or "go live" and the matching action shows at the top of the results under an Actions heading. Picking it opens the commit dialog, already in /feature or /bug mode for those two, or the Go live dialog.

Words Action
commit, write a commit, new commit, compose Write a commit
feature, /feature Request a feature
bug, report a bug, /bug Report a bug
go live, live, stream Go live
end stream, stop stream (only while you're live) End stream

An action shows once the search is the start of one of its words and is at least three letters long, so "co" doesn't offer a commit. The slash forms work from the slash, so / offers both issue commands, like it does in the composer. Actions are for signed-in people only. The developer pickers (new remote, chat dock) don't get them.

How it works

searchActions() in resources/js/lib/search-actions.ts decides which actions a search offers. The search dialog puts them first and hands the pick to the layout through a new onAction prop. The layout opens the commit dialog with an issue prop, which useIssueCommand takes as its starting kind, or the Go live dialog. I moved the Go live dialog out of ProfileActionsMenu into go-live-dialog.tsx so both places can open it. The profile menu works as before.

Things to look at

  • Actions go above the results, so Enter on "bug" opens a bug report rather than searching for bugs. The arrow keys still reach the results underneath. If you'd rather they came last, it's a small change in optionsFor.
  • End stream only answers to its own name, so searching "live" while you're streaming never puts it under Enter.
  • A stashed draft is kept and becomes the issue body, the same as the "Use /bug" hint does. If the draft has images, the dialog opens as a plain commit, because issues are text only.
  • The dialog title still says "Write a commit" in issue mode. That's also what you see today if you type /bug in it.

Testing

  • There are no PHP changes. The frontend lint, types and unit tests pass, with new tests for which searches offer which actions.
  • I tried each action in the browser: commit, feature and bug by Enter and by click, going live and ending the stream, and the c shortcut still opening a plain commit afterwards.
  • The new rows don't move anything. The search footer already shifts a little as results load (it does on production too), and this doesn't change that.
Search, dark Search, light
Searching bug offers Report a bug under Actions The same in light mode
Dialog it opens, dark Dialog it opens, light
The commit dialog opened in /bug mode The same in light mode
Phone, dark Phone, light
Searching go live on a 390px screen offers Go live The same in light mode

🤖 Generated with Claude Code

Typing "commit", "feature", "bug" or "go live" in the search dialog now
offers that action above the results. Picking one opens the commit
dialog, already in /feature or /bug mode for those two, or the Go live
dialog. While you're live, "end stream" ends it instead.

The Go live dialog moves out of the profile menu into its own component
so the layout can open it too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@simonhamp
simonhamp marked this pull request as ready for review October 19, 2026 23:30
simonhamp and others added 2 commits October 21, 2026 01:00
Conflicts came from upstream's recent searches (dev-null-sh#841, dev-null-sh#849) in the
search dialog, the Product Hunt banner re-indenting the layout, and
Twitch support (dev-null-sh#902) in the Go live dialog. The Twitch wording and
placeholder now live in go-live-dialog.tsx.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
NotificationGroupsQueryTest groups follows by calendar day, and the
last run started at 00:01 UTC, so its two follows fell on different
days. Nothing in this branch touches it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream removed secret scanning (dev-null-sh#999), which took out the hasSecrets
option next to this branch's initialKind in useIssueCommand.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@simonhamp

Copy link
Copy Markdown
Contributor Author

@mnapoli it's ready

@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@nunomaduro
nunomaduro merged commit 6fcefe8 into dev-null-sh:production Oct 26, 2026
1 check was pending
@simonhamp
simonhamp deleted the feat/omnibox branch October 26, 2026 21:48
@kachelle kachelle mentioned this pull request Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants