Commit Graph

88 Commits

Author SHA1 Message Date
null 66c7f9f5cd feat: implement in-flight deduplication and short TTL for subscription window failures in provider usage fetching 2026-05-24 17:37:08 -05:00
null f0bd9b4950 feat: implement retry logic for rate-limited requests to the Anthropic subscription endpoint 2026-05-24 17:23:41 -05:00
null 79ab63b206 feat: enhance subscription window handling to avoid stale cache on transient failures 2026-05-24 17:16:53 -05:00
null a8e560a586 feat(billing): add billing source classification for sessions and update cost handling 2026-05-24 16:37:52 -05:00
null 28e103452b feat: add Claude Code session detail page with message thread and timeline navigation
- Implemented the ClaudeSessionDetailPage component to display session details, including messages and timeline navigation.
- Created SessionHeroHeader for displaying session metadata and status.
- Added SessionMessageThread to render individual messages and their details.
- Introduced SessionTimelineNav for quick navigation through messages.
- Developed ToolCallBlock to show tool usage details within messages.
- Integrated API functions for fetching session and message data.
2026-05-24 16:31:18 -05:00
null 1bf4e30e8c feat(session-messages): implement endpoint to retrieve conversation messages for a session 2026-05-24 16:19:24 -05:00
null 11d950a13a refactor(issue-sync): streamline issue closing logic and enhance error handling 2026-05-22 22:20:28 -05:00
null 07a7ddfb24 fix(migrations): update down_revision to correct previous migration reference 2026-05-22 20:41:23 -05:00
null b16e9bb3c8 feat(users): add Forgejo profile synchronization and related fields 2026-05-22 20:29:13 -05:00
null 502c44d560 feat(metrics): update heatmap metrics to reflect data for the last year 2026-05-22 17:54:42 -05:00
null fded1d16da feat(dashboard): simplify sidebar navigation by removing redundant header 2026-05-22 17:13:14 -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 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 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 74756feb95 feat(scripts): tasking agents 2026-05-22 00:12:15 -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 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 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 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 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 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
null 2443e0750c fix(db): add gateway_id foreign key to agents table
Agents reference gateways but the migration was missing, causing
ensure_main_agent() to fail on INSERT with UndefinedColumn error.
2026-05-20 23:24:55 -05:00
null 03bc31a558 fix(db): make main_session_key nullable on gateways
The column was NOT NULL but the ORM create path doesn't populate it
until ensure_main_agent() runs after INSERT. Make it nullable so the
initial create succeeds.
2026-05-20 23:22:54 -05:00