﻿cargo : warning: hard linking files in the incremental compilation cache failed. copying files instead. consider moving
 the cache directory to a file system which supports hard linking in session dir `\\?\L:\gitcoding\QuiCommit\target\deb
ug\incremental\quicommit-18eafz2whwqi0\s-hih94anbcy-1bcii24-working`
所在位置 C:\Users\zhang.liangyi\AppData\Local\Temp\trae\run-command\scripts\ps-script-fd30136e-1477-4ad1-8506-a1a7ec5dedd9.
ps1:12 字符: 15
+     $output = cargo check 2>&1 | Out-String; $output | Out-File -File ...
+               ~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (warning: hard l...bcii24-working`:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 

warning: associated items `new` and `has_encrypted_pats` are never used
   --> src\config\mod.rs:555:12
    |
554 | impl ExportData {
    | --------------- associated items in this implementation
555 |     pub fn new(config: String) -> Self {
    |            ^^^
...
571 |     pub fn has_encrypted_pats(&self) -> bool {
    |            ^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: associated items `builder`, `validate`, `get_token`, and `usage_stats` are never used
   --> src\config\profile.rs:74:12
    |
 54 | impl GitProfile {
    | --------------- associated items in this implementation
...
 74 |     pub fn builder() -> GitProfileBuilder {
    |            ^^^^^^^
...
 79 |     pub fn validate(&self) -> Result<()> {
    |            ^^^^^^^^
...
134 |     pub fn get_token(&self, service: &str) -> Option<&TokenConfig> {
    |            ^^^^^^^^^
...
155 |     pub fn usage_stats(&self) -> &UsageStats {
    |            ^^^^^^^^^^^

warning: methods `validate` and `git_ssh_command` are never used
   --> src\config\profile.rs:351:12
    |
349 | impl SshConfig {
    | -------------- methods in this implementation
350 |     /// Validate SSH configuration
351 |     pub fn validate(&self) -> Result<()> {
    |            ^^^^^^^^
...
368 |     pub fn git_ssh_command(&self) -> Option<String> {
    |            ^^^^^^^^^^^^^^^

warning: methods `validate` and `program` are never used
   --> src\config\profile.rs:412:12
    |
410 | impl GpgConfig {
    | -------------- methods in this implementation
411 |     /// Validate GPG configuration
412 |     pub fn validate(&self) -> Result<()> {
    |            ^^^^^^^^
...
418 |     pub fn program(&self) -> &str {
    |            ^^^^^^^

warning: associated items `without_token`, `validate`, `record_usage`, and `set_has_token` are never used
   --> src\config\profile.rs:465:12
    |
451 | impl TokenConfig {
    | ---------------- associated items in this implementation
...
465 |     pub fn without_token(token_type: TokenType) -> Self {
    |            ^^^^^^^^^^^^^
...
477 |     pub fn validate(&self) -> Result<()> {
    |            ^^^^^^^^
...
485 |     pub fn record_usage(&mut self) {
    |            ^^^^^^^^^^^^
...
490 |     pub fn set_has_token(&mut self, has_token: bool) {
    |            ^^^^^^^^^^^^^

warning: field `profile_name` is never read
   --> src\config\profile.rs:543:9
    |
542 | pub struct ProfileComparison {
    |            ----------------- field in this struct
543 |     pub profile_name: String,
    |         ^^^^^^^^^^^^
    |
    = note: `ProfileComparison` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignor
ed during dead code analysis

warning: struct `GitProfileBuilder` is never constructed
   --> src\config\profile.rs:570:12
    |
570 | pub struct GitProfileBuilder {
    |            ^^^^^^^^^^^^^^^^^

warning: multiple methods are never used
   --> src\config\profile.rs:585:12
    |
584 | impl GitProfileBuilder {
    | ---------------------- methods in this implementation
585 |     pub fn name(mut self, name: impl Into<String>) -> Self {
    |            ^^^^
...
590 |     pub fn user_name(mut self, user_name: impl Into<String>) -> Self {
    |            ^^^^^^^^^
...
595 |     pub fn user_email(mut self, user_email: impl Into<String>) -> Self {
    |            ^^^^^^^^^^
...
600 |     pub fn settings(mut self, settings: ProfileSettings) -> Self {
    |            ^^^^^^^^
...
605 |     pub fn ssh(mut self, ssh: SshConfig) -> Self {
    |            ^^^
...
610 |     pub fn gpg(mut self, gpg: GpgConfig) -> Self {
    |            ^^^
...
615 |     pub fn signing_key(mut self, key: impl Into<String>) -> Self {
    |            ^^^^^^^^^^^
...
620 |     pub fn description(mut self, desc: impl Into<String>) -> Self {
    |            ^^^^^^^^^^^
...
625 |     pub fn work(mut self, is_work: bool) -> Self {
    |            ^^^^
...
630 |     pub fn organization(mut self, org: impl Into<String>) -> Self {
    |            ^^^^^^^^^^^^
...
635 |     pub fn token(mut self, service: impl Into<String>, token: TokenConfig) -> Self {
    |            ^^^^^
...
640 |     pub fn build(self) -> Result<GitProfile> {
    |            ^^^^^

warning: method `generate_changelog_from_repo` is never used
  --> src\generator\mod.rs:94:18
   |
12 | impl ContentGenerator {
   | --------------------- method in this implementation
...
94 |     pub async fn generate_changelog_from_repo(
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: function `generate_simple_commit` is never used
   --> src\generator\mod.rs:191:12
    |
191 |     pub fn generate_simple_commit(files: &[String]) -> String {
    |            ^^^^^^^^^^^^^^^^^^^^^^

warning: function `generate_date_commit` is never used
   --> src\generator\mod.rs:202:12
    |
202 |     pub fn generate_date_commit() -> String {
    |            ^^^^^^^^^^^^^^^^^^^^

warning: function `generate_by_file_types` is never used
   --> src\generator\mod.rs:207:12
    |
207 |     pub fn generate_by_file_types(files: &[String]) -> String {
    |            ^^^^^^^^^^^^^^^^^^^^^^

warning: multiple methods are never used
   --> src\git\mod.rs:230:12
    |
175 | impl GitRepo {
    | ------------ methods in this implementation
...
230 |     pub fn config(&self) -> Option<&Config> {
    |            ^^^^^^
...
244 |     pub fn get_config_regex(&self, _pattern: &str) -> Result<HashMap<String, String>> {
    |            ^^^^^^^^^^^^^^^^
...
263 |     pub fn get_signing_key(&self) -> Result<Option<String>> {
    |            ^^^^^^^^^^^^^^^
...
269 |     pub fn should_sign_commits(&self) -> bool {
    |            ^^^^^^^^^^^^^^^^^^^
...
278 |     pub fn should_sign_tags(&self) -> bool {
    |            ^^^^^^^^^^^^^^^^
...
287 |     pub fn get_gpg_program(&self) -> Result<String> {
    |            ^^^^^^^^^^^^^^^
...
313 |     pub fn is_valid(&self) -> bool {
    |            ^^^^^^^^
...
318 |     pub fn has_changes(&self) -> Result<bool> {
    |            ^^^^^^^^^^^

warning: multiple methods are never used
   --> src\git\mod.rs:461:12
    |
459 | impl GitRepo {
    | ------------ methods in this implementation
460 |     /// Get unstaged diff
461 |     pub fn get_unstaged_diff(&self) -> Result<String> {
    |            ^^^^^^^^^^^^^^^^^
...
476 |     pub fn get_full_diff(&self) -> Result<String> {
    |            ^^^^^^^^^^^^^
...
484 |     pub fn get_changed_files(&self) -> Result<Vec<String>> {
    |            ^^^^^^^^^^^^^^^^^
...
523 |     pub fn stage_files<P: AsRef<Path>>(&self, paths: &[P]) -> Result<()> {
    |            ^^^^^^^^^^^
...
562 |     pub fn unstage_files<P: AsRef<Path>>(&self, paths: &[P]) -> Result<()> {
    |            ^^^^^^^^^^^^^
...
658 |     pub fn current_branch(&self) -> Result<String> {
    |            ^^^^^^^^^^^^^^
...
671 |     pub fn current_commit_short(&self) -> Result<String> {
    |            ^^^^^^^^^^^^^^^^^^^^
...
679 |     pub fn current_commit(&self) -> Result<String> {
    |            ^^^^^^^^^^^^^^
...
817 |     fn create_gpg_signature_for_content(&self, _content: &str, _gpg_program: &str, _signing_key: &str) -> Result<
String> {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
822 |     pub fn delete_tag(&self, name: &str) -> Result<()> {
    |            ^^^^^^^^^^
...
843 |     pub fn get_remote_url(&self, remote: &str) -> Result<String> {
    |            ^^^^^^^^^^^^^^
...
851 |     pub fn is_clean(&self) -> Result<bool> {
    |            ^^^^^^^^

warning: fields `id`, `email`, and `time` are never read
   --> src\git\mod.rs:917:9
    |
916 | pub struct CommitInfo {
    |            ---------- fields in this struct
917 |     pub id: String,
    |         ^^
...
921 |     pub email: String,
    |         ^^^^^
922 |     pub time: i64,
    |         ^^^^
    |
    = note: `CommitInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored duri
ng dead code analysis

warning: fields `target` and `message` are never read
   --> src\git\mod.rs:948:9
    |
946 | pub struct TagInfo {
    |            ------- fields in this struct
947 |     pub name: String,
948 |     pub target: String,
    |         ^^^^^^
949 |     pub message: String,
    |         ^^^^^^^
    |
    = note: `TagInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during 
dead code analysis

warning: field `conflicted` is never read
   --> src\git\mod.rs:959:9
    |
955 | pub struct StatusSummary {
    |            ------------- field in this struct
...
959 |     pub conflicted: usize,
    |         ^^^^^^^^^^
    |
    = note: `StatusSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored d
uring dead code analysis

warning: method `format` is never used
   --> src\git\mod.rs:965:12
    |
963 | impl StatusSummary {
    | ------------------ method in this implementation
964 |     /// Format as human-readable string
965 |     pub fn format(&self) -> String {
    |            ^^^^^^

warning: function `is_git_repo` is never used
    --> src\git\mod.rs:1059:8
     |
1059 | pub fn is_git_repo<P: AsRef<Path>>(path: P) -> bool {
     |        ^^^^^^^^^^^

warning: struct `GitConfigHelper` is never constructed
    --> src\git\mod.rs:1064:12
     |
1064 | pub struct GitConfigHelper<'a> {
     |            ^^^^^^^^^^^^^^^

warning: multiple associated items are never used
    --> src\git\mod.rs:1071:12
     |
1069 | impl<'a> GitConfigHelper<'a> {
     | ---------------------------- associated items in this implementation
1070 |     /// Create a helper for repository-level configuration
1071 |     pub fn for_repo(repo: &'a Repository) -> Self {
     |            ^^^^^^^^
...
1079 |     pub fn for_global() -> Result<Self> {
     |            ^^^^^^^^^^
...
1088 |     pub fn get(&self, key: &str) -> Result<Option<String>> {
     |            ^^^
...
1101 |     pub fn set(&self, key: &str, value: &str) -> Result<()> {
     |            ^^^
...
1115 |     pub fn remove(&self, key: &str) -> Result<()> {
     |            ^^^^^^
...
1129 |     pub fn get_user_config(&self) -> Result<UserConfig> {
     |            ^^^^^^^^^^^^^^^
...
1139 |     pub fn set_user_config(&self, config: &UserConfig) -> Result<()> {
     |            ^^^^^^^^^^^^^^^

warning: methods `is_local` and `is_global` are never used
    --> src\git\mod.rs:1202:12
     |
1183 | impl ConfigEntry {
     | ---------------- methods in this implementation
...
1202 |     pub fn is_local(&self) -> bool {
     |            ^^^^^^^^
...
1206 |     pub fn is_global(&self) -> bool {
     |            ^^^^^^^^^

warning: method `has_local_overrides` is never used
    --> src\git\mod.rs:1247:12
     |
1222 | impl MergedUserConfig {
     | --------------------- method in this implementation
...
1247 |     pub fn has_local_overrides(&self) -> bool {
     |            ^^^^^^^^^^^^^^^^^^^

warning: struct `UserConfig` is never constructed
    --> src\git\mod.rs:1254:12
     |
1254 | pub struct UserConfig {
     |            ^^^^^^^^^^

warning: methods `is_complete` and `compare` are never used
    --> src\git\mod.rs:1263:12
     |
1261 | impl UserConfig {
     | --------------- methods in this implementation
1262 |     /// Check if configuration is complete
1263 |     pub fn is_complete(&self) -> bool {
     |            ^^^^^^^^^^^
...
1268 |     pub fn compare(&self, other: &UserConfig) -> Vec<ConfigDiff> {
     |            ^^^^^^^

warning: struct `ConfigDiff` is never constructed
    --> src\git\mod.rs:1301:12
     |
1301 | pub struct ConfigDiff {
     |            ^^^^^^^^^^

warning: methods `group_by_type`, `add_category`, and `generate_and_prepend` are never used
   --> src\git\changelog.rs:70:12
    |
 39 | impl ChangelogGenerator {
    | ----------------------- methods in this implementation
...
 70 |     pub fn group_by_type(mut self, group: bool) -> Self {
    |            ^^^^^^^^^^^^^
...
 76 |     pub fn add_category(mut self, title: impl Into<String>, types: Vec<String>) -> Self {
    |            ^^^^^^^^^^^^
...
105 |     pub fn generate_and_prepend(
    |            ^^^^^^^^^^^^^^^^^^^^

warning: function `read_changelog` is never used
   --> src\git\changelog.rs:382:8
    |
382 | pub fn read_changelog(path: &Path) -> Result<String> {
    |        ^^^^^^^^^^^^^^

warning: function `update_version_links` is never used
   --> src\git\changelog.rs:416:8
    |
416 | pub fn update_version_links(
    |        ^^^^^^^^^^^^^^^^^^^^

warning: function `parse_versions` is never used
   --> src\git\changelog.rs:426:8
    |
426 | pub fn parse_versions(changelog: &str) -> Vec<(String, String)> {
    |        ^^^^^^^^^^^^^^

warning: function `get_unreleased_changes` is never used
   --> src\git\changelog.rs:449:8
    |
449 | pub fn get_unreleased_changes(repo: &GitRepo) -> Result<Vec<CommitInfo>> {
    |        ^^^^^^^^^^^^^^^^^^^^^^

warning: struct `ChangelogEntry` is never constructed
   --> src\git\changelog.rs:460:12
    |
460 | pub struct ChangelogEntry {
    |            ^^^^^^^^^^^^^^

warning: associated items `new` and `with_date` are never used
   --> src\git\changelog.rs:468:12
    |
466 | impl ChangelogEntry {
    | ------------------- associated items in this implementation
467 |     /// Create new entry
468 |     pub fn new(version: impl Into<String>, commits: Vec<CommitInfo>) -> Self {
    |            ^^^
...
477 |     pub fn with_date(mut self, date: DateTime<Utc>) -> Self {
    |            ^^^^^^^^^

warning: methods `scope`, `body`, `footer`, `amend`, and `no_verify` are never used
   --> src\git\commit.rs:45:12
    |
 20 | impl CommitBuilder {
    | ------------------ methods in this implementation
...
 45 |     pub fn scope(mut self, scope: impl Into<String>) -> Self {
    |            ^^^^^
...
 63 |     pub fn body(mut self, body: impl Into<String>) -> Self {
    |            ^^^^
...
 75 |     pub fn footer(mut self, footer: impl Into<String>) -> Self {
    |            ^^^^^^
...
 99 |     pub fn amend(mut self, amend: bool) -> Self {
    |            ^^^^^
...
105 |     pub fn no_verify(mut self, no_verify: bool) -> Self {
    |            ^^^^^^^^^

warning: function `suggest_commit_type` is never used
   --> src\git\commit.rs:230:8
    |
230 | pub fn suggest_commit_type(diff: &str) -> Vec<&'static str> {
    |        ^^^^^^^^^^^^^^^^^^^

warning: method `to_message` is never used
   --> src\git\commit.rs:351:12
    |
349 | impl ParsedCommit {
    | ----------------- method in this implementation
350 |     /// Convert back to commit message
351 |     pub fn to_message(&self, format: crate::config::CommitFormat) -> String {
    |            ^^^^^^^^^^

warning: field `version_prefix` is never read
  --> src\git\tag.rs:12:5
   |
 6 | pub struct TagBuilder {
   |            ---------- field in this struct
...
12 |     version_prefix: String,
   |     ^^^^^^^^^^^^^^

warning: methods `version_prefix`, `version`, and `execute_and_push` are never used
   --> src\git\tag.rs:59:12
    |
 15 | impl TagBuilder {
    | --------------- methods in this implementation
...
 59 |     pub fn version_prefix(mut self, prefix: impl Into<String>) -> Self {
    |            ^^^^^^^^^^^^^^
...
 65 |     pub fn version(mut self, version: &Version) -> Self {
    |            ^^^^^^^
...
106 |     pub fn execute_and_push(&self, repo: &GitRepo, remote: &str) -> Result<()> {
    |            ^^^^^^^^^^^^^^^^

warning: associated function `variants` is never used
   --> src\git\tag.rs:144:12
    |
131 | impl VersionBump {
    | ---------------- associated function in this implementation
...
144 |     pub fn variants() -> &'static [&'static str] {
    |            ^^^^^^^^

warning: function `generate_tag_message` is never used
   --> src\git\tag.rs:215:8
    |
215 | pub fn generate_tag_message(version: &str, commits: &[super::CommitInfo]) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^

warning: function `delete_tag` is never used
   --> src\git\tag.rs:278:8
    |
278 | pub fn delete_tag(repo: &GitRepo, name: &str, remote: Option<&str>) -> Result<()> {
    |        ^^^^^^^^^^

warning: function `list_tags` is never used
   --> src\git\tag.rs:300:8
    |
300 | pub fn list_tags(
    |        ^^^^^^^^^

warning: multiple methods are never used
    --> src\i18n\messages.rs:660:12
     |
   7 | impl Messages {
     | ------------- methods in this implementation
...
 660 |     pub fn staged_files(&self, count: usize) -> String {
     |            ^^^^^^^^^^^^
...
 672 |     pub fn generating_commit_message(&self) -> &str {
     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
...
 684 |     pub fn generated_commit_message(&self) -> &str {
     |            ^^^^^^^^^^^^^^^^^^^^^^^^
...
 696 |     pub fn what_would_you_like_to_do(&self) -> &str {
     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
...
 708 |     pub fn accept_and_commit(&self) -> &str {
     |            ^^^^^^^^^^^^^^^^^
...
 720 |     pub fn regenerate(&self) -> &str {
     |            ^^^^^^^^^^
...
 732 |     pub fn edit(&self) -> &str {
     |            ^^^^
...
 744 |     pub fn copy_to_clipboard(&self) -> &str {
     |            ^^^^^^^^^^^^^^^^^
...
 756 |     pub fn cancel(&self) -> &str {
     |            ^^^^^^
...
 768 |     pub fn regenerating(&self) -> &str {
     |            ^^^^^^^^^^^^
...
 780 |     pub fn copied_to_clipboard(&self) -> &str {
     |            ^^^^^^^^^^^^^^^^^^^
...
 792 |     pub fn cancelled_by_user(&self) -> &str {
     |            ^^^^^^^^^^^^^^^^^
...
1092 |     pub fn model(&self) -> &str {
     |            ^^^^^
...
1104 |     pub fn base_url(&self) -> &str {
     |            ^^^^^^^^
...
1116 |     pub fn configuration_updated(&self) -> &str {
     |            ^^^^^^^^^^^^^^^^^^^^^
...
1128 |     pub fn set_value(&self, key: &str, value: &str) -> String {
     |            ^^^^^^^^^

warning: field `keep_types_english` is never read
 --> src\i18n\translator.rs:5:5
  |
3 | pub struct Translator {
  |            ---------- field in this struct
4 |     language: Language,
5 |     keep_types_english: bool,
  |     ^^^^^^^^^^^^^^^^^^

warning: multiple methods are never used
   --> src\i18n\translator.rs:18:12
    |
  9 | impl Translator {
    | --------------- methods in this implementation
...
 18 |     pub fn translate_commit_type(&self, commit_type: &str) -> String {
    |            ^^^^^^^^^^^^^^^^^^^^^
...
 50 |     fn translate_commit_type_zh(&self, commit_type: &str) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 |     fn translate_commit_type_ja(&self, commit_type: &str) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^
...
 84 |     fn translate_commit_type_ko(&self, commit_type: &str) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^
...
101 |     fn translate_commit_type_es(&self, commit_type: &str) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^
...
118 |     fn translate_commit_type_fr(&self, commit_type: &str) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^
...
135 |     fn translate_commit_type_de(&self, commit_type: &str) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^

warning: function `translate_commit_type` is never used
   --> src\i18n\translator.rs:225:8
    |
225 | pub fn translate_commit_type(commit_type: &str, language: Language, keep_english: bool) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^

warning: method `name` is never used
  --> src\llm\mod.rs:33:8
   |
22 | pub trait LlmProvider: Send + Sync {
   |           ----------- method in this trait
...
33 |     fn name(&self) -> &str;
   |        ^^^^

warning: field `config` is never read
  --> src\llm\mod.rs:39:5
   |
37 | pub struct LlmClient {
   |            --------- field in this struct
38 |     provider: Box<dyn LlmProvider>,
39 |     config: LlmClientConfig,
   |     ^^^^^^

warning: fields `max_tokens`, `temperature`, and `timeout` are never read
  --> src\llm\mod.rs:44:9
   |
43 | pub struct LlmClientConfig {
   |            --------------- fields in this struct
44 |     pub max_tokens: u32,
   |         ^^^^^^^^^^
45 |     pub temperature: f32,
   |         ^^^^^^^^^^^
46 |     pub timeout: Duration,
   |         ^^^^^^^
   |
   = note: `LlmClientConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored 
during dead code analysis

warning: associated function `with_provider` is never used
   --> src\llm\mod.rs:113:12
    |
 59 | impl LlmClient {
    | -------------- associated function in this implementation
...
113 |     pub fn with_provider(provider: Box<dyn LlmProvider>) -> Self {
    |            ^^^^^^^^^^^^^

warning: method `to_commitlint` is never used
   --> src\llm\mod.rs:385:12
    |
371 | impl GeneratedCommit {
    | -------------------- method in this implementation
...
385 |     pub fn to_commitlint(&self) -> String {
    |            ^^^^^^^^^^^^^

warning: field `done` is never read
  --> src\llm\ollama.rs:34:5
   |
32 | struct GenerateResponse {
   |        ---------------- field in this struct
33 |     response: String,
34 |     done: bool,
   |     ^^^^
   |
   = note: `GenerateResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead c
ode analysis

warning: struct `ListModelsResponse` is never constructed
  --> src\llm\ollama.rs:38:8
   |
38 | struct ListModelsResponse {
   |        ^^^^^^^^^^^^^^^^^^

warning: struct `ModelInfo` is never constructed
  --> src\llm\ollama.rs:43:8
   |
43 | struct ModelInfo {
   |        ^^^^^^^^^

warning: methods `with_timeout`, `list_models`, `pull_model`, and `model_exists` are never used
   --> src\llm\ollama.rs:61:12
    |
 47 | impl OllamaClient {
    | ----------------- methods in this implementation
...
 61 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
    |            ^^^^^^^^^^^^
...
 68 |     pub async fn list_models(&self) -> Result<Vec<String>> {
    |                  ^^^^^^^^^^^
...
 92 |     pub async fn pull_model(&self, model: &str) -> Result<()> {
    |                  ^^^^^^^^^^
...
117 |     pub async fn model_exists(&self, model: &str) -> bool {
    |                  ^^^^^^^^^^^^

warning: method `with_timeout` is never used
  --> src\llm\openai.rs:68:12
   |
54 | impl OpenAiClient {
   | ----------------- method in this implementation
...
68 |     pub fn with_timeout(mut self, timeout: Duration) -> Result<Self> {
   |            ^^^^^^^^^^^^

warning: struct `AzureOpenAiClient` is never constructed
   --> src\llm\openai.rs:212:12
    |
212 | pub struct AzureOpenAiClient {
    |            ^^^^^^^^^^^^^^^^^

warning: associated items `new` and `chat_completion` are never used
   --> src\llm\openai.rs:222:12
    |
220 | impl AzureOpenAiClient {
    | ---------------------- associated items in this implementation
221 |     /// Create new Azure OpenAI client
222 |     pub fn new(
    |            ^^^
...
239 |     async fn chat_completion(&self, messages: Vec<Message>) -> Result<String> {
    |              ^^^^^^^^^^^^^^^

warning: methods `with_timeout` and `list_models` are never used
  --> src\llm\anthropic.rs:68:12
   |
55 | impl AnthropicClient {
   | -------------------- methods in this implementation
...
68 |     pub fn with_timeout(mut self, timeout: Duration) -> Result<Self> {
   |            ^^^^^^^^^^^^
...
74 |     pub async fn list_models(&self) -> Result<Vec<String>> {
   |                  ^^^^^^^^^^^

warning: constant `ANTHROPIC_MODELS` is never used
   --> src\llm\anthropic.rs:210:11
    |
210 | pub const ANTHROPIC_MODELS: &[&str] = &[
    |           ^^^^^^^^^^^^^^^^

warning: function `is_valid_model` is never used
   --> src\llm\anthropic.rs:220:8
    |
220 | pub fn is_valid_model(model: &str) -> bool {
    |        ^^^^^^^^^^^^^^

warning: associated items `new` and `with_timeout` are never used
  --> src\llm\kimi.rs:56:12
   |
54 | impl KimiClient {
   | --------------- associated items in this implementation
55 |     /// Create new Kimi client
56 |     pub fn new(api_key: &str, model: &str) -> Result<Self> {
   |            ^^^
...
80 |     pub fn with_timeout(mut self, timeout: Duration) -> Result<Self> {
   |            ^^^^^^^^^^^^

warning: constant `KIMI_MODELS` is never used
   --> src\llm\kimi.rs:224:11
    |
224 | pub const KIMI_MODELS: &[&str] = &[
    |           ^^^^^^^^^^^

warning: function `is_valid_model` is never used
   --> src\llm\kimi.rs:231:8
    |
231 | pub fn is_valid_model(model: &str) -> bool {
    |        ^^^^^^^^^^^^^^

warning: associated items `new` and `with_timeout` are never used
  --> src\llm\deepseek.rs:56:12
   |
54 | impl DeepSeekClient {
   | ------------------- associated items in this implementation
55 |     /// Create new DeepSeek client
56 |     pub fn new(api_key: &str, model: &str) -> Result<Self> {
   |            ^^^
...
80 |     pub fn with_timeout(mut self, timeout: Duration) -> Result<Self> {
   |            ^^^^^^^^^^^^

warning: constant `DEEPSEEK_MODELS` is never used
   --> src\llm\deepseek.rs:224:11
    |
224 | pub const DEEPSEEK_MODELS: &[&str] = &[
    |           ^^^^^^^^^^^^^^^

warning: function `is_valid_model` is never used
   --> src\llm\deepseek.rs:230:8
    |
230 | pub fn is_valid_model(model: &str) -> bool {
    |        ^^^^^^^^^^^^^^

warning: associated items `new` and `with_timeout` are never used
  --> src\llm\openrouter.rs:56:12
   |
54 | impl OpenRouterClient {
   | --------------------- associated items in this implementation
55 |     /// Create new OpenRouter client
56 |     pub fn new(api_key: &str, model: &str) -> Result<Self> {
   |            ^^^
...
80 |     pub fn with_timeout(mut self, timeout: Duration) -> Result<Self> {
   |            ^^^^^^^^^^^^

warning: constant `OPENROUTER_MODELS` is never used
   --> src\llm\openrouter.rs:228:11
    |
228 | pub const OPENROUTER_MODELS: &[&str] = &[
    |           ^^^^^^^^^^^^^^^^^

warning: function `is_valid_model` is never used
   --> src\llm\openrouter.rs:242:8
    |
242 | pub fn is_valid_model(_model: &str) -> bool {
    |        ^^^^^^^^^^^^^^

warning: function `print_success` is never used
  --> src\utils\mod.rs:12:8
   |
12 | pub fn print_success(msg: &str) {
   |        ^^^^^^^^^^^^^

warning: function `print_error` is never used
  --> src\utils\mod.rs:17:8
   |
17 | pub fn print_error(msg: &str) {
   |        ^^^^^^^^^^^

warning: function `print_warning` is never used
  --> src\utils\mod.rs:22:8
   |
22 | pub fn print_warning(msg: &str) {
   |        ^^^^^^^^^^^^^

warning: function `print_info` is never used
  --> src\utils\mod.rs:27:8
   |
27 | pub fn print_info(msg: &str) {
   |        ^^^^^^^^^^

warning: function `confirm` is never used
  --> src\utils\mod.rs:32:8
   |
32 | pub fn confirm(prompt: &str) -> Result<bool> {
   |        ^^^^^^^

warning: function `input` is never used
  --> src\utils\mod.rs:43:8
   |
43 | pub fn input(prompt: &str) -> Result<String> {
   |        ^^^^^

warning: function `is_terminal` is never used
  --> src\utils\mod.rs:64:8
   |
64 | pub fn is_terminal() -> bool {
   |        ^^^^^^^^^^^

warning: function `format_duration` is never used
  --> src\utils\mod.rs:69:8
   |
69 | pub fn format_duration(secs: u64) -> String {
   |        ^^^^^^^^^^^^^^^

warning: function `encrypt_to_file` is never used
  --> src\utils\crypto.rs:82:8
   |
82 | pub fn encrypt_to_file(data: &[u8], password: &str, path: &Path) -> Result<()> {
   |        ^^^^^^^^^^^^^^^

warning: function `decrypt_from_file` is never used
  --> src\utils\crypto.rs:90:8
   |
90 | pub fn decrypt_from_file(path: &Path, password: &str) -> Result<Vec<u8>> {
   |        ^^^^^^^^^^^^^^^^^

warning: function `generate_token` is never used
  --> src\utils\crypto.rs:97:8
   |
97 | pub fn generate_token(length: usize) -> String {
   |        ^^^^^^^^^^^^^^

warning: function `sha256` is never used
   --> src\utils\crypto.rs:110:8
    |
110 | pub fn sha256(data: &[u8]) -> String {
    |        ^^^^^^

warning: function `edit_temp` is never used
  --> src\utils\editor.rs:25:8
   |
25 | pub fn edit_temp(initial_content: &str, extension: &str) -> Result<String> {
   |        ^^^^^^^^^

warning: function `get_editor` is never used
  --> src\utils\editor.rs:39:8
   |
39 | pub fn get_editor() -> String {
   |        ^^^^^^^^^^

warning: function `check_editor` is never used
  --> src\utils\editor.rs:66:8
   |
66 | pub fn check_editor() -> Result<()> {
   |        ^^^^^^^^^^^^

warning: function `wrap_text` is never used
  --> src\utils\formatter.rs:69:8
   |
69 | pub fn wrap_text(text: &str, width: usize) -> String {
   |        ^^^^^^^^^

warning: function `clean_message` is never used
  --> src\utils\formatter.rs:74:8
   |
74 | pub fn clean_message(message: &str) -> String {
   |        ^^^^^^^^^^^^^

warning: variant `Unavailable` is never constructed
  --> src\utils\keyring.rs:12:5
   |
10 | pub enum KeyringStatus {
   |          ------------- variant in this enum
11 |     Available,
12 |     Unavailable,
   |     ^^^^^^^^^^^
   |
   = note: `KeyringStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored du
ring dead code analysis

warning: methods `status` and `has_api_key` are never used
   --> src\utils\keyring.rs:65:12
    |
 19 | impl KeyringManager {
    | ------------------- methods in this implementation
...
 65 |     pub fn status(&self) -> KeyringStatus {
    |            ^^^^^^
...
122 |     pub fn has_api_key(&self, provider: &str) -> bool {
    |            ^^^^^^^^^^^

warning: function `validate_scope` is never used
   --> src\utils\validators.rs:136:8
    |
136 | pub fn validate_scope(scope: &str) -> Result<()> {
    |        ^^^^^^^^^^^^^^

warning: function `validate_gpg_key_id` is never used
   --> src\utils\validators.rs:172:8
    |
172 | pub fn validate_gpg_key_id(key_id: &str) -> Result<()> {
    |        ^^^^^^^^^^^^^^^^^^^

warning: function `is_valid_commit_type` is never used
   --> src\utils\validators.rs:198:8
    |
198 | pub fn is_valid_commit_type(commit_type: &str, use_commitlint: bool) -> bool {
    |        ^^^^^^^^^^^^^^^^^^^^

warning: `quicommit` (bin "quicommit") generated 93 warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.70s

