Commit Graph

42 Commits

Author SHA1 Message Date
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 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 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 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
null 16b23eef2e feat(runtime-activity): live feed and activity correlation (batch 4, #33) 2026-05-20 21:08:20 -05:00
null 1a847133ce feat(runtime-usage): add provider usage scrapers as optional local adapters (batch 3, #32) 2026-05-20 20:55:05 -05:00
null 9edaa5eb41 feat(runtime-usage): add read-only usage core service, schemas, and API endpoint (batch 1, #30) 2026-05-20 20:15:02 -05:00
null e083e4e10c fix(heatmap&import_agent): corrections 2026-05-20 04:13:32 -05:00
null fbc79e6777 feat: Human And Agent Close Issue APIs 2026-05-20 03:49:57 -05:00
null 5d7403984d bug: (timestamp) git 2026-05-20 01:44:31 -05:00
null 0d5d6573ed bug : git error 2026-05-20 01:22:16 -05:00
null 87802db0f4 feat: new git imports (desc, open, is_archived) 2026-05-19 21:49:45 -05:00
null 017ab4951a feat: git label import 2026-05-19 21:34:11 -05:00
null d6d094a67d Feat: Settings git 2026-05-19 21:18:18 -05:00
null d56ccb31da feat(forgejo): batch 3 — board-repo links, agent issue APIs, close service, sync/validate UI, issues page (batch 3.0.0) 2026-05-19 03:32:54 -05:00
null 4c540b1c9a feat(forgejo): add validation, cached issues, sync service, and human issue APIs (Issues 5-8); add connection and repository admin UI (Issues 3-4); fix migration graph and client bugs
Backend Issues 5-8:
- POST /forgejo/connections/{id}/validate and /repositories/{id}/validate
- ForgejoIssue model with unique constraint (repo_id, issue_number)
- IssueSyncService with pagination and upsert
- GET /forgejo/issues with filtering, search, pagination
- GET /forgejo/issues/{id} with org-scoped access
- Fixed ForgejoAPIClient /api/v1 path prefix
- Fixed get_forgejo_client async context (was async def, now regular def)
- Fixed Forgejo API response parsing (list, not dict with items)
- Fixed None-safe handling for labels/assignees

Frontend Issues 3-4:
- Connections list, new, edit pages with token masking
- Repositories list, new, edit pages with connection selector
- ForgejoConnectionForm, ForgejoConnectionsTable components
- ForgejoRepositoryForm, ForgejoRepositoriesTable components
- api-forgejo.ts client library

Migration cleanup:
- Consolidated forgejo_issues table into f5a2b3c4d5e6 migration
- Removed orphan branch migrations for already-existing tables
- Fixed migration graph to single head (f5a2b3c4d5e6)
- Stamped DB to correct revision
2026-05-19 03:10:32 -05:00
null 83241a304f feat(forgejo): add DB models, CRUD APIs, client service, and Git Projects nav (Issues 1-4, FI2)
Backend:
- ForgejoConnection + ForgejoRepository SQLModel models with migration
- Admin CRUD API for connections (GET/POST/PATCH/DELETE)
- Admin CRUD API for repositories (GET/POST/PATCH/DELETE)
- Token redaction, URL normalization, duplicate prevention
- ForgejoAPIClient service (httpx async, list_issues, close_issue, get_repository)
- Removed stale feast import that crashed startup

Frontend:
- Git Projects sidebar nav item (FolderGit icon)
- /git-projects shell page with empty/loading/error states

Verified: all endpoints live, CRUD tested, migration applied.
2026-05-19 02:46:27 -05:00
null 8c0a196f69 feat: initialize Pipeline from Mission Control base (v0.0.4) 2026-05-19 01:17:58 -05:00