Skip to content

[Bug]: google-workspace can't read oauth file in remote terminals #16452

@zhaoalex

Description

@zhaoalex

Bug Description

Reporting what seems to be a regression of #3665. The google-workspace skill, which uses oauth file-based credentials, does not work with Docker backend; it fails to find google_client_secret.json in ~/.hermes locally.

I saw support for this was added in #3671. However, it looks like the required_credential_files header in skills/productivity/google-workspace/SKILL.md was silently removed in #9931, along with a rollback of the version number, leading me to believe this was unintentional.

However, re-adding the header to the skill locally did not fix the issue; the google_client_secret.json file still cannot be found within the docker terminal. Inspecting the docker container with docker inspect reveals the path was not bind-mounted:

            "Binds": [
                "/home/zhaoalex/.hermes/cache/documents:/root/.hermes/cache/documents:ro",
                "/home/zhaoalex/.hermes/image_cache:/root/.hermes/cache/images:ro",
                "/home/zhaoalex/.hermes/audio_cache:/root/.hermes/cache/audio:ro",
                "/home/zhaoalex/.hermes/sandboxes/docker/default/home:/root",
                "/home/zhaoalex/.hermes/sandboxes/docker/default/workspace:/workspace",
                "/home/zhaoalex/.hermes/google_client_secret.json:/root/.hermes/google_client_secret.json:ro",
                "/home/zhaoalex/.hermes/skills:/root/.hermes/skills:ro"
            ],

So even with the header added back to the SKILL.md, the file is not found.

Steps to Reproduce

With terminal backend set to docker, invoke the google-workspace skill setup. Even with ~/.hermes/google_client_secret.json present and this added back to the SKILL.md header:

required_credential_files:
  - path: google_token.json
    description: Google OAuth2 token (created by setup script)
  - path: google_client_secret.json
    description: Google OAuth2 client credentials (downloaded from Google Cloud Console)

Hermes cannot find the google_client_secret.json file within the docker terminal.

Expected Behavior

Expected:

  1. docker inspect shows the bind mount path for the credential file
  2. Google setup continues as expected

Actual Behavior

  1. docker inspect does not show the bind mount path
  2. Google setup fails, as agent cannot find the oauth file

Affected Component

Skills (skill loading, skill hub, skill guard)

Messaging Platform (if gateway-related)

No response

Debug Report

Report       https://paste.rs/vVJSV

Operating System

Debian 13.4

Python Version

3.13.5

Hermes Version

0.11.0

Additional Logs / Traceback (optional)

Root Cause Analysis (optional)

The required_credential_files header in skills/productivity/google-workspace/SKILL.md likely needs to be restored. However, I can't determine why it's not working even after restoring this in the SKILL.md.

Proposed Fix (optional)

No response

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existsarea/authAuthentication, OAuth, credential poolsbackend/dockerDocker container executioncomp/toolsTool registry, model_tools, toolsetstool/skillsSkills system (list, view, manage)type/bugSomething isn't working

    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