docs(state): record calendar pass completion evidence
This commit is contained in:
29
HANDOFF.md
29
HANDOFF.md
@@ -4,7 +4,7 @@
|
||||
Immediate baton-pass for the next fresh implementation session.
|
||||
|
||||
## Current objective
|
||||
Run calendar pass (2/3): extend the action bus beyond create-only calendar support now that Gmail pass 1 is complete.
|
||||
Run operator/polish pass (3/3): tighten operator docs, approval policy clarity, recurring verification flow, and low-noise execution reporting now that Gmail + Calendar passes are complete.
|
||||
|
||||
## Use these state files first
|
||||
1. `WIP.md` — full standing plan and checkpoints
|
||||
@@ -44,15 +44,30 @@ Run calendar pass (2/3): extend the action bus beyond create-only calendar suppo
|
||||
- Added explicit approval metadata in workflow responses (`approval.policy`, `approval.required`, `approval.mutation_level`).
|
||||
- Updated docs/test payloads/validator to match the expanded Gmail contract.
|
||||
|
||||
## Calendar pass 2 completed in this handoff cycle
|
||||
- Added workflow actions:
|
||||
- `list_upcoming_events`
|
||||
- `update_calendar_event`
|
||||
- `delete_calendar_event`
|
||||
- Added host bridge executors:
|
||||
- `calendar_list_events` (`gog calendar events`)
|
||||
- `calendar_event_update` (`gog calendar update`)
|
||||
- `calendar_event_delete` (`gog calendar delete`)
|
||||
- Preserved explicit approval policy:
|
||||
- read-only calendar listing stays `low`
|
||||
- mutating calendar update/delete stay `high`
|
||||
- Added docs/test payloads/validator coverage for the expanded calendar contract.
|
||||
|
||||
## Highest-priority next actions
|
||||
1. Add `list_upcoming_events`, `update_calendar_event`, and `delete_calendar_event` actions.
|
||||
2. Keep approval policy explicit per action (default-gated for mutating operations).
|
||||
3. Add one compact operator test playbook for recurring verification (queue → approve → verify → cleanup).
|
||||
1. Add a compact operator command/reference section for common approval flows.
|
||||
2. Add one or two canned recurring verification flows (queue → approve → verify → cleanup).
|
||||
3. Decide/document approval defaults clearly per action family.
|
||||
4. Improve low-noise execution/result reporting in approval history.
|
||||
|
||||
## Success criteria for the next session
|
||||
- Calendar action coverage expanded (`list_upcoming_events`, `update_calendar_event`, `delete_calendar_event`) with workflow + bridge + docs alignment.
|
||||
- Approval policy remains explicit/safe for mutating calendar actions.
|
||||
- `WIP.md` and memory updated with concrete IDs/evidence.
|
||||
- Operator/polish pass completed with docs/playbook/history-reporting improvements.
|
||||
- Approval defaults are explicit and easy to skim.
|
||||
- `WIP.md` and memory updated with concrete evidence.
|
||||
- Meaningful commit(s) captured.
|
||||
|
||||
## Relevant files
|
||||
|
||||
56
WIP.md
56
WIP.md
@@ -99,9 +99,9 @@ Started: `2026-03-12`
|
||||
- [x] Add `delete_email_draft`
|
||||
- [x] Add `list_email_drafts`
|
||||
- [x] Add `send_gmail_draft` / send-approved-email path
|
||||
- [ ] Add `update_calendar_event`
|
||||
- [ ] Add `delete_calendar_event`
|
||||
- [ ] Add `list_upcoming_events`
|
||||
- [x] Add `update_calendar_event`
|
||||
- [x] Add `delete_calendar_event`
|
||||
- [x] Add `list_upcoming_events`
|
||||
- [ ] Decide whether Drive/Docs/Sheets need action-bus verbs next or can stay direct-tool only for now
|
||||
|
||||
### Then polish the operator experience
|
||||
@@ -134,11 +134,11 @@ Planned passes:
|
||||
- added `list_email_drafts`
|
||||
- added `send_gmail_draft` / send-approved-email path
|
||||
- updated workflow contract/docs/test payloads/bridge + WIP evidence
|
||||
2. Calendar pass:
|
||||
- add `update_calendar_event`
|
||||
- add `delete_calendar_event`
|
||||
- add `list_upcoming_events`
|
||||
- update `WIP.md` with evidence before ending the pass
|
||||
2. Calendar pass: ✅ complete
|
||||
- added `update_calendar_event`
|
||||
- added `delete_calendar_event`
|
||||
- added `list_upcoming_events`
|
||||
- updated workflow contract/docs/test payloads/bridge + WIP evidence
|
||||
3. Operator/polish pass:
|
||||
- decide approval defaults for each action
|
||||
- add low-noise execution/result reporting
|
||||
@@ -192,16 +192,44 @@ Targeted verification evidence:
|
||||
- send: exit `0`, returned dry-run op `gmail.drafts.send`
|
||||
- `python3 -m py_compile skills/n8n-webhook/scripts/resolve-approval-with-gog.py` passed.
|
||||
|
||||
## Calendar pass 2 completion (2026-03-12)
|
||||
Implemented in this pass:
|
||||
- workflow contract + router logic for:
|
||||
- `list_upcoming_events`
|
||||
- `update_calendar_event`
|
||||
- `delete_calendar_event`
|
||||
- host bridge executor coverage for new approval kinds:
|
||||
- `calendar_list_events` → `gog calendar events`
|
||||
- `calendar_event_update` → `gog calendar update`
|
||||
- `calendar_event_delete` → `gog calendar delete`
|
||||
- docs + sample payloads + workflow validator updates for the expanded calendar contract
|
||||
- explicit approval policy preserved:
|
||||
- `list_upcoming_events` → `approval.mutation_level = low`
|
||||
- `update_calendar_event` / `delete_calendar_event` → `approval.mutation_level = high`
|
||||
|
||||
Targeted verification evidence:
|
||||
- `python3 skills/n8n-webhook/scripts/validate-workflow.py skills/n8n-webhook/assets/openclaw-action.workflow.json`
|
||||
- result: `OK: workflow asset structure looks consistent`
|
||||
- Workflow asset inspection confirmed new router actions are present:
|
||||
- `list_upcoming_events`
|
||||
- `update_calendar_event`
|
||||
- `delete_calendar_event`
|
||||
- Host bridge command-builder verification from shipped sample payloads:
|
||||
- `calendar_list_events` → `gog calendar events primary --account will@example.com --json --no-input --max 10 --days 7 --query zap --dry-run`
|
||||
- `calendar_event_update` → `gog calendar update primary example-calendar-event-id --account will@example.com --json --no-input --send-updates none --summary Updated call with vendor --from 2026-03-13T18:15:00Z --to 2026-03-13T18:45:00Z --description Updated by OpenClaw action bus. --location Updated room --dry-run`
|
||||
- `calendar_event_delete` → `gog calendar delete primary example-calendar-event-id --account will@example.com --json --no-input --force --send-updates none --dry-run`
|
||||
- `python3 -m py_compile skills/n8n-webhook/scripts/resolve-approval-with-gog.py` passed.
|
||||
|
||||
## Next-session handoff
|
||||
For the next fresh implementation session, start from `HANDOFF.md` + `WIP.md` rather than from old chat context.
|
||||
|
||||
Immediate target:
|
||||
- calendar pass only:
|
||||
- add `update_calendar_event`
|
||||
- add `delete_calendar_event`
|
||||
- add `list_upcoming_events`
|
||||
- keep approval policy explicit for mutating calendar actions
|
||||
- run targeted verification and refresh WIP/memory/tasks before ending
|
||||
- operator/polish pass only:
|
||||
- add a compact operator command/reference section for common approval flows
|
||||
- add one or two canned recurring verification flows
|
||||
- decide/document approval defaults clearly per action family
|
||||
- improve low-noise execution/result reporting in history
|
||||
- refresh WIP/memory/tasks before ending
|
||||
|
||||
## Relevant files
|
||||
- `skills/n8n-webhook/assets/openclaw-action.workflow.json`
|
||||
|
||||
@@ -173,3 +173,28 @@
|
||||
- `approval-mmny879w-yvqzokpz`
|
||||
- `approval-mmny879w-md99hqxs`
|
||||
- `gog` dry-run command checks for list/delete/send each exited `0`.
|
||||
|
||||
## Calendar pass 2 (fresh subagent implementation, locally verified)
|
||||
- Added to `openclaw-action` workflow contract:
|
||||
- `list_upcoming_events`
|
||||
- `update_calendar_event`
|
||||
- `delete_calendar_event`
|
||||
- Preserved explicit approval metadata/policy:
|
||||
- `list_upcoming_events` → `approval.mutation_level = low`
|
||||
- `update_calendar_event` / `delete_calendar_event` → `approval.mutation_level = high`
|
||||
- Extended host bridge `resolve-approval-with-gog.py` with executor coverage for:
|
||||
- `calendar_list_events` → `gog calendar events`
|
||||
- `calendar_event_update` → `gog calendar update`
|
||||
- `calendar_event_delete` → `gog calendar delete`
|
||||
- Added sample payloads:
|
||||
- `skills/n8n-webhook/assets/test-list-upcoming-events.json`
|
||||
- `skills/n8n-webhook/assets/test-update-calendar-event.json`
|
||||
- `skills/n8n-webhook/assets/test-delete-calendar-event.json`
|
||||
- Verification evidence (local/targeted):
|
||||
- workflow structure + contract validator passed after the calendar additions
|
||||
- workflow asset inspection confirmed the three new router actions are present
|
||||
- bridge command-builder checks from shipped payloads produced:
|
||||
- `gog calendar events primary --account will@example.com --json --no-input --max 10 --days 7 --query zap --dry-run`
|
||||
- `gog calendar update primary example-calendar-event-id --account will@example.com --json --no-input --send-updates none --summary Updated call with vendor --from 2026-03-13T18:15:00Z --to 2026-03-13T18:45:00Z --description Updated by OpenClaw action bus. --location Updated room --dry-run`
|
||||
- `gog calendar delete primary example-calendar-event-id --account will@example.com --json --no-input --force --send-updates none --dry-run`
|
||||
- `python3 -m py_compile skills/n8n-webhook/scripts/resolve-approval-with-gog.py` passed.
|
||||
|
||||
Reference in New Issue
Block a user