Skip to content

fix(composer): allow slash skill search within messages - #19107

Merged
Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
Bil0000:t3/fix-inline-skill-trigger
Oct 13, 2026
Merged

Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
Bil0000:t3/fix-inline-skill-trigger

Conversation

@Bil0000

@Bil0000 Bil0000 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Typing / after other text did not open skill search. Detect slash tokens at the cursor in web/desktop and the shared mobile path, so Please use /review works. Existing provider-command placement rules still apply.

Verified: 133 focused tests, targeted lint and formatting, web/shared type checks, and a real web composer check with a sample skill. Native mobile UI was not exercised.

Before:

Before: inline slash does not open skills

After:

After: inline slash opens skills

Skill selection:

inline-skill-demo.mp4

Model: GPT-6.1-Sol. Harness: Codex in T3 Code.

@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Oct 13, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 19f687d

Macroscope's review found this PR approvable — This is a focused composer bug fix that reuses the existing slash-command and skill-search flows for whitespace-delimited inline tokens. The production changes are limited to web and shared/mobile trigger detection, with targeted tests covering the new behavior and boundaries.

You can add or adjust custom eligibility rules. Learn more.

@github-actions github-actions Bot added the size:S 10-29 changed lines (additions + deletions). label Oct 13, 2026
@coderabbitai

coderabbitai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: cc993785-5429-40a8-bbc7-2324b9c3be7c
📥 Commits

Reviewing files that changed from the base of the PR and between 4292720 and 19f687d.

📒 Files selected for processing (4)
  • apps/web/src/composer-logic.test.ts
  • apps/web/src/composer-logic.ts
  • packages/shared/src/composerTrigger.test.ts
  • packages/shared/src/composerTrigger.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.

📝 Walkthrough

The composer trigger logic now detects slash commands from the current whitespace-delimited token, including when the token follows other text. The query and source range correspond to that token. Tests cover whitespace types and tokens that do not trigger detection.

Changes: Slash-command detection

Layer / File(s) Summary
Token detection and coverage
apps/web/src/composer-logic.ts, packages/shared/src/composerTrigger.ts, apps/web/src/composer-logic.test.ts, packages/shared/src/composerTrigger.test.ts
Both trigger implementations detect a slash-prefixed current token and use its bounds for the query and range. Tests cover tokens after spaces, tabs, and newlines, as well as cases that return no trigger.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to 19f68

Typing a slash after other text now opens skill search, and existing provider-command placement rules still apply. No concrete merge-blocking risk was found.

### Architecture Summary

Architecture risk: 🔵 Low · up to 19f68

The change affects 2 systems.

Changed systems: apps/web, packages/shared

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — apps/web (ui) was modified; 2 changed files map to changed impact.
  • observed — packages/shared (library) was modified; 2 changed files map to changed impact.

Before / after behavior

  • observed — Modified behavior in apps/web/src/composer-logic.test.ts: Add expectations that slash-command detection recognizes /skill:review after whitespace, reports the query and token range, and accepts spaces, tabs, or a newline in the prefix.
  • observed — Modified behavior in apps/web/src/composer-logic.test.ts: Add expectations that / and /review after Use trigger slash-command detection with the range beginning at the slash.
  • observed — Modified behavior in apps/web/src/composer-logic.test.ts: Add negative cases asserting that Use/review, a URL ending in /review, and a slash command followed by a space do not trigger detection.
  • observed — Modified behavior in apps/web/src/composer-logic.ts: detectComposerTrigger now checks the current token for a leading / and returns its token-based query and range. Previously, slash-command detection required the line prefix to start with / and match only / followed by non-whitespace characters; slash tokens elsewhere on the line now qualify.
Pre-merge checks · Passed 4
Passed Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly and concisely describes the primary change: enabling slash skill search within messages.
Description check Passed The description explains the problem, change, verification steps, screenshots, and untested native mobile UI. It omits the required Scope and approval section and does not use the template headings, b…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ 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.

@Yash-Singh1
Yash-Singh1 merged commit a01c48f into pingdotgg:main Oct 13, 2026
29 checks passed
NikitaMGrimm added a commit to NikitaMGrimm/t3code that referenced this pull request Oct 13, 2026
main gained the word-start slash trigger in pingdotgg#19107. Keep this branch's
parser, which also ends the range at the token end and leaves paths literal.
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 13, 2026
## What's Changed
* fix(web): remember editor selections before opening folders by @Yash-Singh1 in pingdotgg/t3code#19078
* fix(ci): retry Cursor webhook HTTP 400s on main by @Yash-Singh1 in pingdotgg/t3code#19077
* fix(web): let context handoff details use the available width by @Yash-Singh1 in pingdotgg/t3code#19098
* fix(server): snoozed threads allow queued automatic wakes by @Yash-Singh1 in pingdotgg/t3code#19099
* fix(web): merge button fits its label and animates width changes by @flamboh in pingdotgg/t3code#18478
* fix(web): Cmd+Enter creates the new project while an option is highlighted by @SunkenInTime in pingdotgg/t3code#18901
* fix(pi): queue turn-start prompts when native work is running by @StiensWout in pingdotgg/t3code#18639
* fix(pi): load T3 tool schemas for completion gateways by @StiensWout in pingdotgg/t3code#18643
* fix(devices): report agent tool startup failures by @PixPMusic in pingdotgg/t3code#18502
* fix(web): settings warn when an environment silently drops a setting by @flamboh in pingdotgg/t3code#18334
* fix(desktop): stop unsolicited Messages code autofill by @StiensWout in pingdotgg/t3code#19118
* feat(chat): show pending context handoff when selecting a model by @maria-rcks in pingdotgg/t3code#18369
* fix(server): collect SQLite planner statistics when the database opens by @otavio in pingdotgg/t3code#18471
* fix(server): failed threads no longer scan every tool item for errors by @realhasanshoaib in pingdotgg/t3code#18628
* fix(web): keep clone folder names readable in the setup project picker by @tachytelicdetonation in pingdotgg/t3code#12474
* fix(composer): allow slash skill search within messages by @Bil0000 in pingdotgg/t3code#19107

## New Contributors
* @tachytelicdetonation made their first contribution in pingdotgg/t3code#12474

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261013.3066...v0.0.46-nightly.20261013.3080

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261013.3080
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 13, 2026
## What's Changed
* fix(web): remember editor selections before opening folders by @Yash-Singh1 in pingdotgg/t3code#19078
* fix(ci): retry Cursor webhook HTTP 400s on main by @Yash-Singh1 in pingdotgg/t3code#19077
* fix(web): let context handoff details use the available width by @Yash-Singh1 in pingdotgg/t3code#19098
* fix(server): snoozed threads allow queued automatic wakes by @Yash-Singh1 in pingdotgg/t3code#19099
* fix(web): merge button fits its label and animates width changes by @flamboh in pingdotgg/t3code#18478
* fix(web): Cmd+Enter creates the new project while an option is highlighted by @SunkenInTime in pingdotgg/t3code#18901
* fix(pi): queue turn-start prompts when native work is running by @StiensWout in pingdotgg/t3code#18639
* fix(pi): load T3 tool schemas for completion gateways by @StiensWout in pingdotgg/t3code#18643
* fix(devices): report agent tool startup failures by @PixPMusic in pingdotgg/t3code#18502
* fix(web): settings warn when an environment silently drops a setting by @flamboh in pingdotgg/t3code#18334
* fix(desktop): stop unsolicited Messages code autofill by @StiensWout in pingdotgg/t3code#19118
* feat(chat): show pending context handoff when selecting a model by @maria-rcks in pingdotgg/t3code#18369
* fix(server): collect SQLite planner statistics when the database opens by @otavio in pingdotgg/t3code#18471
* fix(server): failed threads no longer scan every tool item for errors by @realhasanshoaib in pingdotgg/t3code#18628
* fix(web): keep clone folder names readable in the setup project picker by @tachytelicdetonation in pingdotgg/t3code#12474
* fix(composer): allow slash skill search within messages by @Bil0000 in pingdotgg/t3code#19107

## New Contributors
* @tachytelicdetonation made their first contribution in pingdotgg/t3code#12474

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261013.3066...v0.0.46-nightly.20261013.3080

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261013.3080
aorwall added a commit to aorwall/t3code that referenced this pull request Oct 14, 2026
Merges `pingdotgg/t3code` up to `6002c5c68c` (42 commits, base
`5070a83a32`), using a merge commit. No open merge PR to stack on; this
branches from `main` at `882bb0a638`.

## Resolution

- **`package.json`** (conflict): dropped upstream's `tsc-rs` 0.6.0 bump
(pingdotgg#19187). The fork removed `tsc-rs`, and the `tsc-rs` tripwire holds
that. New path-policy entry: `root-package-json` (`decide`).
- **`pnpm-lock.yaml`** (conflict, `theirs`): took upstream's copy. Its
seven `tsc-rs@0.6.0` entries fail `minimumReleaseAge` before resolution
can prune them, so I stripped them and let `install.mjs` re-derive the
rest. The fork edges (`moatless-api`, `mermaid`) are back, and `verify
--only lockfile` passes.
- 14 other files that both sides touched merged without conflict.
`duplicate-adds` and `resolution-check` are both clean.
`FilePreviewPanel.tsx` (`decide`) took upstream's `threadRef` prop and
kept both fork deltas. The two unlisted files now have `converged`
entries: `terminal-drawer-open-in-editor` and `thread-shell-subtasks`.
In `threadShell.ts`, upstream's `isChildRunLive` and the fork's listing
filter merged together correctly.
- File counts: 136 files landed, against 136 in the upstream range. The
only differences are `package.json` (missing, because its one upstream
change was the dropped bump) and `docs/fork/inventory.json` (extra,
fork-only). The fork delta is 809 files.
- **Script fix:** Moatless replaced its dispatch match arms with a
`MethodTable` (moatless#1138). Because of that,
`unsupported-methods.mjs` found no arms and exited 2. It now reads
`.detached`/`.session`/`.stream` registrations and follows handlers
passed by name. Result: ADD 0, DROP 0, KEEP 2 (`vcs.switchRef`,
`git.preparePullRequestThread`), which matches `gaps.md`.

## Verification

`verify.mjs`: these checks pass: duplicate-adds, tripwires,
resolution-check, unsupported-methods (after the fix), lockfile, fmt,
lint, typecheck, build. `test` fails. Each of the failing files also
failed when run alone, and they are the same five files as in the
2026-10-13 merge, all caused by the sandbox: shared `AgentScope`, server
`ServerBrowserPage` (no Playwright browser), `AcpAdapterV2`,
`OrchestratorReplayFixtures`, and `OpenCodeServerLedger`.

## Usable as-is

- Full-screen visual replies with zoom (pingdotgg#17561). Links inside HTML
renders open the way chat links do (pingdotgg#18897). App shortcuts keep working
after you click into an HTML render (pingdotgg#18898).
- Touch-scrolling in terminal output (pingdotgg#11305). Fixed: answering a
question reset the editor caret (pingdotgg#11337). Links in agent questions are
now clickable (pingdotgg#19197).
- Fixed: "Subagent needs input" stayed after the subagent finished
(pingdotgg#18996). This is client-side and uses `activityRunStatus` with a
fallback to `status`.
- Slash skill search now works mid-message (pingdotgg#19107). Fixed: removing a
project opened a new thread for it (pingdotgg#15864). Settings now warn when an
environment silently drops a setting (pingdotgg#18334).
- Smaller fixes: context handoff details use the available width
(pingdotgg#19098), pace icon alignment (pingdotgg#18580), tool-call collection perf
(pingdotgg#18853), git file paths keep whitespace in the contract schema
(pingdotgg#12465), Android beta links (pingdotgg#18955).
- Pending context-handoff preview when you pick a model (pingdotgg#18369). It is
computed on the client from `server.providers`
(`requiresNewThreadForModelChange`, `continuation.groupKey`). If
Moatless does not report those fields, the preview shows a handoff on
every provider switch.

## Unsupported in Moatless / needs implementation

- Delegated tasks in separate worktrees (pingdotgg#19102): `isolation:
"worktree"` on the orchestrator MCP `delegate_task`, and
`workspaceStrategy` on the child-launch command. Moatless does not
create worktrees (`FEATURES.worktreeSelection`).
- These land behind flags that are already gated: scheduled-task dialog
fix (pingdotgg#18940, `scheduledTasks`), PR merge/auto-merge button sizing
(pingdotgg#18478, pingdotgg#19111, `pullRequestSurface`), remembering editor selections
(pingdotgg#19078, `openInEditor`), device tool startup failures (pingdotgg#18502,
`deviceHub`), npm "update everything" (pingdotgg#18709, `serverUpdateBanner`),
clone folder names in the welcome wizard (pingdotgg#12474), Cmd+Enter
create-project in the palette (pingdotgg#18901).
- No new RPC methods (ADD 0).

## Backend behavior to consider reproducing in Moatless

I added these to the "Runtime fixes upstream made to its own server"
entry in `docs/fork/gaps.md`:
- Worktree isolation for delegated tasks (pingdotgg#19102).
- Snoozed threads still take queued automatic wakes (pingdotgg#19099).
- Indexed failed-thread error lookup (pingdotgg#18628).
- SQLite: no fsync on every commit, and planner stats collected on open
(pingdotgg#19205, pingdotgg#18471).
- Distinct CI checks with overlapping names (pingdotgg#19162).
- Bitbucket short-hash heads in review guides (pingdotgg#18900).
- Webhook template backtracking (pingdotgg#19160).
- OpenCode timeout formatting (pingdotgg#12469).
- Pi tool schemas and turn-start queueing (pingdotgg#18643, pingdotgg#18639).
- Usage hubs without a host, and Antigravity accounts deduplicated
(pingdotgg#11368, pingdotgg#19207).
- Haiku 5.5 as the default for background text generation (pingdotgg#18781).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
Moatless task:
https://moatless.soaplabstest.com/tasks/db18f6dc-70c1-4d89-ada7-cd4b4f19a247
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants