Commit Graph

107 Commits

Author SHA1 Message Date
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
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 fc4094d49f fix(frontend): remove debug_rate_limit_headers from ai-providers page 2026-05-20 23:04:36 -05:00
null ebba838025 feat(scripts): credentials usage 2026-05-20 23:03:19 -05:00
null 07b47ace8f fix(infra): bind-mount postgres to ./data/postgres, gitignore data/
- Switched from Docker named volume to bind mount ./data/postgres
- DB data persists on disk across rebuilds (no more re-inputting keys)
- Added data/ to .gitignore
- Updated docker-test.sh docs to reflect bind mount
- Included uncommitted ai-providers page changes
2026-05-20 22:57:31 -05:00
null 328d71b0f8 fix(scripts): preserve DB volume across rebuilds, stop nuking data 2026-05-20 22:53:55 -05:00
null 2060cf7d85 fix(scripts): harden docker-test.sh to be Pipeline-only, add safety docs 2026-05-20 22:44:30 -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