Skip to content

feat: add forge conversation list --all and --since flags to list all and / or recent conversations on the machine#3302

Open
ahundt wants to merge 2 commits intotailcallhq:mainfrom
ahundt:feat/conversation-list-all-and-since
Open

feat: add forge conversation list --all and --since flags to list all and / or recent conversations on the machine#3302
ahundt wants to merge 2 commits intotailcallhq:mainfrom
ahundt:feat/conversation-list-all-and-since

Conversation

@ahundt
Copy link
Copy Markdown
Contributor

@ahundt ahundt commented May 8, 2026

Adds ability to list conversations across workspaces and filter by date ranges forge conversation list and forge list conversation commands.

Motivation

forge conversation list is scoped to the current workspace by design. There is no way to see conversations from all project directories, which makes it impossible to answer "what was I working on recently?" without cd-ing into every project. This PR adds that capability with minimal, backward-compatible changes.

Usage

forge conversation list                        # current workspace only (unchanged)
forge conversation list --all                  # all workspaces
forge conversation list --since 1w             # current workspace, last week
forge conversation list --all --since 3d       # all workspaces, last 3 days
forge conversation list --all --porcelain      # machine-readable, all workspaces
forge list conversation --all --since 1M       # via list subcommand too

The --all flag queries conversations across all project directories (bypasses workspace_id filter). The --since flag accepts durations like 1h, 30m, 3d, 1w, 1M, 1y and filters by updated_at/created_at.

Implementation:

  • Add get_all_workspaces_conversations() to ConversationRepository trait, threaded through repo/services/app/API layers
  • Add SinceDuration value type with FromStr parser
  • 22 new tests covering both flags and duration parsing
  • All CI checks pass: clippy -D warnings, string safety lints, fmt

Design Notes

  • Backward compatible — both flags are optional, default behavior unchanged
  • Minimal surface area — one new trait method, one new CLI type, two new flags
  • Consistent — follows same patterns as existing --porcelain flag
  • --since filtering is client-side — the repo layer returns conversations ordered by updated_at DESC with the existing max_conversations limit, then --since filters in the UI layer. This keeps the repo API simple and the filtering logic co-located with display logic.

PR Checklist

  • Rebased onto latest upstream/main
  • All tests pass
  • cargo +nightly fmt --all passes
  • cargo +nightly clippy -- -D warnings passes
  • String safety lints pass (string_slice, indexing_slicing, disallowed_methods)
  • No unrelated changes included
  • Single squashed commit

Add cross-workspace conversation listing and date range filtering to
`forge conversation list` and `forge list conversation` commands.

Usage:
  forge conversation list --all              # all workspaces
  forge conversation list --since 1w         # current workspace, last week
  forge conversation list --all --since 3d   # all workspaces, last 3 days
  forge list conversation --all --porcelain  # machine-readable

The --all flag queries conversations across all project directories
(bypasses workspace_id filter). The --since flag accepts durations
like 1h, 30m, 3d, 1w, 1M, 1y and filters by updated_at/created_at.

Implementation:
- Add get_all_workspaces_conversations() to ConversationRepository
  trait, threaded through repo/services/app/API layers
- Add SinceDuration value type with FromStr parser
- 22 new tests covering both flags and duration parsing
- All CI checks pass: clippy -D warnings, string safety lints, fmt
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions github-actions Bot added the type: feature Brand new functionality, features, pages, workflows, endpoints, etc. label May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature Brand new functionality, features, pages, workflows, endpoints, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants