SShortSingh.
Back to feed

Audit of 110 AI billing tools uncovers 45+ bugs, including 99% usage under-reporting

0
·11 views

A month-long audit of 110 open-source AI tools used for token counting, cost tracking, and budget enforcement uncovered more than 45 verified bugs across five recurring categories. The most critical finding, independently confirmed by an external auditor, revealed a cache-accounting flaw that under-reported actual usage by roughly 99% on affected code paths. Common issues included stale pricing tables, incorrect cache-read multipliers applied across providers, retry double-counting in stream aggregation, and quota window boundary errors. So far, 23 fixes have been merged into upstream projects, including widely used tools like Langfuse and Codeburn. A separate check of 20 commercial AI vendors found that none published any formal process for disputing or correcting metering errors.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Cloning an Aggregate Is Not Enough to Isolate Read-Only Domain Operations

A technical article on DEV Community highlights a subtle but critical bug in domain-driven design: cloning an aggregate does not guarantee that a simulation or preview operation remains side-effect-free. The issue arises when domain logic accepts multiple objects — such as a Trip aggregate and a DriverComplianceLedger — but only one of them is cloned before execution. In the illustrated example, running a route-preview operation against a cloned Trip still mutates the real DriverComplianceLedger, silently corrupting production state. The root cause is the assumption that cloning the primary aggregate isolates the entire operation, when in fact any secondary object passed to the same domain service remains unprotected. The article argues that true read-only simulation requires identifying and cloning every object the operation can mutate, not just the central aggregate.

0
ProgrammingDEV Community ·

How to Run Local LLMs on Apple Silicon: Tools, Formats and Key Tradeoffs

Running large language models locally on Apple Silicon involves choosing between several tools and model formats, each with distinct trade-offs. The main options are llama.cpp, Apple's MLX framework, Ollama, and LM Studio, which differ in speed, compatibility, and ease of use. Since Ollama 0.19 in March 2026, Macs with 32GB or more of unified memory now use Apple's MLX framework as the inference backend, delivering notable speed gains over the older llama.cpp path. Model format choice also matters: GGUF offers broader compatibility and a larger library of conversions, while MLX-format models tend to run faster on Apple Silicon when a conversion is available. Users should reserve roughly 20–25% of unified memory for the operating system before allocating the remainder to model weights and cache, since macOS and models share the same memory pool.

0
ProgrammingDEV Community ·

JavaScript Scope, Closures, and Higher-Order Functions Explained with Examples

A tutorial published on DEV Community breaks down three core JavaScript concepts: scope, closures, and higher-order functions. Scope determines where a variable is accessible in code, with JavaScript supporting global, module, function, and block-level scopes. The article explains lexical scoping, meaning variable accessibility is determined by where code is written rather than where a function is called. It then introduces closures, demonstrating how an inner function can still access variables from its outer function even after that outer function has finished executing. These concepts build on one another and form the foundation for writing more advanced, flexible JavaScript code.

0
ProgrammingDEV Community ·

LLM Quantization Demystified: How to Choose the Right GGUF Format for Your Mac

LLM quantization converts a model's original 16-bit or 32-bit floating-point weights into lower-precision representations, reducing memory usage and improving inference speed. The process groups weights into blocks that share scale factors, allowing reduced-precision values to approximate their original range. GGUF filenames such as Q4_K_M encode both the average bits per weight and the quantization scheme used, meaning two models labeled '4-bit' are not necessarily equivalent. Newer k-quant schemes (e.g., Q4_K_M, Q5_K_M) outperform older uniform methods like Q4_0 by allocating more precision to weights that most influence output quality. Q4_K_M is widely regarded as the practical default, with Q5_K_M or Q6_K recommended for precision-sensitive tasks and Q3_K reserved only for severely memory-constrained situations.