Skip to content

Skills page shows Google skills as "needs setup" despite gws being authenticated #200

Description

@Sheldenshi

Summary

On the Skills page, the bundled Google skills (google-calendar, google-docs, google-drive, google-forms, google-gmail, google-meet, google-sheets) all show a needs setup badge even when gws is installed and authenticated (gws auth status reports an authenticated user, and the skills work from chat). The status badge does not reflect the real auth state.

Skills page showing every Google skill as "needs setup" despite gws being authenticated

Steps to reproduce

  1. Authenticate gws (e.g. via gws auth login) so gws auth status reports a valid user and Google skills function in chat.
  2. Open the Skills page.
  3. Every google-* skill still shows the amber needs setup badge.

Expected

A Google skill should show active when gws is actually authenticated for the required scopes, matching what the agent loop can really do.

Likely cause

The badge is computed by deriveActivation() in web/src/app/skills/page.tsx:618-643, which derives status purely from the google-oauth-desktop connector record declared in each skill's requires.connectors (skills/google/*/SKILL.md, e.g. google-docs/SKILL.md:16-18). It marks a skill needs setup unless a connector for that provider has status === "configured".

google-oauth-desktop has no probe (src/integrations/connectors/google-oauth-desktop.ts:11-14) — the comment notes the real validation is gws auth login. But the page never consults gws auth status; it only checks whether the OAuth-client-credentials connector record is configured in Gini's state. So a user who authenticated gws (the functional source of truth) without a configured google-oauth-desktop connector record — or whose record isn't in status: configured — sees needs setup even though the skill works.

In short: status reflects connector-record presence, not real gws auth state. The displayed badge and actual capability have diverged.

Notes

  • Activation gate: web/src/app/skills/page.tsx:618-643
  • Connector provider (no probe): src/integrations/connectors/google-oauth-desktop.ts
  • Skill requirement: skills/google/<name>/SKILL.md requires.connectors: [{ provider: google-oauth-desktop }]
  • Real auth signal that should feed the badge: gws auth status

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority:mediumMedium priority

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions