Skip to content

feat(grw): calendar domain - #16

Merged
rianjs merged 1 commit into
mainfrom
feat/6-grw-calendar
Sep 3, 2026
Merged

rianjs merged 1 commit into
mainfrom
feat/6-grw-calendar

Conversation

@rianjs

@rianjs rianjs commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • internal/api/calendar: ToAPIEvent, the inverse of ParseEvent, with round-trip tests; a Service() accessor so the write wrapper reuses the authenticated transport (same pattern as Gmail).
  • internal/rw/calendar: Client embeds the read client and adds CreateEvent, UpdateEvent (patch semantics), DeleteEvent.
  • internal/rwcmd/calendar: wraps cmd/calendar.NewCommand() and adds create (DTO-named flags, --summary and --start required, a date makes an all-day event, --end defaults to +1h or next day), update <id> (only changed flags are sent), and delete <id>... (--stdin, typed confirmation unless --yes). Every leaf has --dry-run/-n and previews without constructing a client.
  • gro calendar events|today|week gain --ids for piping.
  • grw now registers calendar, me, and profiles, and requests calendar.readonly, calendar.events, and userinfo.profile.
  • Architecture tests cover the new pair and packages; README, WORKSPACE_ADMINS, and architecture docs updated.

Closes #6

Test plan

  • make check and make test-cover-check pass; go test ./internal/architecture/ -v passes
  • grw calendar --help shows every gro leaf plus create/update/delete; gro calendar --help unchanged
  • grw calendar create --summary x --start 2026-10-01 --dry-run previews without touching the keyring
  • Live create/update/delete against a real calendar not run

@monit-reviewer monit-reviewer left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
rianjs force-pushed the feat/6-grw-calendar branch from 9d0de2e to 0b59f4b Compare September 3, 2026 23:03
@rianjs
rianjs merged commit e110f9e into main Sep 3, 2026
11 checks passed
@rianjs
rianjs deleted the feat/6-grw-calendar branch September 3, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(grw): calendar domain

2 participants