corky 0.19.0

Sync email threads from IMAP to Markdown, draft replies, manage collaborators
---
project_type: rust-maturin
publication_targets:
  - crates.io
  - pypi
  - github-release
secret_paths:
  crates_io: "btak/CARGO_REGISTRY_TOKEN"
  pypi: "pypi/token"
  gcp_client_id: "corky/gcp/client_id"
  gcp_client_secret: "corky/gcp/client_secret"
post_release:
  - "cargo install --path ."
  - "cargo build --release"
---

# corky — Release Notes

## GCP OAuth credentials baked at build time

The Makefile injects `CORKY_DEFAULT_GCP_CLIENT_ID` and `CORKY_DEFAULT_GCP_CLIENT_SECRET`
via `pass` at build time (using `env!()` in Rust). Release builds (`make release`)
automatically pick these up. Manual `cargo build --release` will too, as long as the
env vars are exported (the Makefile handles this).

For `cargo publish`, the crate compiles on crates.io without GCP creds — `env!()` uses
empty-string defaults so the published crate builds cleanly.

## Two-repo model

`mail/` is the private data repo (synced threads, drafts, contacts). corky is the
public tool repo. Never commit mail data into corky. The `mail` entry in `.gitignore`
keeps them separated.

## YouTube uploads default to public

When uploading to YouTube via corky, videos default to **public** visibility.
Always set `--visibility private` unless the user explicitly requests public.

## Version sync

`pyproject.toml` version must match `Cargo.toml`.