Commit Graph

118 Commits

Author SHA1 Message Date
null f0f53bcc73 feat(dashboard): refactor navigation items to use NavItem component and enhance styling 2026-05-22 16:45:09 -05:00
null 2d91325937 feat(forgejo-metrics): refactor line stats fetching to use commit stats endpoint and update caching logic 2026-05-22 16:40:09 -05:00
null 7802400970 feat(forgejo-metrics): add last-push endpoint and related caching logic for recent commits 2026-05-22 16:25:47 -05:00
null dd9681925e feat(forgejo-metrics): adjust line stats caching strategy and improve retry logic for contributor stats 2026-05-22 16:19:15 -05:00
null c04ab6ac8b feat(dashboard): enhance metric cards with new tone classes and improve styling 2026-05-22 16:17:39 -05:00
null bbfde53fe9 feat(forgejo-metrics): enhance heatmap metrics to include line contributions and adjust time frame to last 6 months 2026-05-22 16:04:32 -05:00
null 99965330b5 feat(provider-credentials): add endpoint to rescan local credentials and update tokens
feat(usage): enhance reset time formatting and display full reset date in UI
2026-05-22 15:19:04 -05:00
null 25abfd3e15 feat(claude-code): integrate Claude Code API with session tracking, config scanning, and CLI detection 2026-05-22 04:23:27 -05:00
null 5389a5cf9b feat(gateway): add URL normalization for websocket schemes in gateway configuration 2026-05-22 04:12:38 -05:00
null a58bbe9f99 feat(boards): add auto_close_issue_on_task_done flag and implement issue closure on task completion 2026-05-22 04:06:57 -05:00
null ff545bff34 feat(assign-issue): implement linked boards fetching for repository in AssignIssueAgentDialog 2026-05-22 03:57:13 -05:00
null ce8c58e953 feat(docker): add DOCKER_UID and DOCKER_GID to .env and update compose.yml for user permissions 2026-05-22 03:48:28 -05:00
null 434f26d000 feat(credentials): add AI provider credential seeder and update documentation 2026-05-22 03:36:57 -05:00
null 16ad1b914a fix(scripts): provisioning import 2026-05-22 02:10:14 -05:00
null d17aadec7d fix(scripts): provisioning instructions 2026-05-22 01:55:35 -05:00
null d7b3c08d06 feat(ui): assign agent 2026-05-22 01:48:06 -05:00
null 5f8078399c fix(scripts): issues 2026-05-22 01:44:39 -05:00
null 585fc52cd2 fix(scripts): provision edit approval 2026-05-22 01:31:48 -05:00
null d1c0a988d3 fix(scripts: imports all / stay in provisioning 2026-05-22 01:19:14 -05:00
null fe7ce20956 fix(script): provision 2026-05-22 00:59:47 -05:00
null 36025c6c67 fix(ui): roles 2026-05-22 00:55:56 -05:00
null 7678efedc8 fix(ui): clow window button spacing 2026-05-22 00:41:19 -05:00
null 74756feb95 feat(scripts): tasking agents 2026-05-22 00:12:15 -05:00
null a985af3f4a feat(ui): comment insert / close 2026-05-21 23:45:59 -05:00
null 9300f4b670 fix(ui): edit git 2026-05-21 23:30:19 -05:00
null e1363e6140 fix(scripts): backend and git 2026-05-21 23:07:45 -05:00
null c7db20d1e8 feat(ui): issues card 2026-05-21 23:01:31 -05:00
null 5cc0d75636 feat(scripts): pull more backened 2026-05-21 22:53:02 -05:00
null e56f252da6 feat(scripts): issues info 2026-05-21 22:47:24 -05:00
null f59208c3ac fix(ui): git 2026-05-21 22:33:41 -05:00
null f0eb706d82 fix(ui): top navbar 2026-05-21 21:02:03 -05:00
null 834fa4fdb0 feat(ui): top navbar ai info 2026-05-21 20:30:01 -05:00
null f48cf45cce feat(ui): edit ai providers 2026-05-21 20:11:46 -05:00
null ac29c79ff2 fix: ai local auth 2026-05-21 19:50:19 -05:00
null 66bbdd7398 fix: claude local 2026-05-21 19:42:46 -05:00
null 4ca3ede009 fix: ai reauth 2026-05-21 04:25:31 -05:00
null ff5aa5f4f1 fix 2026-05-21 04:16:19 -05:00
null a6c24673bc fix(scripts): ai 2026-05-21 03:29:35 -05:00
null 1a0eaeee68 fix(scripts): ai calc 2026-05-21 02:25:50 -05:00
null dc5af312a6 fix: regenerate TypeScript types for Phase 4 typed limits
- Add total_output_tokens, output_token_limit/pct/source, total_token_limit/pct/source, message_limit/pct/source to RuntimeUsageCurrent
- Add output_tokens_per_minute to RuntimeUsageBurnRate
- Add limit_kind to RuntimeUsagePredictions
2026-05-21 02:07:25 -05:00
null cd688ced26 feat(usage): per-account limit rows and aggregate labeling (#41)
- Add PerGatewayUsage interface and buildPerGatewayUsage() function
- Each gateway's most constrained limit shown independently, sorted by exhaustion
- Per-account rows render BEFORE aggregate summary
- Aggregate cards labeled 'Combined' when multiple gateways exist
- 'Soonest reset' and 'Combined limit' labels replace misleading single-gateway labels
- Filter out gateways with no configured limit to reduce noise
2026-05-21 01:57:13 -05:00
null 5c3c09edba feat(usage): prefer explicit cost over estimates + test coverage (#40 #39)
- Add _get_explicit_cost() with priority chain: usage.cost.total > usage.cost flat > cost/cost_usd
- aggregate_per_model() and _top_sessions() now use _get_explicit_cost()
- Fix message limit prediction to use elapsed time instead of total window
- Add 224 lines of test coverage for typed limits, explicit cost priority,
  pricing override shapes, and prediction logic
2026-05-21 01:50:21 -05:00
null 5217a70c9f feat(usage): separate limit types — typed limits for output tokens, total tokens, messages (#39)
- Add typed limit fields to RuntimeUsageCurrent: output_token_limit,
  total_token_limit, message_limit with matching pct and source
- Add total_output_tokens and output_tokens_per_minute to burn rate
- _build_current() now computes each pct from matching units only
- Legacy token_limit backfilled from typed limits for backwards compat
- Frontend aggregateRuntimeUsage() tracks typed limits separately
- limit_kind field on predictions indicates which limit drove time-to-limit
2026-05-21 01:43:28 -05:00
null 02eb03d408 feat(usage): fix local window estimation + provider-native windows + pricing updates (#37 #38 #40)
Phase 3 (#38): Fix reset_in_ms=0 bug
- Add _oldest_active_ts() to find oldest session timestamp in 5h window
- _build_window() now anchors fallback to oldest_event_ts + 5h instead of now - 5h
- Add _parse_rate_limit_reset_value() and _extract_rate_limit_reset_at() for proper rate-limit reset parsing
- Source/confidence labeling now based on reset provenance

Phase 2 (#37): Provider-native usage windows
- ParsedClaudeUsageWindow dataclass with section-aware parsing
- Frontend ProviderNativeUsageWindow interface and provider-native usage section
- sessions.list call now has 8s timeout to avoid gateway blocking

Phase 5 (#40): Pricing fixes
- Opus cache_write corrected .75 → .75
- Added GPT-4.1/mini/nano, GPT-4.5 pricing
- Pricing override loader supports both shapes (rates_usd_per_million wrapper and direct dict)
2026-05-21 01:32:59 -05:00
null 8d11f4f840 feat(usage): add source/confidence fields and relabel API rate limits (Phase 1, #36)
- Add source and confidence fields to RuntimeUsageWindow, ModelUsageEntry,
  TopSession, RuntimeUsageCurrent, and ProviderUsageScrapeResult schemas
- _build_window() assigns source based on data origin:
  provider_native > provider_api_rate_limit > local_jsonl_estimate
- _build_current() tags token_limit_source and cost_limit_source
- Frontend relabels 'Current session'/'All models' to 'API rate limit'
- Shows source label and confidence in usage strip
- Changes 'did not return active usage windows' to 'did not return
  API rate-limit windows for percent + reset diagnostics'
2026-05-21 01:01:05 -05:00
null 184d86c58a fix(ui): import agent button 2026-05-21 00:19:42 -05:00
null c440f98381 fix(scripts): agents discover 2026-05-21 00:13:31 -05:00
null fa5a18bccd fix(scripts): codex/ollama fallback 2026-05-20 23:49:56 -05:00
null 9650283367 fix(ui): api usage 2026-05-20 23:46:45 -05:00
null aa62d285cd fix(db): add missing board columns (description, approval rules)
ORM model had fields that didn't exist in the DB, causing UndefinedColumn
errors when querying boards.
2026-05-20 23:28:41 -05:00