Skip to content

desktop/src-tauri/crates/core/src/adapters/zed/common.rs

Comment 1, line 1

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:1

//! Zed-specific helpers; independent layout: architecture.md#adapter-layout.

Comment 2, line 2

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:2

//! Verified 1.22.0 / 76659a55 OpenAI-compatible mapping stores input after removing cache reads.

Comment 3, line 3

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:3

//! For llm-usage-zhipu, positive buckets are reported; default zero/absence is unknown, no total derived.

Comment 4, line 4

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:4

//! The bd74733 references and omitted-zero rules below describe only the historical hosted mapper.

Comment 5, line 5

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:5

//! - map_zed/ZedUsage field references: official Zed bd74733, A38.

Comment 6, line 6

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:6

//! - Read-only threads.db helpers copied from adapters/hermes/common.rs, matching kilo:

Comment 7, line 7

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:7

//! read-only connections/Online Backup snapshots in independent Agent modules.

Comment 8, line 8

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:8

//!

Comment 9, line 9

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:9

//! Fixed source: zed-industries/zed bd747337d7be138834e20972b9e203c7b239cc47.

Comment 10, line 10

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:10

//! - crates/agent/src/db.rs:451-483: threads id/summary/updated_at/data_type/data plus

Comment 11, line 11

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:11

//! migrated parent_id/folder_paths/folder_paths_order/created_at.

Comment 12, line 12

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:12

//! data_type is json or zstd (db.rs:363-385); the referenced writer uses zstd (db.rs:536).

Comment 13, line 13

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:13

//! - crates/language_model_core/src/language_model_core.rs:525-535 defines

Comment 14, line 14

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:14

//! four flat u64 TokenUsage fields: input_tokens/output_tokens/cache_creation_input_tokens/

Comment 15, line 15

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:15

//! cache_read_input_tokens. Zero fields are omitted by skip_serializing_if,

Comment 16, line 16

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:16

//! so the historical mapper treats absence as reported zero under that serialization rule.

Comment 17, line 17

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:17

//! - Input/cache inclusion is not declared in that source; do not infer exclusive/subset buckets.

Comment 18, line 18

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:18

//! The historical mapper reports them separately without deriving totals.

Comment 19, line 19

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:19

//! - That hosted path accepts provider=="zed.dev" (A38). Within a turn, request_token_usage

Comment 20, line 20

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:20

//! overwrites earlier requests (thread.rs:2893 reset), so summing it misses usage.

Comment 21, line 21

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:21

//! Use cumulative_token_usage for thread totals; request buckets reconcile only.

Comment 22, line 26

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:26

/// Historical hosted TokenUsage in threads.data; omitted fields decode as zero.

Comment 23, line 36

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:36

/// Checked four-bucket sum; each may reach MAX_TOKEN_VALUE.

Comment 24, line 37

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:37

/// Overflow returns None so the caller can reject the thread rather than saturate.

Comment 25, line 46

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:46

/// Historical hosted input/cache inclusion is unverified: uncached/derived totals remain None.

Comment 26, line 47

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:47

/// Report all four buckets separately; the current Hermes mapper has independent verified rules.

Comment 27, line 72

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:72

/// Zed 1.22.0 OpenAI chat mapping subtracts cache reads from prompt_tokens.

Comment 28, line 73

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:73

/// Serialized default zeros lack a provider validity marker.

Comment 29, line 100

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:100

// Independent read-only database helpers copied from adapters/hermes/common.rs.

Comment 30, line 108

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:108

/// Read-only source access; busy-like probe failures switch to a staging snapshot.

Comment 31, line 132

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:132

/// SQLite busy/locked/CANTOPEN errors prevent a successful consistency probe.

Comment 32, line 142

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:142

/// Staging page/time/size limits and cleanup follow architecture.md.

Comment 33, line 160

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:160

/// Open read-only; short busy_timeout bounds probe waits before a staging fallback.

Comment 34, line 173

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:173

/// Online Backup creates a consistent system-temp snapshot without writing the source.

Comment 35, line 204

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:204

// More means pages were copied; count those pages toward the size limit.

Comment 36, line 215

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:215

// Busy/Locked or other non-exhaustive results retry without progress, within the timeout.

Comment 37, line 216

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:216

// 2026-09-30 fix: retries previously added pages and raced the timeout, causing

Comment 38, line 217

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:217

// platform-specific false size-limit failures (Linux CI hit the page cap before timeout).

Comment 39, line 236

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:236

/// Read threads.db directly; busy-like probe failures try staging, other errors propagate.

Comment 40, line 237

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:237

/// Never write the source database.

Comment 41, line 264

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:264

/// Short sqlite_master count probe, following kilo; it creates no explicit transaction.

Comment 42, line 269

desktop/src-tauri/crates/core/src/adapters/zed/common.rs:269

/// Required threads columns from fixed creation/migrations; detection separately handles absent created_at.