[[bench]]
harness = false
name = "benchmarks"
path = "benches/benchmarks.rs"
[[bin]]
name = "vibe_coding_tracker"
path = "src/main.rs"
[dependencies.ahash]
features = ["serde"]
version = "0.8"
[dependencies.anyhow]
version = "1.0"
[dependencies.bytecount]
version = "0.6"
[dependencies.chrono]
features = ["serde"]
version = "0.4"
[dependencies.clap]
features = ["derive", "env"]
version = "4.5"
[dependencies.comfy-table]
version = "7.2"
[dependencies.crossterm]
version = "0.29"
[dependencies.env_logger]
version = "0.11"
[dependencies.flate2]
version = "1.1"
[dependencies.home]
version = "0.5"
[dependencies.hostname]
version = "0.4"
[dependencies.itoa]
version = "1.0"
[dependencies.log]
version = "0.4"
[dependencies.lru]
version = "0.12"
[dependencies.memchr]
version = "2.7"
[dependencies.mimalloc]
default-features = false
version = "0.1"
[dependencies.once_cell]
version = "1.20"
[dependencies.owo-colors]
version = "4.2"
[dependencies.ratatui]
version = "0.29"
[dependencies.rayon]
version = "1.10"
[dependencies.regex]
version = "1.11"
[dependencies.reqwest]
default-features = false
features = ["blocking", "json", "rustls-tls"]
version = "0.12"
[dependencies.semver]
version = "1.0"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.serde_json]
version = "1.0"
[dependencies.strsim]
version = "0.11"
[dependencies.sysinfo]
version = "0.36"
[dependencies.tar]
version = "0.4"
[dependencies.walkdir]
version = "2.5"
[dependencies.zip]
version = "5.1"
[dev-dependencies.assert_cmd]
version = "2.0"
[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.5"
[dev-dependencies.predicates]
version = "3.1"
[dev-dependencies.tempfile]
version = "3.23"
[lib]
name = "vibe_coding_tracker"
path = "src/lib.rs"
[package]
authors = ["Wei Lee <mai@mai0313.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
description = "Vibe Coding Tracker - AI coding assistant telemetry/usage parser, aggregate JSONL events into CodeAnalysis results"
edition = "2024"
homepage = "https://github.com/Mai0313/VibeCodingTracker"
license = "MIT"
name = "vibe_coding_tracker"
readme = "README.md"
repository = "https://github.com/Mai0313/VibeCodingTracker"
rust-version = "1.85"
version = "0.5.9"
[package.metadata.git-cliff.bump]
breaking_always_bump_major = false
custom_major_increment_regex = "major"
custom_minor_increment_regex = "minor|more"
features_always_bump_minor = false
initial_tag = "v0.0.0"
[package.metadata.git-cliff.changelog]
body = """
## What's Changed
{%- if version %} in {{ version | trim_start_matches(pat="v") }}{%- endif -%}
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }}
{% for commit in commits %}
{% if commit.remote.pr_title -%}
{%- set commit_message = commit.remote.pr_title -%}
{%- else -%}
{%- set commit_message = commit.message -%}
{%- endif -%}
- {% if commit.scope %}*({{ commit.scope }})* {% endif %}{% if commit.breaking %}[**breaking**] {% endif %}{{ commit_message | split(pat="
") | first | trim | upper_first }}{% if commit.remote.username %} by @{{ commit.remote.username }}{%- endif -%}
{% if commit.remote.pr_number %} in [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }}) {%- endif %}
{%- endfor %}
{% endfor %}
{%- if github -%}
{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
{% raw %}
{% endraw -%}
### New Contributors
{%- endif %}{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
* @{{ contributor.username }} made their first contribution
{%- if contributor.pr_number %} in [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) {%- endif %}
{%- endfor -%}
{%- endif -%}
{% if version %}
{% if previous.version %}
**Full Changelog**: {{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}
{% endif %}
{% else -%}
{% raw %}
{% endraw %}
{% endif %}
{%- macro remote_url() -%}
https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
{%- endmacro -%}
"""
postprocessors = []
render_always = true
trim = true
[package.metadata.git-cliff.git]
conventional_commits = true
filter_commits = false
filter_unconventional = true
link_parsers = []
protect_breaking_commits = false
recurse_submodules = false
require_conventional = false
sort_commits = "oldest"
split_commits = false
topo_order = false
topo_order_commits = true
use_branch_tags = false
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 0 -->๐ Features"
message = "^feat"
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 1 -->๐ Bug Fixes"
message = "^fix"
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 3 -->๐ Documentation"
message = "^doc"
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 4 -->โก Performance"
message = "^perf"
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 2 -->๐ Refactor"
message = "^refactor"
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 5 -->๐จ Styling"
message = "^style"
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 6 -->๐งช Testing"
message = "^test"
[[package.metadata.git-cliff.git.commit_parsers]]
message = '^chore\(release\): prepare for'
skip = true
[[package.metadata.git-cliff.git.commit_parsers]]
message = '^chore\(deps.*\)'
skip = true
[[package.metadata.git-cliff.git.commit_parsers]]
message = '^chore\(pr\)'
skip = true
[[package.metadata.git-cliff.git.commit_parsers]]
message = '^chore\(pull\)'
skip = true
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 7 -->โ๏ธ Miscellaneous Tasks"
message = "^chore|^ci"
[[package.metadata.git-cliff.git.commit_parsers]]
body = ".*security"
group = "<!-- 8 -->๐ก๏ธ Security"
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 9 -->โ๏ธ Revert"
message = "^revert"
[[package.metadata.git-cliff.git.commit_parsers]]
group = "<!-- 10 -->๐ผ Other"
message = ".*"
[[package.metadata.git-cliff.git.commit_preprocessors]]
pattern = '\((\w+\s)?#([0-9]+)\)'
replace = ""
[profile.dist]
codegen-units = 1
inherits = "release"
lto = "fat"
opt-level = 3
panic = "abort"
strip = "symbols"
[profile.release]
codegen-units = 1
lto = "thin"
opt-level = 3
overflow-checks = false
panic = "abort"
strip = "symbols"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "test_cache_global"
path = "tests/test_cache_global.rs"
[[test]]
name = "test_common_state"
path = "tests/test_common_state.rs"
[[test]]
name = "test_detector"
path = "tests/test_detector.rs"
[[test]]
name = "test_models_serialization"
path = "tests/test_models_serialization.rs"
[[test]]
name = "test_pricing_cache"
path = "tests/test_pricing_cache.rs"
[[test]]
name = "test_pricing_matching"
path = "tests/test_pricing_matching.rs"
[[test]]
name = "test_update_version"
path = "tests/test_update_version.rs"
[[test]]
name = "test_utils_directory"
path = "tests/test_utils_directory.rs"
[[test]]
name = "test_utils_file"
path = "tests/test_utils_file.rs"
[[test]]
name = "test_utils_git"
path = "tests/test_utils_git.rs"
[[test]]
name = "test_utils_paths"
path = "tests/test_utils_paths.rs"
[[test]]
name = "test_utils_time"
path = "tests/test_utils_time.rs"