82 Commits
Author SHA1 Message Date
inference-bot 29823e87d5 Matrix mxid lookup: paginate Cloudron users API (25/page) — was missing page 2+ 2026-10-02 13:03:14 -06:00
inference-bot f86ead8653 Matrix invite: honor 429 retry_after_ms (3 attempts) 2026-10-02 12:29:41 -06:00
inference-bot 07a1f2ad4e Fix Cloudron users API response shape ({users: [...]}) 2026-10-02 12:28:39 -06:00
inference-bot 82ada8c95b Matrix: invite all active members to co-op Space + General room on every sync (SSO usernames via Cloudron lookup; MATRIX_EXTRA_MXIDS for federated accounts) 2026-10-02 12:27:45 -06:00
inference-bot cddd9b6e3c Loomio username fix: allow hyphens in uids (was falling through to email local-part for inference-admin/bot) 2026-10-02 08:41:03 -06:00
inference-bot ef253d01a0 Loomio: fix auto-generated usernames after sync (b3 server API; prefer Cloudron uid, fall back to email local-part) 2026-10-02 08:36:10 -06:00
inference-bot 070c6525cd Broker usage: expose all_time_spend (member's lifetime total from SpendLogs) in both DB and HTTP paths 2026-10-01 16:07:10 -06:00
inference-bot 7af02f6466 Model aggregation: order by requests (usage) not spend — matches leaderboard bars and member-facing intent 2026-10-01 15:56:53 -06:00
inference-bot 19c04f37fa Fix days-filter in aggregate_model_usage: COALESCE(startTime,'') is invalid SQL (empty-string not a timestamp) — windowed queries always failed to empty 2026-10-01 15:54:58 -06:00
inference-bot 69beb9c002 Broker: co-op-wide model leaderboard endpoint for member dashboard (aggregate, anonymized) 2026-10-01 15:35:57 -06:00
inference-bot 778a7f8fd2 Rate-limit the key-injector proxy path (120/min) — only unthrottled sensitive route left 2026-10-01 09:51:57 -06:00
inference-bot 6f0c728513 Overview: expose all_time_spend per member + total_all_time_spend (SpendLogs aggregate) 2026-09-30 22:22:17 -06:00
inference-bot e00da486b5 Fix broker 403 for members beyond Cloudron's default 25-user page: paginate all /users reads (per_page=100) 2026-09-30 07:46:03 -06:00
inference-bot 64d3c6aa83 Broker: resolve uid- identities (OIDC sub) to email — email-invited users have no username 2026-09-29 21:53:46 -06:00
inference-bot b93b208659 Broker usage: expose allowance and credits buckets to dashboard 2026-09-27 22:39:54 -06:00
inference-bot b7d239d9b6 Reset dates follow real billing: webhook re-pins budget_reset_at on every Membership payment (+30d); DB write (API drops the field) 2026-09-27 22:38:05 -06:00
inference-bot 9b1d9edde4 Variable-amount credit pack: grant tip-free contribution amount via public OC order API 2026-09-27 22:17:48 -06:00
inference-bot 315247e5db Tier resolution via OC tiers API (TierId->face value+name, cached); credits at face value, not total-with-tip; remove debug payload log 2026-09-27 22:14:56 -06:00
inference-bot f163a5b375 Fix tier detection: OC webhook carries TierId only; parse tier name from order description 2026-09-27 22:04:35 -06:00
inference-bot a85369341c TEMP: log full OC webhook payload to diagnose tier field shape 2026-09-27 21:58:25 -06:00
inference-bot 8a320bfed7 Held credit packs: record non-member purchases, notify buyer, auto-grant on join, admin endpoints 2026-09-27 21:54:34 -06:00
inference-bot df740db283 Expose manual-member flag in admin overview (uses existing MANUAL_MEMBERS set) 2026-09-27 21:18:43 -06:00
inference-bot 5fa2449037 Membership tied to Membership tier: sweep+webhook filter, credit packs HELD for non-members, MANUAL_MEMBERS for legacy 2026-09-27 21:17:03 -06:00
inference-bot 63acea289f Non-expiring credits: two-bucket budget model, ledger, OC credit-pack webhook, admin endpoints 2026-09-27 19:10:50 -06:00
inference-bot 0c3c12999c Remove tracked bytecode; ignore __pycache__ 2026-09-27 11:15:02 -06:00
inference-bot 54fa4d3fc2 Filter audio models out of chat-facing /v1/models (visible to API users only) 2026-09-27 11:00:53 -06:00
inference-bot c7ed245939 Read usage aggregations from LiteLLM Postgres directly (HTTP fallback kept) 2026-09-26 16:39:23 -06:00
inference-bot 4600a69cac Fix dashboard 500s: raise httpx read timeout on /team/list + /spend/logs calls 2026-09-26 16:21:11 -06:00
inference-bot 2ff8193c55 Dashboard usage: prefer model_group alias (provider/model names) — fixes support #5 2026-09-26 16:14:33 -06:00
inference-bot 5c269bf243 Support ?days=N filter on /admin/model-usage 2026-09-26 16:09:38 -06:00
inference-bot a48f11c654 Prefer model_group alias in model-usage aggregation 2026-09-26 15:33:24 -06:00
inference-bot 810b878014 Add /admin/model-usage endpoint (co-op per-model spend/tokens/requests) 2026-09-26 15:31:07 -06:00
inference-bot e92e29bac0 Commit key-purge migration DML (backfill fingerprint, purge plaintext idempotently) 2026-09-24 08:02:39 -06:00
inference-bot c213a489e9 API keys revealed once: store fingerprint (last-4) + hash, purge plaintext 2026-09-24 08:00:02 -06:00
inference-bot 6564508e1d Remove per-member model allowlist: members access all gateway models (empty models = all allowed) 2026-09-23 20:10:23 -06:00
inference-bot fd7442e1a4 Idempotent provisioning + auto re-invite of never-activated members
- provision_member reuses the stored LiteLLM key instead of minting a duplicate
  alias (LiteLLM 400s on member:<email>); fixes re-provisioning of existing members
- store_member preserves an existing slug when none is passed
- add welcome_sent_at + REINVITE_AFTER_DAYS; nightly sweep re-invites
  active members who never completed account setup, throttled to 3 days
2026-09-22 16:07:00 -06:00
inference-bot 2625a6cc83 Add listmonk newsletter sync (subscribe on provision, unsubscribe on deactivate) 2026-09-16 15:44:56 -06:00
inference-bot ca3eeccc48 Add Reply-To: info@inference.coop on all outgoing email (sendmail pins From to portal.app@) 2026-09-15 09:11:44 -06:00
inference-bot 1312df4131 Add rate limiting (slowapi) to control-plane endpoints: admin, broker, webhook, /v1/models 2026-09-14 20:58:13 -06:00
inference-bot 505f3d9f48 Security cleanup: remove dead OPENCOLLECTIVE_SECRET + migrate-teams endpoint + unused helpers; default firstPayment=False 2026-09-14 18:39:28 -06:00
inference-bot 1a3c6027bd Migrate admin endpoints from token-in-URL to X-Admin-Token header 2026-09-14 18:05:58 -06:00
inference-bot fabd5a37ae Admin overview: add activated (inviteAccepted) field 2026-09-14 17:00:54 -06:00
inference-bot 8e4bf64199 Admin overview: include username (resolved from Cloudron user list) 2026-09-14 16:53:34 -06:00
inference-bot 9da67a9021 Add /admin/overview endpoint (member list + spend + co-op aggregates) 2026-09-14 16:39:54 -06:00
inference-bot 841eb70e4d Stream (don't buffer) the chat response so members see tokens immediately 2026-09-14 15:15:58 -06:00
inference-bot 87374dfeab Broker usage: add reset_at (credit renewal date) 2026-09-14 14:28:16 -06:00
inference-bot 0453cee019 Broker usage: add per-model token/spend breakdown + total_tokens + email 2026-09-14 14:18:59 -06:00
inference-bot 60d1bf2328 Fix injector ReadTimeout (600s read timeout); switch default model to deepseek-v4-1-flash 2026-09-14 14:11:15 -06:00
inference-bot 3024bfec74 Broker: resolve username->email via Cloudron user list (proxyAuth injects username, not email) 2026-09-14 12:59:42 -06:00
inference-bot a46c016817 Add /broker/usage (spend vs balance) + fix broker to use member balance 2026-09-14 10:46:47 -06:00