Replaces raw string return from git_push with a structured GitPushResult that classifies errors as rejected/auth_error/network_error/error, each with an actionable user-facing message. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- git.rs (1907 lines) → 7 files: mod, history, status, commit, remote, conflict, pulse - theme.rs (1075 lines) → 4 files: mod, defaults, seed, create - github.rs (886 lines) → 4 files: mod, api, auth, clone - frontmatter.rs (827 lines) → 3 files: mod, yaml, ops - lib.rs (772 lines) → lib.rs (160) + commands.rs (650) 484 tests pass, clippy clean, rustfmt clean, coverage 85.42%