Mail: a reply, forward or attachment built from a flagged message waits for approval
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 15/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
Research direction
Start with flaggedTold in src/main/mail.ts and the mailAccess rules in src/shared/mailboxes.ts, then read #188, which this depends on. The open decision is whether a held send goes to the owner or to Michael, so settle that with the maintainers before coding. Done would mean a send with reply_to, forward or attach_from pointing at a flagged message is refused without a proposal id, while other sends are unchanged.
Written by the indexing model from the issue text.
Description
Problem / motivation
Follow-up to #188, as suggested in the review there.
With #188, when an agent reads a message that contains a clear injection attempt (for example "ignore all previous instructions" or a system: line), the agent is told not to follow those lines and Michael gets one notice. The agent then carries on with its work, which is what we want.
The gap is what comes next. If that agent can send without approval, or has a standing approval that fits, it can still reply to that message, forward it, or attach from it straight away. A reply or forward is exactly what an attacker in that email is usually asking for, and right now it goes out before Michael (or anyone) has looked at the notice.
Proposed solution
Keep it narrow, so ordinary mail is untouched:
- Main already keeps the ids of flagged messages (
flaggedToldinmail.ts). Keep a small, capped set of flagged message ids per mailbox. - When
sendcarriesreply_to,forwardorattach_fromthat points at a flagged message, treat that one send as Send on approval: it needs a proposal id, and a standing approval does not count for it. - Every other send is unchanged, including other mail from the same agent and replies to unflagged messages in the same thread.
- The refusal reason says why, so the agent can propose it instead: "This replies to a message that was flagged as a possible instruction attack. Use propose so it can be checked before it goes."
Since only high-confidence flags count, this should be rare, and it only touches the one send that is built on the suspicious message.
Alternatives considered
- Hold every send from an agent after it reads a flagged message. Simpler, but it would stop unrelated work, which goes against agents carrying on by themselves.
- Let Michael decide instead of the owner. In keeping with #188 (tell Michael, not the owner), the held send could go to Michael first, and he approves it or passes it to Ask me. I'm happy to build it that way if you prefer; it needs a way for Michael to approve a proposal, which I don't think exists yet.
- Do nothing and rely on the note. The note helps, but a model can still be talked round, and a send is the one action that can't be undone.
Area
Other (mail: src/shared/mailboxes.ts mailAccess, src/main/mail.ts)
If this direction works for you, I'm happy to open a PR for it once #188 is in.
- Dominant language
- TypeScript
- Stars
- 273
- Forks
- 211
- Avg merge
- 13h 7m
- Merged PRs (30d)
- 195
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from agentvivekkumar/dontbemichael
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
agentvivekkumar/dontbemichael#426 ·
Maintainers usually reply within 1 day
-
bug os:windows
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
agentvivekkumar/dontbemichael#416 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
agentvivekkumar/dontbemichael#430 ·
Maintainers usually reply within 1 day
-
Translate engine status on the Manager setup stepPossibly taken @gamzeozgul claimed this today. Openenhancement
Difficulty 3/5 Half a day Newbie friendliness 20/100
agentvivekkumar/dontbemichael#425 ·
Maintainers usually reply within 1 day
-
Context gauge for Codex team members (TODOS.md)Possibly taken @Yash-Nimkar0 claimed this 1 day ago. Openenhancement
Difficulty 3/5 1-2 days Newbie friendliness 22/100
agentvivekkumar/dontbemichael#414 ·
Maintainers usually reply within 1 day
All issues in agentvivekkumar/dontbemichael
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
dsh-market/dsh-market#877 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
stellar/stellar-dev-skill#151 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
area:arcade game ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
fderuiter/deruiter.dev#2281 · 1 comment ·
Maintainers usually reply within 1 day
-
scope: data grid type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 2 days