feat(stats): added frustration metrics to stats parser and charting

- Added new frustration and revised behavior metrics across stats types, parser mappings, and UI charts.
- Reworked session sync to fan out parsing across a capped worker pool with SyncOptions progress callbacks.
- Added worker-based parse messaging and throttled TTY progress rendering in the stats sync command.
- Updated behavior scoring to strip structured content, ignore noisy prompts, and fix profanity boundary regressions.
- Expanded user message schema and migrations, then repaired assistant model/provider links during sync backfill.
- Updated worker-import guidance in AGENTS.md and recorded sync-progress/metrics updates in package changelogs.
This commit is contained in:
can1357
2026-05-12 07:55:23 +02:00
parent a7209c2b4f
commit f56cbbf4c6
17 changed files with 988 additions and 211 deletions
@@ -503,6 +503,7 @@ function indirectEval(source: string, filename?: string): unknown {
const withPragma = filename ? `${source}\n//# sourceURL=${filename}` : source;
// Read `eval` via a property access so the call site is *indirect* (global scope),
// not direct (this function's lexical scope). The cast erases the lib.dom return type.
// biome-ignore lint/security/noGlobalEval: indirect eval is intentional for sandbox execution
const geval = globalThis.eval as (src: string) => unknown;
return geval(withPragma);
}