Repository navigation
feat(grw): calendar domain - #16
Merged
Merged
Conversation
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: 9d0de2e
Summary
No issues found.
Completed in 10m 14s | $2.83 | sonnet | daemon 0.2.142 | Glorfindel
| Field | Value |
|---|---|
| Model | sonnet |
| Reviewers | hybrid-synthesis, harness-engineering:harness-architecture-reviewer, harness-engineering:harness-enforcement-reviewer, harness-engineering:harness-knowledge-reviewer, harness-engineering:harness-self-documenting-code-reviewer, security:security-code-auditor, documentation:docs-reviewer |
| Engine | claude · sonnet |
| Reviewed by | pr-review-daemon · monit-pr-reviewer |
| Duration | 10m 14s wall · 10m 09s compute (Reviewers: 10m 01s · Synthesis: 8s) |
| Cost | $2.83 (estimated) |
| Tokens | 575.9k in / 11.2k out |
| Turns | 13 |
Per-workstream usage
| Workstream | Model | In | Out | Cache read | Cache create | Cost |
|---|---|---|---|---|---|---|
| hybrid-synthesis | sonnet | 55.7k | 202 | 26.4k | 29.3k (1h) | $0.19 |
| harness-engineering:harness-architecture-reviewer | sonnet | 100.0k | 798 | 22.5k | 77.5k (1h) | $0.48 |
| harness-engineering:harness-enforcement-reviewer | sonnet | 101.4k | 1.7k | 22.5k | 78.9k (1h) | $0.51 |
| harness-engineering:harness-knowledge-reviewer | sonnet | 102.0k | 2.4k | 22.5k | 79.5k (1h) | $0.52 |
| harness-engineering:harness-self-documenting-code-reviewer | sonnet | 100.5k | 4.2k | 22.5k | 78.0k (1h) | $0.54 |
| security:security-code-auditor | sonnet | 96.6k | 1.5k | 22.5k | 74.1k (1h) | $0.47 |
| documentation:docs-reviewer (timed_out) | claude-sonnet-5 | 19.5k | 443 | 0 | 19.5k (1h) | $0.12 |
Re-reviews only run when @monit-reviewer is re-requested as a reviewer — push as many commits as you need, then re-request when ready. PRs targeting branches other than main, master are skipped, even when @monit-reviewer is re-requested.
Add internal/rw/calendar (CreateEvent, UpdateEvent, DeleteEvent over the Event DTO with a ToAPIEvent inverse of ParseEvent) and internal/rwcmd/calendar wrapping the shared calendar command with create, update, and delete leaves (--dry-run everywhere, delete confirms unless --yes, bulk IDs via --stdin). The shared events/today/week leaves gain --ids for piping. grw registers calendar, me, and profiles and requests the calendar and profile scopes.
rianjs
force-pushed
the
feat/6-grw-calendar
branch
from
September 3, 2026 23:03
9d0de2e to
0b59f4b
Compare
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.
Summary
internal/api/calendar:ToAPIEvent, the inverse ofParseEvent, with round-trip tests; aService()accessor so the write wrapper reuses the authenticated transport (same pattern as Gmail).internal/rw/calendar:Clientembeds the read client and addsCreateEvent,UpdateEvent(patch semantics),DeleteEvent.internal/rwcmd/calendar: wrapscmd/calendar.NewCommand()and addscreate(DTO-named flags,--summaryand--startrequired, a date makes an all-day event,--enddefaults to +1h or next day),update <id>(only changed flags are sent), anddelete <id>...(--stdin, typed confirmation unless--yes). Every leaf has--dry-run/-nand previews without constructing a client.gro calendar events|today|weekgain--idsfor piping.grwnow registerscalendar,me, andprofiles, and requestscalendar.readonly,calendar.events, anduserinfo.profile.Closes #6
Test plan
make checkandmake test-cover-checkpass;go test ./internal/architecture/ -vpassesgrw calendar --helpshows every gro leaf plus create/update/delete;gro calendar --helpunchangedgrw calendar create --summary x --start 2026-10-01 --dry-runpreviews without touching the keyring