Skip to content

v1.2.6

@longevityboris longevityboris tagged this 25 Mar 06:59
Codex production audit findings, all 7 fixed:

1. Exit code consistency: 7 commands that emitted error JSON but exited 0
   now return Err(NotFound(...)) for proper non-zero exit codes.
   Files: schedule, report, suggest, track, bookmarks, engage_recommend

2. web-login JSON framing: extracted set_silent() so web_login emits a
   single clean JSON envelope instead of three concatenated objects.

3. update --check panic: wrapped self_update blocking I/O in
   tokio::task::spawn_blocking to prevent Tokio runtime-drop panic (exit 101).

4. track status DB schema: posted_at column read now handles both INTEGER
   (current schema) and TEXT (old DBs created by earlier versions).

5. Schema normalisation: #[serde(rename)] on all output structs to enforce
   canonical JSON field names — tweet_id→id, created_at→date,
   author_username→author, tweet_ids→ids across all commands.

6. Tracing subscriber: added tracing_subscriber::fmt() init with EnvFilter
   in main.rs. Default level warn, configurable via RUST_LOG env var.

7. Removed expect() panics: AppContext::new() and build_oauth2_client()
   now return Result with proper error propagation.

Bonus: all 16 clippy warnings fixed (cargo clippy --all-targets -- -D warnings clean).
Assets 2
Loading