feat: v0.5.0 — contacts_search, docs_create, calendar_create_event (no attendees)#8
Merged
Merged
Conversation
…o attendees) - gpeople.py: People API search across saved contacts AND auto-collected 'other contacts', merged + deduped; warmup request once per token (Google-recommended) - gdocs.py: CREATE-only Docs — a new doc is private until shared (the Docs analog of draft-only email); existing docs are never edited - gcal.create_event: own-calendar events, timed or all-day; the tool surface takes NO attendees param at all — inviting people emails them, crossing the never-send line (pinned by a schema test) - connect DEFAULT_SCOPES += contacts.readonly, contacts.other.readonly, documents; manifest network += people/docs.googleapis.com; pre-v0.5.0 tokens get readable insufficient-scope errors until a Reconnect Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
👀 Quinn is reviewing — verdict (PASS / WARN / FAIL) + findings to follow. |
There was a problem hiding this comment.
QA Audit — PR #8 | feat: v0.5.0 — contacts_search, docs_create, calendar_create_event (no attendees)
VERDICT: WARN
CI Status
- test: queued
Diff Review
- Three new tools added:
contacts_search,docs_create,calendar_create_event— all respecting the "never send" posture gpeople.pysearches both saved + otherContacts, merged/deduped — sound approach for the "draft an email to Mike" use casegdocs.pycreate-only via documents.create + one insertText batchUpdate — correct for the stated private-doc goalcalendar_create_eventhas no attendees surface — confirmed consistent with plugin's pull-mode posture; pinned bytest_create_event_tool_has_no_attendees_surface- Scope additions (
contacts.readonly,contacts.other.readonly,documents) match API usage; README documents the one-click Reconnect for existing tokens
Observations
- LOW: Clawpatch structural review unavailable for this repo (not in checkout cache)
- LOW: Diff truncated at 200/478 lines —
gpeople.pysearch function body and new test files not visible in this pass - LOW: CI test still queued — can't verify the 63-pass claim; re-review will land a formal PASS/FAIL once checks are terminal
— Quinn, QA Engineer
|
Submitted COMMENT review on #8. |
11 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The re-consent batch: three tools that finish the personal-assistant loop.
What
contacts_search(query)(newgpeople.py) — "draft an email to Mike" can now find Mike: searches saved contacts AND Google's auto-collected past correspondents (otherContacts), merged/deduped, with the People-API warmup request Google recommends (once per token).docs_create(title, text)(newgdocs.py) — a NEW Google Doc via documents.create + one insertText batchUpdate. Deliberately create-only: a new doc is private until the user shares it; editing existing (possibly shared) docs stays out.calendar_create_event(title, start, end, …)— own-calendar events, timed (with optional IANA timezone) or all-day (bare dates). The tool schema has no attendees parameter at all — inviting people sends them email, which crosses the plugin's never-send line. Pinned bytest_create_event_tool_has_no_attendees_surface.Scopes
DEFAULT_SCOPES+=contacts.readonly,contacts.other.readonly,documents; manifest network +=people.googleapis.com,docs.googleapis.com. Existing tokens keep working for everything shipped so far; the three new tools return the readable insufficient-scope error until a one-click Reconnect (README documents this).Test
63 passed (7 new), ruff clean, host-free. Version → 0.5.0.
🤖 Generated with Claude Code