Commit Graph
15 Commits
Author SHA1 Message Date
can1357 770f175795 feat(stats): added user-message behavior metrics parsing and storage
- Added user-message behavior metric extraction and parsing for yelling/profanity/drama counts.
- Added behavior persistence and aggregate reads by extending syncSessionFile, DB schema, and query APIs.
- Added behavior dashboard support with new shared types, /api/stats/behavior route, and client views.
- Changed cost summary/chart rendering by removing per-chart 14/30/90-day filters and trend card behavior.
- Added tests for computeUserMessageMetrics edge cases like empty text, case, thresholds, and punctuation.
- Moved tailwindcss from devDependencies to dependencies for shared client styling usage.
2026-05-11 03:41:02 +02:00
can1357 c462fdf034 feat(stats): added stats range params, selectors, and all-range cutoff
- Added optional time-range parameters to stats API endpoints and client requests.
- Added dashboard time-range selector controls and wired range updates to stats refresh.
- Implemented range normalization and cutoff calculation for dashboard stat aggregation.
- Updated DB queries to support optional cutoffs and unlimited mode for `range=all`.
- Added tests for 24h, 7d, all, and unknown-range fallback filtering behavior.
2026-05-11 02:30:22 +02:00
can1357 9dbf13513a refactor(stats): restructured embedded client archive
- Migrated embedded client archive from base64 constant to lazy-loaded text file for reduced bundle size.
- Refactored extractEmbeddedClientArchive() to accept archiveBytes parameter, decoupling archive loading from extraction logic.
- Optimized getLatestMtime() to use parallel Promise.allSettled() instead of sequential awaits for improved performance.
- Replaced Buffer.from().toString('base64') with btoa() for base64 encoding in clipboard module.
2026-02-22 01:02:25 +01:00
can1357 02eb7072e6 fix(stats): avoided bundling lightningcss in compiled builds 2026-02-16 19:54:24 +01:00
can1357 bc8f4c4c91 chore(stats): updated Tailwind CSS to use @tailwindcss/node package with simplified config
- Updated Tailwind CSS import from 'tailwindcss' to '@tailwindcss/node' package.
- Added '@tailwindcss/node' version 4 as a dependency in package.json.
- Simplified Tailwind compiler configuration by replacing custom loadStylesheet handler with onDependency callback.
2026-02-16 18:33:05 +01:00
can1357 79cfe855c9 feat: enhanced glob patterns, symlink handling, and Tailwind CSS compilation
- Added `recursive` option to GlobOptions to control whether simple glob patterns match recursively by default (true).
- Changed glob pattern behavior to always apply recursive matching for simple patterns instead of requiring explicit `**/` prefix.
- Improved symlink handling in glob file type filters to resolve symlink targets and match based on their actual type (file/dir).
- Enhanced skill discovery in coding-agent to use dual-pass glob approach with deduplication and improved extension module detection.
- Implemented dynamic Tailwind CSS compilation in stats package by extracting actual class names from source files instead of building with empty candidates.
- Refactored Tailwind stylesheet imports to use centralized `tailwindcss/index.css` import with custom stylesheet loader callback.
2026-02-15 14:15:04 +01:00
can1357 fec2c04311 chore(monorepo): refreshed deps, migrated stats to tailwind v4, and improved discovery
- Updated dependency versions across root, ai, coding-agent, stats, and tui packages.
- Pinned @sinclair/typebox to 0.34.48.
- Migrated stats Tailwind build from PostCSS plugin usage to Tailwind v4 compile() API and emitted a standalone styles.css.
- Switched discovery helpers to native glob scanning for faster gitignore-aware file/module discovery.
- Added startup timing markers around model selection and skill discovery in sdk initialization.
2026-02-15 13:56:40 +01:00
can1357 c060e8fa7c refactor(stats/client): replaced colors
- Improved provider display logic to conditionally show provider suffix only when multiple providers exist for the same model.
2026-02-15 07:29:13 +01:00
can1357 35aa15ae94 fix(stats): generated tar bundle for compiled dashboard assets
Generate a tar.gz bundle from stats dist/client during binary builds, embed it into the compiled binary, and extract/serve it at runtime in compiled mode instead of reading //root/client directly.

Updated CI and build:binary flow to generate/reset the embedded bundle around compilation.

Fixes #61
2026-02-15 07:23:40 +01:00
can1357 c305872ddc feat(coding-agent): added real-time OAuth provider authentication validation with status indicators
- Added real-time OAuth provider authentication validation with visual status indicators (checking, valid, invalid).
- Added `validateAuth` and `requestRender` options to OAuthSelectorComponent for custom authentication validation and UI refresh callbacks.
- Changed OAuth provider selector to display live authentication status instead of static login state.
- Updated logout flow to refresh OAuth provider authentication state before showing selector.
2026-02-13 18:33:21 +01:00
can1357 edf603d1d8 feat(stats): added model time series metrics and enhanced dashboard with performance analytics
- Added model-specific time series and performance metrics to dashboard statistics API.
- Added new ModelTimeSeriesPoint and ModelPerformancePoint types for tracking model usage and performance over time.
- Implemented getModelTimeSeries and getModelPerformanceSeries database queries to retrieve daily model metrics.
- Enhanced dashboard UI with expandable model statistics table showing inline sparklines and detailed performance charts.
- Added Model Preference stacked area chart visualizing request share distribution across models over 14 days.
- Implemented incremental build logic in server to only rebuild client when source files are modified.
2026-02-04 03:51:21 +01:00
can1357 779ca4872b style(deps): migrated from Prettier to Biome and updated formatting rules
- Removed Prettier configuration files (.prettierignore and .prettierrc) and migrated formatting to Biome.
- Updated Biome configuration from version 2.3.11 to 2.3.12 and changed arrowParentheses rule from 'always' to 'asNeeded'.
- Pinned @biomejs/biome dependency to exact version 2.3.12 in package.json and bun.lock.
- Applied consistent arrow function formatting across 489 files by removing unnecessary parentheses around single parameters.
- Removed blank lines after comment blocks and reorganized imports for consistency across the codebase.
2026-01-24 04:20:19 +01:00
can1357 e22d123009 refactor(fs): migrated remaining sync file operations to async
- Converted readdirSync, readFileSync, and statSync to async readdir, readFile, stat across skills and agent discovery.
- Made scanDirectoryForSkills async and refactored custom directory scanning to use Promise.all for concurrent processing.
- Updated agent discovery to use fs/promises for async file reading and refactored helper patterns.
- Added AgentParsingError exception class for better error handling during agent parsing.
- Added filesystem error type guards (isEnoent, isEacces, isPerm, etc.) to pi-utils for safe error checking.
- Added color manipulation utilities to pi-utils for accessibility features.
- Added color-blind mode setting to settings manager.
- Migrated plugins, settings, and config modules from sync to async file operations.
- Updated error handling to use new pi-utils type guards for type-safe checking.
2026-01-24 03:18:03 +01:00
can1357 f66e5dba9b build(config): refactored build and TypeScript configuration with Bun loaders
- Removed WASM generation script; use Bun `wasm?raw` loader for imports.
- Added bunfig.toml with loaders for `.md`, `.py`, and `.wasm?raw` text imports.
- Added types/assets/index.d.ts for global TypeScript module declarations.
- Unified TypeScript configuration with tsgo-based checking across monorepo.
- Removed build and WASM steps from install and publish pipelines.
2026-01-24 00:03:52 +01:00
can1357 fcbfab765b refactor: consolidated module import paths
- Removed custom TypeScript path aliases and the associated transformation script.
- Replaced aliased imports with direct `@oh-my-pi` package imports for improved clarity.
- Simplified internal module references by removing explicit `/index` suffixes.
2026-01-23 21:01:13 +01:00