Skip to content

[Feat] Cross-task mention and artifact reference via @ picker#154

Merged
samzong merged 1 commit intomainfrom
cross-task-mention
Mar 23, 2026
Merged

[Feat] Cross-task mention and artifact reference via @ picker#154
samzong merged 1 commit intomainfrom
cross-task-mention

Conversation

@samzong
Copy link
Copy Markdown
Collaborator

@samzong samzong commented Mar 23, 2026

Summary

Replace the single-purpose FilePicker with a tab-based MentionPicker that supports two mention types: Tasks (injects full conversation context excluding tool calls) and Files (workspace artifacts from the file manager). Type @ in the chat input to open the picker, then use Tab to switch sections, arrow keys to navigate, and Enter to select.

Type of change

  • [Feat] new feature
  • [UI] UI or UX change

Why is this needed?

Users need to reference other task conversations and workspace files as input context when composing messages. Previously, the @ picker only supported files from manually-added context folders. This replaces it with a unified mention system that can reference tasks (pulling their full conversation history) and artifacts from the file management system.

What changed?

  • New MentionPicker.tsx: Tab-based picker component (Tasks | Files) with keyboard navigation hints, artifact loading from fileStore, and extensible TABS array for future mention types
  • Replaced FilePicker.tsx: Deleted — all functionality migrated to MentionPicker
  • ChatInput.tsx rework: New selectedTasks/selectedArtifacts state; unified commitMention() handler; handleSend loads full conversation history for mentioned tasks (user+assistant messages, no tool calls) with 500KB size guard; artifact content read via readArtifactFile; default tab based on artifact availability

Architecture impact

  • Owning layer: renderer
  • Cross-layer impact: none (uses existing IPC: loadMessages, readArtifactFile, listArtifacts)
  • Invariants touched from docs/architecture-invariants.md: none
  • Why those invariants remain protected: no changes to message persistence writers

Validation

  • pnpm typecheck
  • pnpm test
  • pnpm build
  • Manual smoke test
  • Not run
pnpm typecheck → ok (no errors)
pnpm test → 19 files, 82 tests passed

Release note

  • User-facing change. Release note is included below.
You can now type @ in the chat input to mention other tasks or workspace files. Task mentions inject the full conversation context; file mentions embed artifact content. Use Tab to switch between Tasks and Files, arrow keys to navigate, Enter to select.

Checklist

  • The PR title uses at least one approved prefix: [Feat]
  • The summary explains both what changed and why
  • Validation reflects the commands actually run for this PR
  • Architecture impact is described and references any touched invariants
  • Cross-layer changes are explicitly justified
  • The release note block is accurate

…cker

Replace FilePicker with tab-based MentionPicker supporting two mention
types: Tasks (injects full conversation context) and Files (workspace
artifacts). Tab key switches sections, arrow keys navigate, Enter selects.
Includes 500KB size guard on task context and dedup on selection.
@github-actions
Copy link
Copy Markdown
Contributor

Hi @samzong,
Thanks for your pull request!
If the PR is ready, use the /auto-cc command to assign Reviewer to Review.
We will review it shortly.

Details

Instructions for interacting with me using comments are available here.
If you have questions or suggestions related to my behavior, please file an issue against the gh-ci-bot repository.

@samzong samzong merged commit cddfbc3 into main Mar 23, 2026
6 checks passed
@samzong samzong deleted the cross-task-mention branch March 24, 2026 06:20
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.

1 participant