Observability, Recovery, and the Cost of Trust
CC Switch can show a great deal of information about providers and AI activity, but detail is not the same as certainty. This chapter examines what its proxy logs, session imports, pricing rules, backups, sync paths, and trust boundaries can actually establish. The goal is practical judgment: interpret the dashboard as layered evidence, recover from a bad state without turning an overwrite into a larger loss, and recognize when a convenient local or OAuth feature introduces risks that no status indicator can remove.
Two evidence streams, not one dashboard truth
CC Switch's usage view draws on two different sources. The first is the request log produced by the local proxy. It covers traffic that passes through takeover and can record the application, provider, model, status, token categories, timing, and cost fields. The second is the client session log. CC Switch can scan local histories from clients such as Claude, Codex, and Gemini without intercepting their requests, then import usage information from those files. These sources overlap in purpose, but they do not have the same coverage or failure modes.
A proxy log answers a narrow but valuable question: what did the local request path see? If a Claude request went through the proxy, the record can associate it with the provider chosen for that routed request and preserve timing and response status. It can also capture the model identity after routing has been resolved more accurately than a client-facing alias alone. But direct traffic does not pass through that path. If a client connects directly to an upstream, a missing proxy record is not evidence that no request occurred.
A session import answers a different question: what usage information did the client write into its local history? It can cover direct connections that the proxy never saw, which makes it useful when takeover is not enabled. It is dependent on the client producing a parseable session file and on CC Switch recognizing the file's format and incremental changes. A session file may be actively growing, contain an incomplete final record, be renamed after a resume, or be externally rewritten. The recent release history describes byte-cursor scanning and safeguards for these cases because reading only changed content improves efficiency while preserving the distinction between a complete record and an unfinished tail.
The session manager adds a third perspective without becoming a third accounting system. It can browse, search, and resume local conversations from several sources. Seeing a transcript is not the same as importing every token count from it, and importing a token event is not the same as proving that the entire conversation can be resumed in another project directory. CC Switch keeps these functions related because they concern the same local work, but a reader should not treat a searchable session list as a complete ledger.
Coverage is only the first interpretive question. The next is attribution. A routed client can send a role alias that the proxy maps to a real upstream model. The schema keeps request-model, outbound or pricing-model, and cost information separately because those identities can diverge. If an accounting system recorded only the alias visible to the client, it might look up the wrong price or attribute the usage to a model that never handled the request. Separating the fields does not guarantee that every upstream response is perfectly informative, but it gives the system a place to preserve the distinction.
Pricing is also an interpretation, not an invoice. CC Switch lets users configure model prices per million tokens and normalizes model IDs before matching them. Normalization can remove provider prefixes, variant suffixes, and other wrappers so related names find the intended pricing row. That is useful when a gateway exposes a decorated identifier, but it is also a judgment about which names represent the same billable model. A mapping that is correct for one provider can be wrong for another if the same model family has different prices or capabilities there.
The dashboard includes cache-read and cache-creation categories, input and output counts, success rates, latency, and estimated cost. These fields can make trends visible and help compare providers under the user's own configuration. They should not be presented as a claim that the provider's billing system will produce the same number.