Repository navigation
Releases: WireCatLabs/drive-cli
Releases · WireCatLabs/drive-cli
Release list
0.54.3
Changed — may break callers
documents checkexits 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,nextandmeta.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
Fixed
documents show,listandexportexit 0 on a copy older than a day. The answer is still the stored copy,
withmeta.complete: false,missingand thesyncstep 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
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 flagdoctoris as before and connects to nothing. Its summary is now
the one every WireCat CLI shares.
0.54.0
Added
drive doctor --online, from cli-core 0.507.0: also connects once and reads the account, sending nothing.
Without the flagdoctoris 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 nextsession startthat reaches
the keyring moves it back and removes the file copy. Answers and the profile'sstorageare as in 0.53.0, and the
keyring warning still comes once per run.
0.53.0
Changed — may break callers
- drive runs on cli-core's shared program, with its
mcp,doctorandskillcommands, 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 --toolsis gone.drive <profile> commands --jsonlists every command with its availability for
the profile, anddrive <profile> mcp checkstarts the server once and counts the tools it offers.mcpgains
config,addandcheck;mcp servekeeps--profiles,--permission,--http,--portand--public-url.- Browser logins of
mcp serve --httpare kept in a new place (<state>/mcp-http/<profile>.json), so a browser
app logs in again once. Stop a server started withmcp server startbefore upgrading: the newmcp server stop
does not find it. doctor --jsonsaysoauth_clientwhere it saidoauth_application, listsprofilesas names, and drops
login; each profile's selected folders and sign-in storage are indrive session list.- Failures and parse errors are cli-core's:
--profileis refused as an unknown option, an unknown command says
validation_errorwith Commander's suggestion, and an expired sign-in no longer carries theowner.sign-instep. --json id,namewith 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 seeagents: drive skill install installs this tool's guide;
drive <profile> config set --defaults skill_hint falseturns it off. mcp serve --read-onlymakes every tool call read-only, asDRIVE_READ_ONLY=1does. An agent'sdocuments export,
files downloadandfiles exportstill 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
Fixed
session startfalls back to a private file when the keyring fails, and never asks (WC-SECR-4). It used to
stop withsign-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 filestill chooses the file outright;
the keyring is still the default and the safer choice.sign-in.not-savednow means the file cannot be read.
0.52.0
Added
searchsays how many documents match in all:total. The answer carriestotal: { value, relation }, shaped
as Elasticsearch'shits.total:eqis the exact count,gtea 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
Fixed
searchkeeps the query's fields for documents found by meaning.tag:workordate>=30dwithout--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 asupdated_at, where it read when drive last imported it (cli-core 0.496.0).
0.50.0
Security
- A run with moved folders never removes the owner's Google sign-in. A run with a different
HOMEor XDG folder
now counts as moved, as one withDRIVE_*_DIRoverrides 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 endin 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 answerssigned_out: falseand
kept: "owners-sign-in", where it saidsigned_out: true.
0.49.0
Changed — may break callers
- The first screen (
drive --help) listsgcalunder "Works with", andsetupoffers 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'smodifiedTimeand compares it with the modified time the store kept when the document
was synced. The answer haschanged,remote_modified_atandlocal_modified_at(nullwhen the copy kept none,
which counts as changed). Whenchangedistrueit also hasmissing(modified_at),next
(drive <profile> sync) andmeta.complete: false; exit code stays 0. Unlikesynced_atondocuments show, this
is per document, not the profile's last sync. It needs the network, so--offlinerefuses it, and a document that
is not imported fails withdocument.not-imported.
Fixed
- Every
next[].linestarts with the profile the command ran with.drive personal documents list --limit 1
gavedrive documents list --page 2 --limit 1anddrive sync, and running such a line failed with
profile.required. Now the lines readdrive personal documents list --page 2 --limit 1anddrive personal sync,
for every step, in answers and in errors.