Skip to content

Mail send grants, Cursor agent, and interactive tess new - #11

Merged
CodeWithInferno merged 3 commits into
mainfrom
mail-send-grants
Aug 22, 2026
Merged

Mail send grants, Cursor agent, and interactive tess new#11
CodeWithInferno merged 3 commits into
mainfrom
mail-send-grants

Conversation

@CodeWithInferno

Copy link
Copy Markdown
Contributor

Summary

  • Mail: tess mail send confirmation windows and reply --all with clearer recipient visibility for plain replies.
  • Cursor agent: tess cursor spawns Cursor Agent with UI-matching flags (--model, --context, --effortreasoning=, --fast), prompt-at-launch, --trust, and tess resume support for Cursor sessions.
  • Worktrees: tess new shows an interactive fzf repo picker outside a repo; fleet fan-out and auto-clone only happen with explicit --fleet / --all (from user config), not by default. Shows which config file sets TESS_WORKTREE_ROOT.

Test plan

  • bash tests/smoke.sh — 105 passed
  • tess cursor . "…" --model composer-2.5 --fast spawn + reply verified
  • tess cursor … --model gpt-5.6-sol --context 1m --effort max --no-fast dry-run composes reasoning=max
  • tess resume --plain lists Cursor sessions
  • tess new --fleet still fans out configured TESS_REPOS in tests

Made with Cursor

CodeWithInferno and others added 3 commits August 6, 2026 16:12
send/reply/delete gate on sys.stdin.isatty(). That's right for the common
case, but it has a hole: when the human isn't at a terminal that can reach
Mail, "run it yourself" is advice they can't take. On macOS the fallback
terminal usually lacks Full Disk Access, so every tess mail command there
dies before it can confirm anything.

Adds an explicit, human-opened send window:

  tess mail grant [--reply|--send|--delete] [--minutes N] [--uses N]
  tess mail grants    what's open
  tess mail revoke    close it now

While open, non-interactive callers may perform that scope only, that many
times, for that long. Defaults are small (30 min, 3 uses, reply) and capped
at 4h/25. Each covered action is logged to ~/.config/tess/mail-sent.log and
the window deletes itself once spent or expired.

grant/grants/revoke are dispatched before the Mail store is opened, so they
need no Full Disk Access — which is the whole point. With no window open,
behaviour is unchanged: the exact command is handed back.
Mail's reply defaults to the sender alone. tess never surfaced that, so
replying to a thread with three people cc'd silently answered one of them
and the rest never saw it — you find out when the reply comes back.

- reply <id> --all keeps every original recipient (AppleScript reply to all)
- the preview now lists the others either way: 'also to:' under --all,
  a yellow 'DROPPED:' warning without it. To/Cc are read off the message
  file since the envelope index doesn't carry them.
Cursor joins claude/kimi in spawn, resume, and team with UI-matching
model flags; tess new shows an fzf repo menu and requires --fleet for
multi-repo fan-out instead of silently using TESS_REPOS.

Co-authored-by: Cursor <cursoragent@cursor.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@CodeWithInferno
CodeWithInferno added this pull request to the merge queue Aug 22, 2026
Merged via the queue into main with commit 14a3f38 Aug 22, 2026
1 check passed
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