github openclaw/gogcli v0.18.0

3 hours ago

0.18.0

Added

  • Docs: add VISION.md with project fit, discussion, and live-test merge guidance.
  • Calendar: add --with-zoom / --regenerate-zoom / --remove-zoom that create, regenerate, and remove Zoom meetings and attach the join URL + meeting ID + passcode to the Calendar event description. Google's Calendar API rejects conferenceData writes asserting conferenceSolution.key.type="addOn" from non-Workspace-Marketplace OAuth clients, so the description-mode integration is the path that round-trips through Google's storage; trade-off is no native "Join with Zoom" conference card. (#589, #590) — thanks @alexisperumal and @mvanhorn.
  • Auth: add gog zoom auth setup / doctor for Zoom S2S OAuth credential storage. (#590) — thanks @mvanhorn.
  • Drive: add --action=resolve|reopen to drive comments reply and sibling drive comments resolve|reopen verbs (also docs comments reopen) to post a reply that atomically flips the parent comment's resolved state via the Drive API's Reply.action field. Avoids the previous workaround of drive comments delete (which destroys review-thread context) for batch-resolving inline doc-review feedback. (#623) — thanks @sebsnyk.
  • Sheets: add gog sheets batch-update <spreadsheetId> --data-json ... for updating multiple value ranges in one Sheets API request. Alias: batch. (#601) — thanks @Tsopic.
  • Docs: add gog docs insert-page-break <docId> [--index N | --at-end] [--tab=STRING] to insert a Google Docs page break directly via InsertPageBreakRequest — markdown has no native page-break construct, so this is the only path for multi-page deliverables. Aliases: page-break, pb. (#604)
  • Docs: add gog docs page-layout <docId> [--layout=pageless|pages] to toggle the page layout of an existing Google Doc via updateDocumentStyle on documentFormat.documentMode. Sibling to the existing --pageless flag on docs create/write/update for the case where the doc was created upstream (e.g. by Drive markdown conversion) without the desired layout. Defaults to pageless. Aliases: set-page-layout, page-setup. (#593)
  • Docs: add --heading-level N (1..6 shortcut) and --named-style NAME (full enum) to gog docs format so existing paragraphs can be promoted to HEADING_1..HEADING_6, TITLE, SUBTITLE, or NORMAL_TEXT. Both set paragraphStyle.namedStyleType on the existing UpdateParagraphStyle request and compose cleanly with --alignment / --line-spacing. (#605)
  • Sheets: add gog sheets reorder-tab <spreadsheetId> --tab=<name|sheetId> --to=N to move a tab to a specific 0-based position via updateSheetProperties with field mask index. --tab accepts a title or a numeric sheet ID; --to=0 is force-sent so the leftmost target reaches the wire as "index":0. Aliases: move-tab, reorder-sheet, move-sheet. (#603)
  • Docs: add gog docs insert-table <docId> --rows N --cols M [--index N | --at-end] [--values-json [[...]]] [--tab=STRING] to insert a native Google Docs table directly via InsertTableRequest, bypassing the markdown writer. --values-json takes a JSON 2D string array whose dimensions must match --rowsx--cols. Empty --values-json produces an empty table structure. (#602)
  • Docs: gog docs write --replace --markdown --tab=<tab> now performs a whole-tab re-render — the targeted tab's existing body is wiped via DeleteContentRange and the markdown is re-rendered locally via the same Docs batchUpdate path used by --append --markdown, so other tabs are untouched. Previously this combination errored because Drive's markdown converter operates on entire documents only. (#595)

Fixed

  • Docs: make generated command references ignore local keyring config so make ci stays clean across developer machines.
  • CLI: harden backup writes, config/credentials atomic saves, keyring write verification, line input buffering, disabled-API hints, JSON transform number handling, and untrusted-content wrapping after ClawPatch review.
  • CLI: bound retry request replay buffering, recover failed async backup pushes, ignore global git commit signing in backup snapshots, and protect account manager OAuth redirects with CSRF checks.
  • Release: update the Homebrew handoff to publish through openclaw/tap.
  • Version: gog --version now reports an informative fallback (for example, v0.17.0-dev) when built from source with plain go build instead of returning dev.
  • Docs: gog docs insert now defaults to end-of-doc when --index is omitted, instead of always inserting at position 1 (which silently reversed iterative inserts across multiple calls). Pass --index 1 explicitly to keep the previous behaviour. (#606)
  • Docs: docs write --append --markdown with three or more markdown tables in a single render no longer drifts the per-table insertion offset by one character per table — the trailing punctuation of the paragraph immediately before the third (and any subsequent) table is preserved instead of being split into a standalone paragraph after the table. (#607)
  • Docs: docs write --append --markdown now expands inline markdown markers (**bold**, *italic*, `code`, [link](url)) inside table cells into character runs, matching the behaviour outside of tables — previously the markers rendered as literal characters because the table inserter bypassed the inline-formatting pass. (#608)
  • Docs: markdown empty-header table rows (e.g. | | |) no longer collide with the separator detection — previously docs write --append --markdown swallowed both the empty header and the real |---|---| separator, leaving the last data row re-parsed as a literal pipe paragraph after the table. (#609)
  • Docs: docs write --append --markdown no longer silently drops tables with insert native table: table not found near index N. The native-table inserter's post-write search used a ±2 code-unit window, but the Docs API's actual table StartIndex can drift further (auto-newline + placeholder paragraph combine to a several-unit shift); the search now picks the closest forward Table element with matching dimensions and a small backward tolerance instead. The docs create --file --markdown path was unaffected because it uses Drive's native markdown import end-to-end. (#592) — thanks @sebsnyk.
  • Docs: docs write --append --markdown now renders bullet lists as native BULLET paragraphs (via CreateParagraphBullets) and fenced code blocks as a single contiguous shaded paragraph (joining lines with vertical-tab soft breaks). Previously bullets came through as NORMAL_TEXT paragraphs with a literal glyph in the text run, and each code-block line became its own one-line Courier New paragraph with no paragraph-level background. (#594) — thanks @sebsnyk.

Don't miss a new gogcli release

NewReleases is sending notifications on new releases.