mirror of
https://github.com/larksuite/cli.git
synced 2026-07-07 17:45:15 +08:00
Mirror auth login's two-step device flow so AI agents can create a new Feishu/Lark app without blocking. `--new --no-wait` initiates the device authorization, prints device_code + verification_url + resume_args as JSON, and returns immediately; `--device-code <code>` resumes polling, then persists and probes the app. Plain `--new` keeps its existing blocking behavior. - Cache the resume context (brand/profile/lang/interval/absolute expiry/config digest) keyed by a sha256 of the device_code; the secret is never cached. - Re-check the config digest immediately before saving so a concurrent edit during the poll window is not clobbered; clear the cache only after a successful save or a terminal poll failure (denied/expired/timeout) so an interrupted resume can retry. - Classify poll failures via sentinel errors on PollAppRegistration. - Emit the resume step as an argv array (resume_args) — cross-platform and injection-safe — carrying --force-init when set. - A non-terminal `config init` returns a FailedPrecondition error pointing at the two-step flow. The new flags are documented in `config init --help`. Tests: cache round-trip, sha256 key, config digest, poll-failure classification, flag-conflict attribution, resume guards (missing / expired / corrupt cache, config drift), and an end-to-end initiate->resume flow through a local HTTP server.