Skip to content

v0.0.0

Choose a tag to compare

@github-actions github-actions released this 11 Nov 14:00
· 73 commits to master since this release
v0.0.0
dfff147

[0.0.0] - 2026-11-10

Changed

  • The Code Mode catalogue no longer pins catalog or plan. The Workspace skills describe call shapes, and Code Mode search finds full signatures. Both skills explain how to connect an account.
  • Every tool is allowed by default. The plugin inserts an allow for each of its actions, the six commit tools and
    the gws.* namespace included, so a tool a later release adds runs at once. The new access option restricts it:
    "ask-changes" asks before each commit, and "read-only" denies the commits while every read still runs. A commit
    still needs its plan and planId. gws_status, the status RPC and the dialog show the value.
  • The tools RPC follows the same default: a script runs every method unless a rule says otherwise.
  • The tools RPC, google-workspace.gws.tools, follows the family's shared v2.1 module (src/host/tools-rpc.ts). Its methods are the read tools, status, catalog, schema, read, plan and events_list, each with its input and output schema. The six commit tools are not methods: a script can plan a change, and a commit runs only from the model's approved tool. A call resolves the rule before dispatch: an ask is refused, and a deny is refused, with no gws call and no prompt. With a session, describe reports each method's class and resolved permission.
  • events_list is a read, so it is allowed at every access value, as the other reads are.
  • A saved "Always allow" no longer authorises an ad-hoc script. A script's grant is a rule in config, or a Jobs run
    session; docs/scripting.md says so, and names the Jobs one-off as the way to get an approval-bound grant.
  • The permissions a script's calls assert now carry the same tool source id as a model call, so an inner ask, such
    as a plan's read of an event's guests, is refused and named instead of waiting for a prompt.
  • The gws binary is no longer an npm optional package. The plugin downloads the pinned, unmodified gws 0.22.5 for the platform on first use from this repository's GitHub Release, checks it against the release manifest and the upstream SHA-256, and caches it. The download is a change under access: all downloads, ask-changes asks, and read-only refuses with /gws-install as the next step.
  • /gws-install downloads and verifies the binary on request.
  • Setup runs no binary and makes no network call; the first tool call resolves it. gws_status reports the cached binary, or an empty path when none is cached, and never downloads.
  • The licence and notice of the gws executable ship in licenses/gws.
  • Installed from GitHub, not npm: opencode plugin add github:joe-broadhead/opencode-gws#v0.0.0. The npm releases below are history.

Fixed

  • /gws-status says what access decides for a pending commit: it runs without a prompt at "all", asks at "ask-changes", and is denied at "read-only". The line used to say approval happens only in the permission prompt, which is false at "all".

Known limits

  • Platforms. macOS (arm64, x64) and Linux (glibc, arm64, x64) only. Windows and musl have no release binary, so the tools refuse with GWS_UNAVAILABLE unless binary.path names a gws 0.22.5 executable.
  • Operations. The tools are the operations in the manifest generated from the pinned gws 0.22.5. A method that a later gws adds arrives with a plugin release, and gws_catalog lists only the manifest.
  • Services the default sign-in leaves out. Keep needs domain-wide delegation that a Workspace admin sets up, admin reports need a Workspace admin account, and Model Armor cannot run. A method that only a Chat app or a Classroom add-on can run (appOnly) fails with AUTH_SCOPE_MISSING under a Google sign-in.
  • Unverified OAuth apps. An External client left in Testing shows unverified-app warnings, and its refresh tokens expire after 7 days, so each account signs in again weekly.
  • A cancelled commit may have been applied. CANCELLED means the call stopped while gws ran. Check the state with gws_read before planning the change again.
  • Asks need an answerer. At access: "ask-changes", opencode run and scripts cannot answer a prompt, so a commit there needs an allow rule for it, or access: "all".
  • Output and time limits. A result that is too large stops with OUTPUT_LIMIT, and a slow call with TIMEOUT. Narrow the request with fields, a smaller page size, maxPages or maxItems.
  • Tested hosts. Tested on OpenCode 2.2.3, 2.2.4, 2.2.5 and 2.2.6. A later 2.2 release loads, and /gws-status marks it untested.
  • Audit lines can drop. The audit log is written off the call path, with a 100 ms budget per line. A write that stalls past it is abandoned: its line and any queued behind it are lost. The call's result is not affected. The sink then stops writing until the plugin reloads, and /gws-status shows that some audit records could not be saved.
  • Updates are not automatic for a Git install, and opencode plugin update and opencode plugin check do not work on one: to move to a newer release, remove the old entry and add the new tag.