fix: quota auto_tag consommé 1x par application réelle, pas à chaque frappe
- Route /api/ai/tags: supprime l'incrément sur les suggestions (UI only) → chaque keystroke (debounce 1.5s) ne consommait plus de quota - notes.ts: incrément unique quand des labels IA sont réellement appliqués en background (syncNoteLabels) - PRO limit: 200 → 500 auto_tag/mois (200 était trop bas) Avant: écrire une note 5min = ~20 incréments pour UNE note Après: 1 incrément uniquement si des labels sont effectivement appliqués Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -11,6 +11,7 @@ import { embeddingService } from '@/lib/ai/services/embedding.service'
|
||||
import { syncNoteLinksForNote } from '@/lib/notes/sync-note-links'
|
||||
import { getSystemConfig, getConfigNumber, getConfigBoolean, SEARCH_DEFAULTS } from '@/lib/config'
|
||||
import { contextualAutoTagService } from '@/lib/ai/services/contextual-auto-tag.service'
|
||||
import { incrementUsageAsync } from '@/lib/entitlements'
|
||||
import { semanticSearchService } from '@/lib/ai/services/semantic-search.service'
|
||||
import { getAISettings } from '@/app/actions/ai-settings'
|
||||
import {
|
||||
@@ -508,6 +509,8 @@ export async function createNote(data: {
|
||||
}
|
||||
const merged = [...new Set([...existingNames, ...appliedLabels])]
|
||||
await syncNoteLabels(noteId, merged, notebookId ?? null, userId)
|
||||
// Incrémenter le quota une seule fois par sauvegarde où des labels IA sont appliqués
|
||||
incrementUsageAsync(userId, 'auto_tag')
|
||||
if (!data.skipRevalidation) {
|
||||
revalidatePath('/home')
|
||||
}
|
||||
|
||||
@@ -83,7 +83,8 @@ export async function POST(req: NextRequest) {
|
||||
session.user.id,
|
||||
(provider) => provider.generateTags(content, language),
|
||||
);
|
||||
if (!usedByok) incrementUsageAsync(session.user.id, 'auto_tag');
|
||||
// Ne pas incrémenter ici — ce sont des suggestions UI (déclenchées à chaque keystroke)
|
||||
// Le quota est compté uniquement lors de l'application réelle des labels (voir notes.ts)
|
||||
return NextResponse.json({ tags });
|
||||
} catch (err) {
|
||||
console.error('[/api/ai/tags] legacy tagging failed:', err)
|
||||
|
||||
Reference in New Issue
Block a user