mirror of
https://github.com/openai/codex.git
synced 2026-05-14 16:22:51 +00:00
## Why Codex assisted-code attribution needs a client-side accepted-code source that does not upload raw code. This adds a hash-only analytics event derived from the turn diff so downstream attribution can compare accepted Codex lines against commit or PR diffs. ## What Changed - Parse accepted/effective added lines from the final turn diff and emit `codex_accepted_line_fingerprints` analytics. - Hash repo, path, and normalized line content before upload; raw code and raw diffs are not included in the event. - Chunk large fingerprint payloads and send accepted-line fingerprint events in isolated requests while preserving normal batching for other analytics events. - Canonicalize Git remote URLs before repo hashing so SSH/HTTPS GitHub remotes join to the same repo hash. - Add parser coverage for unified diff hunk lines that look like `+++` or `---` file headers. ## Verification - `cargo test -p codex-analytics` - `cargo test -p codex-git-utils canonicalize_git_remote_url` - `just fix -p codex-analytics` - `just bazel-lock-check` - `git diff --check`
41 lines
1.2 KiB
Rust
41 lines
1.2 KiB
Rust
mod apply;
|
|
mod baseline;
|
|
mod branch;
|
|
mod errors;
|
|
mod info;
|
|
mod operations;
|
|
mod platform;
|
|
|
|
pub use apply::ApplyGitRequest;
|
|
pub use apply::ApplyGitResult;
|
|
pub use apply::apply_git_patch;
|
|
pub use apply::extract_paths_from_patch;
|
|
pub use apply::parse_git_apply_output;
|
|
pub use apply::stage_paths;
|
|
pub use baseline::GitBaselineChange;
|
|
pub use baseline::GitBaselineChangeStatus;
|
|
pub use baseline::GitBaselineDiff;
|
|
pub use baseline::diff_since_latest_init;
|
|
pub use baseline::ensure_git_baseline_repository;
|
|
pub use baseline::reset_git_repository;
|
|
pub use branch::merge_base_with_head;
|
|
pub use codex_protocol::protocol::GitSha;
|
|
pub use errors::GitToolingError;
|
|
pub use info::CommitLogEntry;
|
|
pub use info::GitDiffToRemote;
|
|
pub use info::GitInfo;
|
|
pub use info::canonicalize_git_remote_url;
|
|
pub use info::collect_git_info;
|
|
pub use info::current_branch_name;
|
|
pub use info::default_branch_name;
|
|
pub use info::get_git_remote_urls;
|
|
pub use info::get_git_remote_urls_assume_git_repo;
|
|
pub use info::get_git_repo_root;
|
|
pub use info::get_has_changes;
|
|
pub use info::get_head_commit_hash;
|
|
pub use info::git_diff_to_remote;
|
|
pub use info::local_git_branches;
|
|
pub use info::recent_commits;
|
|
pub use info::resolve_root_git_project_for_trust;
|
|
pub use platform::create_symlink;
|