Skip to content

Releases

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 13 Nov 17:22
0bb1755

[0.0.1] - 2026-11-13

Added

  • The jelly settings declare their choices: access is drawn as Allowed, Ask before changes or Read only, with
    Jelly's own line for each (needs a jelly that includes app#1301).

Known limits

  • Granola's server decides what the tools reach. The plugin registers the tools Granola's server lists. A tool Granola adds later is not classed by the plugin: the access option decides whether it runs, asks or is denied, and /granola-status counts it as unknown.
  • Plan limits. Granola's free plan has no transcripts or folders, and its meeting history covers the last 30 days. Exports say what is missing rather than working around it.
  • Exports are bounded. An export takes 1 to 20 meetings and at most 8 MB; a transcript that does not fit is cut with a note. The file goes outside the project, so OpenCode also asks for external_directory.
  • give_feedback reaches Granola's team. It is allowed by default, and the skill tells the model to send it only when the user asks.
  • No retries. The plugin does not retry a failed call. The error names the next step.
  • Hosts and platforms. The plugin is tested on 2.2.3, 2.2.4, 2.2.5 and 2.2.6, and runs on macOS or Linux. A later 2.2 release starts and is reported as untested.
  • In Jelly, the access setting is drawn as a choice of three, which needs a Jelly that reads declared choices: an
    older Jelly refuses the plugin's whole declaration.
  • 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.

v0.0.0

Choose a tag to compare

@github-actions github-actions released this 11 Nov 13:13
v0.0.0
153f58a

[0.0.0] - 2026-11-10

Added

  • access, the plugin option every OpenCode plugin of this family has: "all" (the default), "ask-changes" and
    "read-only". It generates the default permission block from the tool classes, and /granola-status shows it in the
    Access row and in the status RPC's access field.
  • assets/icon-128.png and assets/icon-256.png, with opencode.icons and opencode.vendor in package.json, and
    scripts/check-icons.mjs, the family icon contract's check.

Changed

  • Each Granola skill's first line says how to sign in when the tools are absent: /connect, or on Jelly jelly_connection_request.

  • Every Granola tool is allowed by default. The plugin's generated block allows every known tool and the granola_*
    namespace, so a tool Granola adds later runs without a prompt too, give_feedback is no longer off, and the export is
    no longer an ask. Restrict it with access, with an agent's own rules, or with a rule per tool; the README's
    Permissions section and SECURITY say what an all-allow default means here.

  • The export folder is outside the project, so OpenCode asks for external_directory as well as the export's own
    action. A refusal that names it costs nothing and becomes EXPORT_PATH_NOT_PERMITTED, whose next step is that rule.

  • docs/scripting.md is the family's scripting contract: the strict envelope, the location section and its unload note,
    the result wording, and the refusal table, with an example-parsing test.

  • PLUGIN_CODES and RPC_CODES are the one typed code table, checked against the README, the configuration guide and
    the scripting guide.

  • The CI has an actionlint job, and npm run check runs actionlint and the icon check.

  • The docs' tested-host sentences are checked against TESTED_HOSTS, and the README prints the default block in full.

  • tools RPC v2: every known tool is scriptable. Granola's writes, give_feedback (a send)
    and the plugin's export_markdown (an export, confined to the export folder) are methods now, so a script can write,
    send or export with the session's allow; sign_out stays outside, since the plugin removes it. The shared tools RPC
    module is updated in place and scripts/check-copies.mjs pins its v2 hash. Every method carries a class, and
    describe reports it, plus each method's resolved permission when given a session.

  • A call resolves the rule before dispatch: only an allow runs, an ask is refused, and a deny is refused, with no
    tool call and no prompt. A saved "Always allow" no longer authorises an ad-hoc script; its grant is a rule in config,
    or a Jobs run session.

Known limits

  • Granola's server decides what the tools reach. The plugin registers the tools Granola's server lists. A tool Granola adds later is not classed by the plugin: the access option decides whether it runs, asks or is denied, and /granola-status counts it as unknown.
  • Plan limits. Granola's free plan has no transcripts or folders, and its meeting history covers the last 30 days. Exports say what is missing rather than working around it.
  • Exports are bounded. An export takes 1 to 20 meetings and at most 8 MB; a transcript that does not fit is cut with a note. The file goes outside the project, so OpenCode also asks for external_directory.
  • give_feedback reaches Granola's team. It is allowed by default, and the skill tells the model to send it only when the user asks.
  • No retries. The plugin does not retry a failed call. The error names the next step.
  • Hosts and platforms. The plugin is tested on 2.2.3, 2.2.4, 2.2.5 and 2.2.6, and runs on macOS or Linux. A later 2.2 release starts and is reported as untested.
  • 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.