Skip to content

Releases: WireCatLabs/drive-cli

0.54.3

Choose a tag to compare

@github-actions github-actions released this 01 Nov 01:39
3387926

Changed — may break callers

  • documents check exits 0 when the document changed in Google since the last download. The change shows only in
    the answer: changed: true, remote_modified_at, local_modified_at, missing, next and meta.complete: false.
    Before, it exited 1, so a script took a valid answer for a failure. Real failures (not found, not signed in, network
    error) still exit non-zero.

0.54.2

Choose a tag to compare

@github-actions github-actions released this 01 Nov 01:14
1642a4c

Fixed

  • documents show, list and export exit 0 on a copy older than a day. The answer is still the stored copy,
    with meta.complete: false, missing and the sync step saying it may be stale; before, it also exited 1, so a
    script or an agent chaining commands took a valid answer for a failure.

0.54.1

Choose a tag to compare

@github-actions github-actions released this 31 Oct 21:51
bdaaf78

Added

  • drive doctor --online, from cli-core 0.507.0: also connects once, sending nothing, and says whether npm has a
    newer drive (online.version). Without the flag doctor is as before and connects to nothing. Its summary is now
    the one every WireCat CLI shares.

0.54.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 21:18
5f21dac

Added

  • drive doctor --online, from cli-core 0.507.0: also connects once and reads the account, sending nothing.
    Without the flag doctor is as before and connects to nothing.

Fixed

  • The keyring's file fallback now comes from cli-base 0.68.0 and cli-core 0.507.0, with no glue of drive's own. A
    sign-in in the private file is read from there and its refreshes stay there; the next session start that reaches
    the keyring moves it back and removes the file copy. Answers and the profile's storage are as in 0.53.0, and the
    keyring warning still comes once per run.

0.53.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 20:33
dcfbe90

Changed — may break callers

  • drive runs on cli-core's shared program, with its mcp, doctor and skill commands, as gcal, zoom and the
    messengers do (cli-base#390). The command tree, help, failures and run records now come from cli-core 0.501.0.
  • mcp serve --tools is gone. drive <profile> commands --json lists every command with its availability for
    the profile, and drive <profile> mcp check starts the server once and counts the tools it offers. mcp gains
    config, add and check; mcp serve keeps --profiles, --permission, --http, --port and --public-url.
  • Browser logins of mcp serve --http are kept in a new place (<state>/mcp-http/<profile>.json), so a browser
    app logs in again once. Stop a server started with mcp server start before upgrading: the new mcp server stop
    does not find it.
  • doctor --json says oauth_client where it said oauth_application, lists profiles as names, and drops
    login; each profile's selected folders and sign-in storage are in drive session list.
  • Failures and parse errors are cli-core's: --profile is refused as an unknown option, an unknown command says
    validation_error with Commander's suggestion, and an expired sign-in no longer carries the owner.sign-in step.
  • --json id,name with a space no longer picks catalog and document fields; write --json=id,name.
  • New global options from cli-core: -v, --trace, --no-input, --max-input-bytes, --brief, --full.
    Once a day an agent may see agents: drive skill install installs this tool's guide;
    drive <profile> config set --defaults skill_hint false turns it off.
  • mcp serve --read-only makes every tool call read-only, as DRIVE_READ_ONLY=1 does. An agent's documents export,
    files download and files export still take only a file name, written in the profile's export folder.

Settings files and keyring entries written by drive 0.51 load unchanged (checked by contracts:upgrade).

0.52.1

Choose a tag to compare

@github-actions github-actions released this 31 Oct 14:21
a35fde9

Fixed

  • session start falls back to a private file when the keyring fails, and never asks (WC-SECR-4). It used to
    stop with sign-in.not-saved. Now it signs in, says once on stderr that it used the private file, records
    storage: "file" for the profile and answers it. --credential-storage file still chooses the file outright;
    the keyring is still the default and the safer choice. sign-in.not-saved now means the file cannot be read.

0.52.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 13:57
f071915

Added

  • search says how many documents match in all: total. The answer carries total: { value, relation }, shaped
    as Elasticsearch's hits.total: eq is the exact count, gte a lower bound (counting stops at 10,000). It counts
    the documents the words find and those found by meaning, every page together.

Fixed

  • Search by meaning inside a filter finds the filter's own documents. With a filter of at most 2,000 documents,
    every one of them is ranked by meaning, instead of the 50 nearest overall cut to the filter: budget date>=30d
    went from 7 hits to a full page on the owner's store (cli-core 0.501.0). drive requires cli-base 0.67.0.

0.51.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 06:13
6977ee7

Fixed

  • search keeps the query's fields for documents found by meaning. tag:work or date>=30d without --exact
    returned about 20 documents that matched neither; now every field and every excluded word holds for every hit, and
    a query of fields alone lists the matching documents, newest first. date: reads a document's last edit on Google
    Drive, the time its hit shows as updated_at, where it read when drive last imported it (cli-core 0.496.0).

0.50.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 05:47
c09c150

Security

  • A run with moved folders never removes the owner's Google sign-in. A run with a different HOME or XDG folder
    now counts as moved, as one with DRIVE_*_DIR overrides already did (cli-base 0.65.5, WC-SECR-24): it reads the
    owner's keyring entry, saves a new sign-in only to a temporary entry, and keeps a refreshed token in memory instead
    of writing it (cli-core 0.494.0). drive requires cli-base 0.65.5 and cli-core 0.494.0.

Changed — may break callers

  • session end in a run with moved folders says when it kept the owner's sign-in. It removes only the run's
    temporary entry; when the owner's sign-in is still there it answers signed_out: false and
    kept: "owners-sign-in", where it said signed_out: true.

0.49.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 03:34
02b155a

Changed — may break callers

  • The first screen (drive --help) lists gcal under "Works with", and setup offers to install
    @wirecat/gcal-cli. This comes with cli-core 0.481.0.
  • Searching a document's notes (notes list <document> text:review) finds part of a word, in any letter case, and
    looks in the title too.
    A mixed-case Cyrillic word is no longer missed, and the answer comes in milliseconds. A
    search of one or two characters is refused with "search needs at least three characters"; an empty one still
    filters nothing. This comes with cli-core 0.491.0 (store version 40). Notes already saved are indexed in batches,
    and matched as before until then. Every WireCat CLI that shares the store must run cli-core 0.490.0 or later, or it
    does not index the notes it writes: update them together. A caller that searched notes by one or two characters
    must send three or more.

Added

  • drive <profile> documents check <document> asks Google whether one stored document changed. It makes one
    live read of the document's modifiedTime and compares it with the modified time the store kept when the document
    was synced. The answer has changed, remote_modified_at and local_modified_at (null when the copy kept none,
    which counts as changed). When changed is true it also has missing (modified_at), next
    (drive <profile> sync) and meta.complete: false; exit code stays 0. Unlike synced_at on documents show, this
    is per document, not the profile's last sync. It needs the network, so --offline refuses it, and a document that
    is not imported fails with document.not-imported.

Fixed

  • Every next[].line starts with the profile the command ran with. drive personal documents list --limit 1
    gave drive documents list --page 2 --limit 1 and drive sync, and running such a line failed with
    profile.required. Now the lines read drive personal documents list --page 2 --limit 1 and drive personal sync,
    for every step, in answers and in errors.