Skip to content

feat(cli): agent ergonomics + gmail watch exclude labels#201

Merged
steipete merged 4 commits intoopenclaw:mainfrom
salmonumbrella:feat/gmail-watch-exclude-labels
Feb 14, 2026
Merged

feat(cli): agent ergonomics + gmail watch exclude labels#201
steipete merged 4 commits intoopenclaw:mainfrom
salmonumbrella:feat/gmail-watch-exclude-labels

Conversation

@salmonumbrella
Copy link
Copy Markdown
Contributor

Summary

  • Add --exclude-labels flag to gmail watch serve so labels can be filtered from push notifications
  • Improve CLI ergonomics for AI agent consumption: stable exit codes, --dry-run, --select field projection, schema command, name resolution for calendars/tasklists, open command, auto-JSON detection, and input specs
  • Fix nil pointer dereference in confirmDestructive, remove deprecated net.Error.Temporary(), deduplicate dry-run logic, and add unit tests for name resolution

Test plan

  • Full test suite passes (go test ./...)
  • New unit tests for exit codes, name resolution, confirm, input spec, googleid, webid, auto-JSON
  • Exclude-labels integration test verifies excluded messages produce no hook call

Hey @steipete — this makes gogcli much more agent-friendly. Stable exit codes, dry-run support, schema introspection, and smarter name resolution so agents don't need to memorize opaque IDs.

🤖 Generated with Claude Code

@salmonumbrella
Copy link
Copy Markdown
Contributor Author

cc @steipete — this makes gogcli much more agent-friendly with stable exit codes, dry-run support, schema introspection, and name resolution so agents don't need opaque IDs. Would love your review!

@steipete
Copy link
Copy Markdown
Collaborator

Holy moly this is a big one! Kinda small description for 10k line change :)

@steipete steipete self-assigned this Feb 14, 2026
salmonumbrella and others added 4 commits February 14, 2026 03:01
- Fix nil pointer dereference in confirmDestructive when flags is nil
- Deduplicate dry-run logic by delegating to dryRunExit
- Remove deprecated net.Error.Temporary() call (dead since Go 1.18)
- Add unit tests for resolveTasklistID and resolveCalendarID

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@steipete steipete force-pushed the feat/gmail-watch-exclude-labels branch from 0957a6d to ffe7d05 Compare February 14, 2026 02:09
@steipete steipete merged commit 3371e3f into openclaw:main Feb 14, 2026
4 checks passed
@steipete
Copy link
Copy Markdown
Collaborator

Landed via temp rebase onto main.

  • Gate: make fmt && make lint && make test
  • Land commit: ffe7d05
  • Merge commit: 3371e3f

Thanks @salmonumbrella!

klodr pushed a commit to klodr/gogcli that referenced this pull request Apr 22, 2026
* feat(cli): improve agent ergonomics

* fix(cli): address code review findings

- Fix nil pointer dereference in confirmDestructive when flags is nil
- Deduplicate dry-run logic by delegating to dryRunExit
- Remove deprecated net.Error.Temporary() call (dead since Go 1.18)
- Add unit tests for resolveTasklistID and resolveCalendarID

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: resolve PR openclaw#201 conflicts and follow-ups (openclaw#201) (thanks @salmonumbrella)

* fix: resolve rebase fallout for PR openclaw#201 landing (openclaw#201) (thanks @salmonumbrella)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
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.

2 participants