Commit Graph

81 Commits

Author SHA1 Message Date
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
null ebba838025 feat(scripts): credentials usage 2026-05-20 23:03:19 -05:00
null d9bdc4cb3d fix(db): add migration for skills marketplace tables 2026-05-20 22:42:43 -05:00
null 133b0ffb4c fix(db): fix logger calls in schema drift check (standard logging API) 2026-05-20 22:41:15 -05:00
null f1645a1715 fix(db): make agent_id migration idempotent for fresh installs 2026-05-20 22:40:15 -05:00
null 7cc9e86de1 fix(db): linearize Alembic migration chain to resolve branch conflicts 2026-05-20 22:37:36 -05:00
null 4c5264d2ed feat(admin): gateway restart, config edit, logs, provider credentials (batch 6, #35) 2026-05-20 22:03:57 -05:00
null 4e40323e71 feat(gateway-ops): memory, cron, and health panels (batch 5, #34) 2026-05-20 21:32:46 -05:00