Skip to content

feat(handoff): add skill-gated handoff action, access control gating, and OAuth expiry fixes - #252

Open
Tharickv75 wants to merge 15 commits into
devfrom
dev-tj
Open

Tharickv75 wants to merge 15 commits into
devfrom
dev-tj

Conversation

@Tharickv75

Copy link
Copy Markdown
Contributor

Description

Summary

This pull request introduces the new skill-gated handoff capability (jvagent/handoff_action), skill access control filtering, and improvements to Google OAuth credential handling and lead generation profile persistence.

Key updates include:

  • Skill-Gated Handoff Action (jvagent/handoff_action): Adds human-support capability tools (handoff__direct_contact, handoff__notify, handoff__staff_inbox, and handoff__resolve) supported by the jvagent/skills/handoff library skill. Enables single staff random routing across WhatsApp/email channels, pending question tracking, and automatic PageIndex Q&A ingestion to handoff.md.
  • Skill Identity Gating: Adds support for access-action and allowed-groups/denied-groups in skill frontmatter to selectively hide or reveal skills in the catalog based on AccessControlAction.user_groups.
  • Google MCP/OAuth Fixes: Normalized OAuth expiry parsing in GoogleAction to properly handle ISO string formats and avoid ValueError during token refresh, alongside fixing service binding retention.
  • LeadGen Bug Fix: Fixed an issue preventing the lead profile from being overwritten by section updates.
  • Documentation & CI: Added README.md for handoff_action, updated actions catalog and changelog, and updated Dockerfiles/workflows for release versioning (0.1.8rc20-dev1).

Type of change

  • Bug fix (non-breaking)
  • New feature (non-breaking)
  • Breaking change
  • Documentation
  • Chore / tooling / CI

Checklist

  • I read CONTRIBUTING.md and (for subsystem work) the local AGENTS.md.
  • pre-commit run --all-files passes.
  • pytest tests/ passes; I added/updated tests for new behavior.
  • Bug fixes cite file:line in the description.
  • Docs / CHANGELOG.md updated where relevant (entry under [Unreleased]).
  • No ADR was modified in place (changes of decision are written as a new, superseding ADR).

Tharickv75 and others added 15 commits September 29, 2026 11:16
…n node

Scope the unique user index to LeadProfile and resolve the record by user_node_id so a section save cannot wipe the anchor row.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ce a refresh

Store the access-token expiry from the code exchange and normalize it to the naive-UTC form google-auth can parse.

Co-authored-by: Cursor <cursoragent@cursor.com>
Let a skill declare access-action plus allowed or denied groups so the catalog fails closed when the visitor is not in the right group.

Co-authored-by: Cursor <cursoragent@cursor.com>
Give agents contact, notify, and staff Q&A tools behind the handoff skills without changing the existing handoff interact action.

Co-authored-by: Cursor <cursoragent@cursor.com>
…tools

Updated docstrings for `handoff__contact_details` and `handoff__staff_lookup` to specify their intended use cases. Enhanced the SKILL.md documentation to emphasize that contact details should only be provided upon explicit request, while any unanswerable questions should be directed to staff lookup. This improves clarity for developers and users regarding the functionality of the handoff tools.
…copes

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Clarified usage instructions in `leadgen` and `handoff` skills documentation. Updated `leadgen__retrieve` to specify it should be called mid-conversation and not at the start of a turn. Removed unnecessary references to `extends` in handoff skill files. Adjusted logging level for skill loading in the registry to debug for better traceability.
@Tharickv75 Tharickv75 self-assigned this Sep 30, 2026
@Tharickv75
Tharickv75 requested a review from eldonm as a code owner September 30, 2026 20:41

This branch has not been deployed

No deployments
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.

1 participant