feat: apply category defaults first then AI adjusts + remove chips

Backend: merge strategy — category defaults are applied as baseline
(ai_generated=0), AI impacts override/extend them (ai_generated=1).
All N category defaults appear in the impacts list; AI covers them
explicitly with event-specific score/direction adjustments.
Prompt: instruct AI to cover ALL default instruments.

Frontend: remove default impact chips under category selector —
they now appear directly in the instrument impacts list.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OpenSquared
2026-06-25 22:23:38 +02:00
parent 06a27e4492
commit 069b398d75
2 changed files with 37 additions and 22 deletions

View File

@@ -502,20 +502,6 @@ function EventDetail({
{matchedCat?.description && (
<div className="text-xs text-slate-600 mt-1.5 italic">{matchedCat.description}</div>
)}
{matchedCat && nDefaults > 0 && (
<div className="flex flex-wrap gap-1 mt-2">
{matchedCat.default_impacts.slice(0, 8).map((di: DefaultImpact) => (
<span key={di.instrument_id}
className={clsx('text-xs px-1.5 py-0.5 rounded border font-mono',
di.typical_direction === 'bullish' ? 'text-emerald-400 border-emerald-800/40 bg-emerald-900/20' :
di.typical_direction === 'bearish' ? 'text-red-400 border-red-800/40 bg-red-900/20' :
'text-slate-400 border-slate-700 bg-slate-800/40')}>
{di.typical_direction === 'bullish' ? '↑' : di.typical_direction === 'bearish' ? '↓' : ''} {di.instrument_id}
<span className="text-slate-600 ml-1">{(di.sensitivity * 100).toFixed(0)}%</span>
</span>
))}
</div>
)}
</div>
)
})()}