Repository navigation
Added Microsoft 365 Gatekeeper: SharePoint, Outlook, Calendar - #902
Conversation
Preview:
|
bb79552 to
64aa25f
Compare
|
Review: 6 findings. Posted 6 actionable inline comments: 4 high-priority and 2 medium-priority. Key cases were verified with in-memory reproductions. |
|
Review: 4 findings. Posted 4 additional inline comments: 2 high-priority and 2 medium-priority. All were verified with in-memory reproductions. |
…when applying, fence follow-ups to new events
|
Review: 4 findings. Posted 4 additional inline comments: 3 high-priority and 1 medium-priority. All four were verified with in-memory reproductions. |
…-up writes, hold a series to its exception's privacy checks
|
Review: 4 findings. Posted 4 new inline comments: 3 high-priority and 1 medium-priority. All four were verified with in-memory reproductions. |
…e renames into Office formats, read worksheets within the inflation budget
|
Review: 4 findings. Posted 4 new inline comments: 1 high-priority and 3 medium-priority. All four were verified with in-memory reproductions. |
|
Review: 3 findings. Posted 3 new inline comments: 1 high-priority and 2 medium-priority. All three were verified with in-memory reproductions. |
…-ups while invitees change, merge category changes, keep a forward's quote on edit
|
Review: 4 findings. Posted 4 new actionable inline comments: 2 high-priority and 2 medium-priority. All four were verified with in-memory reproductions. |
…er per page, leave a created folder with contents, treat a lost draft-creation answer as unknown
|
Review: 4 findings. Posted 4 new actionable inline comments: 1 high-priority and 3 medium-priority. All four were verified with in-memory reproductions. |
|
Review: 2 findings. Posted 2 new medium-priority inline comments, both verified with in-memory document-generation reproductions. Reviewed |
…n when a tracked layout change nests earlier ones
|
Review: 3 findings. Posted 3 new medium-priority inline comments. All three were verified with in-memory reproductions, including an independent XML-parser check. Reviewed |
…qualifier out of LET rewriting, say which private events an all-calendars binding shows
|
Latest review of robo findings Verdict: request changes. The security core holds. Bindings stay inside their scope, every side effect goes through submitAction, reads are authorized with access units, tokens stay inside UserAccount and on Graph or SharePoint hosts, and OAuth pins the tenant and user. The blockers are P1 — fix before mergeP2 — security and scope
P2 — resource exhaustion
P2 — correctness
P3
|
|
Review: 2 findings. Posted 2 new actionable inline comments: 1 high-priority and 1 medium-priority. Both were verified with in-memory reproductions using the real action journal and handlers. Reviewed |
…d by name, and a package with imported HTML or RTF
…cktracking, cap nesting and count attributes in the XML budget, render a slide once, clamp list starts, drop a copied slide's comment link, tolerate a malformed mailto
…t-short mail scan, propose a move back over a pending move, keep a draft when its version read fails, fence a second pending calendar change on the first's result, say the wizard grants the full permission set
…L to its site, page OneDrive searches, resolve a library link to its root folder, overlay pending changes on created list items, start a failed prefill unselected, deny writes on page bindings
|
Review: 2 findings. Posted 2 new inline comments: 1 high-priority and 1 medium-priority. Both were verified with in-memory reproductions using the validated sessions and real action journal. Reviewed |
|
@clanky-the-clanker review this please. |
…on applies, refuse one proposed behind a pending invitation, and send a moved-back message's undo to where its pending move put it
|
Review: 2 findings. Posted 2 new medium-priority inline comments. Both were verified with in-memory reproductions using the current handlers and real action journal; the upload reproduction also used Reviewed |
…unread, and keep an upload or copy when the content tag read after it fails
|
Review: 2 findings. Posted 2 new medium-priority inline comments. Both were verified with in-memory reproductions, including the real action journal and an independent XML-parser check. Reviewed |
…int accepted the copy, and declare the relationships prefix on a slide, notes page or document that gains its first link
|
Review: 2 findings. Posted 2 new medium-priority inline comments. Both were verified with in-memory reproductions using the current code. Reviewed |
ndisidore
left a comment
There was a problem hiding this comment.
Hey we only found 10 this time!
Bugs, most severe first
- outlook-session.ts:1207: When a message already has a pending move, a new move records that move's destination as its starting folder. That destination can be a temporary ~N folder ID, and undoing the move never translates it to a real ID. So if the agent moves a message into a pending new folder ~3 and then moves it back, the undo is refused for good. If the first move is rejected, the undo sends the message to a folder it was never in.
- outlook-hooks.ts:251: A scan that was cut short resumes from a saved @odata.nextLink. Outlook pages these links by $skip offset, so if mail leaves the folder between syncs, the offset shifts and unread messages are skipped permanently.
- content/ooxml.ts:196: withRelationshipsNs skips adding the declaration if xmlns:r=" appears anywhere in the part, not just on the root element. It also only recognises double quotes. A slide whose only declaration is on a nested chart element gets a hyperlink outside that scope, and the file is malformed. A root that declares it with single quotes gets a duplicate attribute, which is also malformed.
- sharepoint-actions.ts:1027: Undoing createListItem deletes the item without checking its version. A colleague's later edits are deleted along with it, unlike the file-creation and updateListItem undos, which both check.
- sharepoint-actions.ts:281: awaitCopy only stops on completed with a resourceId. If the redirect URL has an unexpected shape, it keeps polling a finished copy until the 45 s deadline and then reports it as "still copying". The copy then can't be undone.
- sharepoint-actions.ts:984: The updateCells undo compares Excel's stored value with the written value as strings. Excel normalises what it stores (=sum(a1:a2) becomes =SUM(A1:A2), "007" becomes 7, 1.50 becomes 1.5), so these undos are refused even though nobody touched the range.
- calendar-session.ts:330: requireInvitesSettled only looks at pending attendee changes on the same event ID. Pending invitee changes on a recurring series don't block a personal delete of one of its occurrences, and the reverse is true too. New invitees can then get cancellations the approver never saw.
Cleanup
- sharepoint-actions.ts:718: updateCells still fetches /versions?$top=1 and stores previousVersionId, but nothing reads it any more. That's a wasted Graph call on every approved cell edit.
- sharepoint-actions.ts:958: The replaceFile and rename undos copy the cTag lookup inline instead of calling contentTag(). The copies throw on a 404 where the helper returns cleanly, so undoing an edit to a deleted file behaves inconsistently.
- calendar-actions.ts:297: noteVersionLeft swallows its error with an empty catch {}. The Outlook version added in the same commit logs it with an event name, which is what packages/observability/AGENTS.md asks for.
…time rather than Graph's offset page, delete a created list item only as created, undo a cell write over what Excel made of it, and find a finished copy by name
|
Review: 2 findings. Posted 2 new medium-priority inline comments. Both were verified with in-memory reproductions, including the validated session and real action journal. Reviewed |
Adds a Microsoft 365 gatekeeper with three resources over Microsoft Graph.
SharePoint and OneDrive: Connect everything the user can open, or narrow it to a site, a library, a folder, a file, a list or a page. Agents read Word, PowerPoint and PDF files as Markdown or text and workbooks as cells, query lists, read pages, and propose uploads, edits, moves and folder changes. Each write is checked against what was connected again when it's applied.
Outlook: Connect one mailbox, yours or a shared one, optionally narrowed to a folder, a conversation or certain senders, at read, draft or send. Sending always waits for approval and happens at most once. The agent can only edit or delete drafts it wrote.
Calendar: Connect every calendar, one calendar at free/busy, titles or full detail, or availability only. Invitations and responses wait for approval.
In addition to standard tests, I ran live suite against a test tenant as three users (owner, member, outsider) and tested manually.