Skip to content

v0.5.0 — sharing you can actually see and revoke

Choose a tag to compare

@damith-dasasian damith-dasasian released this 16 Aug 17:42
· 5 commits to main since this release

Changed

Breaking: unshare_doc now requires expectRole. A call passing only documentId and email will be rejected. Run list_permissions first and echo the role back.

  • unshare_doc now requires expectRole. Revoking access is the one operation in the surface with no undo — verified live, a Drive revision carries no permission data at all, so version history restores content and never sharing. Echo back the role list_permissions reported and the call proceeds only if the grant is still that; otherwise nothing is removed. An optional expectTitle refuses a wrong document id as well.

Fixed

  • Two tool descriptions pointed at tools that do not exist. set_style told callers to run inspect_style, which was renamed get_style; list_suggestions pointed at apply_suggestion, whose singular form was deleted. Both sent the model somewhere there was nothing. A test now reads the descriptions and fails on any name that is not a registered tool (#45).
  • set_style and edit_doc did not say which to use. Since 0.3.0 both can style existing text, but edit_doc requires restating the whole run, and retyping is how text gets silently dropped. Each now names the other and says when it is the wrong choice (#45).
  • A domain or group grant could be seen but never revoked. unshare_doc matched on email, and a domain or anyone-with-link grant has none — so the domain-wide grant every doc gets under a Workspace was permanent as far as the tool surface was concerned. It now also accepts a permissionId from list_permissions, which covers every grant type, echoes back what it removed, refuses the owner, and lists what is present when nothing matches (#41).
  • list_permissions could not name a domain or link grant. It never asked Drive for domain or allowFileDiscovery, so a domain-wide grant came back with a null email and no way to tell which domain it covered — rendering as null:reader. Every entry now carries a subject naming its audience (alice@x.com, x.com (domain), anyone with the link), and domain/link grants report whether the file is discoverable in search rather than only reachable by link (#42).

Install: npx -y @dasasian/gdocs-mcp · npm · docs

Full diff: v0.4.0...v0.5.0