Skip to content

feat: BYOK and backend cost tracking#158

Open
wjiayis wants to merge 81 commits intomainfrom
staging
Open

feat: BYOK and backend cost tracking#158
wjiayis wants to merge 81 commits intomainfrom
staging

Conversation

@wjiayis
Copy link
Copy Markdown
Member

@wjiayis wjiayis commented Apr 18, 2026

No description provided.

Junyi-99 and others added 30 commits January 27, 2026 02:58
#33 

In short, it'll

1. [Frontend] Recognize that user is trying to add a citation (trigger
text is `\cite{`)
2. [Frontend] Temporarily suppress default Overleaf dropdown suggestions
3. [Frontend] Get the last sentence as context for LLM
4. [Backend] Fetch bibliography in `.bib` files as raw text, and remove
irrelevant fields to save tokens
5. [Backend] Call XtraMCP to get paper abstract, using paper title as
key
6. [Backend] Query a fast LLM (hardcoded to `gpt-5.2` for now) to get at
most 3 citation keys
7. [Frontend] Suppress default Overleaf tab-completion to allow users to
accept citation suggestions
kah-seng and others added 26 commits March 27, 2026 00:05
Co-authored-by: andre <95348273+4ndrelim@users.noreply.github.com>
Co-authored-by: Junyi Hou <junyi@xtras3.tail08d22c.ts.net>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Junyi Hou <junyi@xtras3.tail08d22c.ts.net>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Junyi Hou <junyi@xtras3.tail08d22c.ts.net>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>##
Co-authored-by: andre <95348273+4ndrelim@users.noreply.github.com>
Co-authored-by: Junyi Hou <junyi@xtras3.tail08d22c.ts.net>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Junyi Hou <junyi@xtras3.tail08d22c.ts.net>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix as #143/#144 (development) and #140 (main).
Co-authored-by: Junyi Hou <junyi@xtras3.tail08d22c.ts.net>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
### Key changes:
- Select models by ID instead of slug so users can have multiple API
keys for the same slug
- Add loading spinner for save/edit actions
Store usage information in database to track user behavior (if user is
not BYOK) as a precursor to billing users, e.g.,

Hourly:
```
  {
    _id: ObjectId('69cd2e9a926e4b5665909027'),
    user_id: ObjectId('6975da46d6096ac1b07342c2'),
    hour_bucket: ISODate('2026-04-01T14:00:00.000Z'),
    project_id: '69746440592738ba2708cc34',
    success_cost: 0.014026150000000001,
    failed_cost: 0.024026150312000001,
    updated_at: ISODate('2026-04-01T14:41:37.465Z')
  }
```

Weekly:
```
  {
    _id: ObjectId('69cd2e9a926e4b5665909028'),
    week_bucket: ISODate('2026-03-30T00:00:00.000Z'),
    project_id: '69746440592738ba2708cc34',
    user_id: ObjectId('6975da46d6096ac1b07342c2'),
    success_cost: 0.014026150000000001,
    failed_cost: 0.024026150312000001,
    updated_at: ISODate('2026-04-01T14:41:37.465Z')
  }
```

Lifetime:
```
  {
    _id: ObjectId('69cd2e9a926e4b5665909029'),
    user_id: ObjectId('6975da46d6096ac1b07342c2'),
    project_id: '69746440592738ba2708cc34',
    success_cost: 0.014026150000000001,
    failed_cost: 0.024026150312000001,
    updated_at: ISODate('2026-04-01T14:41:37.465Z')
  }
```
@wjiayis wjiayis requested review from 4ndrelim and Junyi-99 and removed request for Junyi-99 April 18, 2026 06:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants