This website works better with JavaScript.
fb086a706f
feat: rename fallback category "Autre" to "Divers"
oabrivard
2026-03-26 18:58:39 +0100
102f6d3fe7
feat: add first/last page + page number input to article history pagination
oabrivard
2026-03-26 18:50:57 +0100
e24236a069
feat: add max_links_per_source setting (default 8, was hardcoded 15)
oabrivard
2026-03-26 18:26:00 +0100
2c3c6008a3
fix: monotonic progress bar with 3 clean phases (sources, websearch, saving)
oabrivard
2026-03-26 18:06:38 +0100
d234fa9b24
feat: add is_article LLM check + remove use_llm_for_source_links option
oabrivard
2026-03-26 17:43:50 +0100
5b67ef2e51
fix: update integration and E2E test fixtures for summary_length, source_extraction_window, and NewsItem.date
oabrivard
2026-03-26 16:57:33 +0100
37d17e577a
feat: restructure Phase 1 into windowed source extraction waves
oabrivard
2026-03-26 16:50:53 +0100
0f1b0306e4
feat: add source_extraction_window setting (default 3)
oabrivard
2026-03-26 16:47:11 +0100
94a200a2ab
docs: add implementation plan for windowed source extraction
oabrivard
2026-03-26 16:39:54 +0100
5426b342ef
docs: add spec for windowed source extraction pipeline
oabrivard
2026-03-26 16:34:16 +0100
c5a56c8fb8
feat: save publication date in article history and show in synthesis
oabrivard
2026-03-26 15:56:30 +0100
de25a08d51
feat: LLM extracts publication date as fallback for article age filtering
oabrivard
2026-03-26 15:46:03 +0100
91272ddfc4
feat: dynamic summary length and body snippet size based on setting
oabrivard
2026-03-26 15:01:37 +0100
bf07b049f3
feat: add summary length slider to Settings page
oabrivard
2026-03-26 15:01:13 +0100
1b63afd12a
feat: add summary_length setting (1=court, 2=moyen, 3=detaille)
oabrivard
2026-03-26 14:58:59 +0100
fdb8b7f662
docs: add implementation plan for configurable summary length
oabrivard
2026-03-26 14:52:55 +0100
1ab19cb382
docs: add spec for configurable summary length
oabrivard
2026-03-26 14:48:43 +0100
ec798831c3
fix: use broader theme and 30-day window in generation E2E test
oabrivard
2026-03-26 13:20:55 +0100
7558dcf049
fix: run seed.ts before E2E tests to create test users and sessions
oabrivard
2026-03-26 13:05:42 +0100
1dad319e5e
fix: update E2E tests for Turnstile DOM stability, stale selectors, and pipeline changes
oabrivard
2026-03-26 12:53:14 +0100
d8ccd779d7
fix: rename duplicate jobId variable in E2E test
oabrivard
2026-03-26 12:08:32 +0100
021319c166
fix: use import.meta.url instead of __dirname in ESM config
oabrivard
2026-03-26 12:02:58 +0100
b5cdd80123
fix: load .env.test in Playwright config for OPENAI_TEST_API_KEY
oabrivard
2026-03-26 11:59:35 +0100
0874650a7f
fix: pipeline tests use wiremock URLs + skip SSRF for localhost
oabrivard
2026-03-26 11:38:53 +0100
a158f14311
fix: don't poll SSE stream in model resolution test
oabrivard
2026-03-26 11:34:59 +0100
eadfbc000b
fix: expect 201 Created for source creation in syntheses test
oabrivard
2026-03-26 11:30:25 +0100
54c637647b
fix: add missing fields to syntheses test settings payload
oabrivard
2026-03-26 11:27:02 +0100
7ec491b6ac
fix: update settings test payloads for new required fields + fix unused var warning
oabrivard
2026-03-26 11:24:52 +0100
a0a8f72caa
fix: don't join Drop cleanup thread — prevents deadlock in tokio tests
oabrivard
2026-03-26 11:17:09 +0100
243558b950
debug: add full_app_health_check test with logging
oabrivard
2026-03-26 11:13:48 +0100
aee70b37d4
fix: use docker-compose.test.yml for integration test DB
oabrivard
2026-03-26 11:11:26 +0100
5fa060fadc
fix: use invalid session token for admin auth rejection tests
oabrivard
2026-03-26 10:54:49 +0100
bd4f101d16
fix: use invalid session token instead of no cookie for auth rejection tests
oabrivard
2026-03-26 10:54:35 +0100
53813007c6
fix: use lightweight test router without SPA fallback and TraceLayer
oabrivard
2026-03-26 10:50:58 +0100
7cbafdfb31
fix: create test static dir to prevent ServeDir/ServeFile hang
oabrivard
2026-03-26 10:46:39 +0100
cda9e2fc25
fix: pass all args to cargo test in integration test script
oabrivard
2026-03-26 10:43:59 +0100
bb2209e425
fix: update admin tests for models_scraping/models_websearch split
oabrivard
2026-03-26 10:34:16 +0100
de8e5ab85c
feat: add test runner scripts for integration and E2E tests
oabrivard
2026-03-26 10:22:40 +0100
370e033506
feat: add pipeline integration tests with MockLlmProvider and wiremock
oabrivard
2026-03-26 10:16:41 +0100
ccecaa2d13
refactor: add provider_override for pipeline dependency injection
oabrivard
2026-03-26 10:12:07 +0100
17e054c257
feat: add MockLlmProvider for integration testing
oabrivard
2026-03-26 10:10:13 +0100
ecf95ffe35
fix: update test config for session_secret removal and Arc master key
oabrivard
2026-03-26 10:10:10 +0100
1f8f2ddc9d
docs: add implementation plan for integration tests with mock LLM provider
oabrivard
2026-03-26 10:06:50 +0100
f678275f59
docs: add spec for integration tests with mock LLM provider + update algorithm.md
oabrivard
2026-03-26 09:58:29 +0100
0b71215ddc
docs: update algorithm.md to reflect current pipeline state
oabrivard
2026-03-26 09:49:37 +0100
4bbdd5c4d1
perf: batch article history INSERTs to reduce DB round-trips
oabrivard
2026-03-26 09:40:32 +0100
f37e0b42a0
perf: use Arc for immutable values in pipeline to reduce cloning
oabrivard
2026-03-26 09:36:52 +0100
0aa0541958
refactor: standardize createResource and use Button component
oabrivard
2026-03-26 09:35:26 +0100
60494aeceb
perf: cache CSS selectors with LazyLock to avoid re-parsing
oabrivard
2026-03-26 09:32:44 +0100
69c1688bc7
chore: remove SESSION_SECRET and wrap master_encryption_key in Arc
oabrivard
2026-03-26 09:32:18 +0100
150090a112
chore: align frontend DEFAULT_SETTINGS with backend defaults
oabrivard
2026-03-26 09:30:55 +0100
2e87ae854a
docs: add implementation plan for polish and optimization items
oabrivard
2026-03-26 09:25:03 +0100
825c7212e1
docs: add spec for polish and optimization items
oabrivard
2026-03-26 09:20:28 +0100
ee6d833d70
refactor: decompose Settings.tsx into sub-components
oabrivard
2026-03-26 01:21:45 +0100
f44aa44c48
refactor: replace trace_article 11 parameters with ArticleTrace struct
oabrivard
2026-03-26 01:19:05 +0100
f5466a6bd5
refactor: extract shared LLM error mapping to reduce duplication
oabrivard
2026-03-26 01:16:47 +0100
2036c12b24
refactor: eliminate SettingsResponse struct, serialize UserSettings directly
oabrivard
2026-03-26 01:16:03 +0100
e056ef9d3e
refactor: extract assign_category and filter_phase2_url helpers from synthesis pipeline
oabrivard
2026-03-26 01:14:35 +0100
030fe6f941
docs: add implementation plan for structural refactoring
oabrivard
2026-03-26 01:09:04 +0100
fd1130fd5a
docs: add spec for structural refactoring (audit sub-project B)
oabrivard
2026-03-26 01:02:47 +0100
5a66443a94
fix: add onCleanup for setTimeout in frontend pages
oabrivard
2026-03-26 00:47:18 +0100
24d53a01d1
fix: block SSRF via IPv4-mapped IPv6 and add check to source page fetching
oabrivard
2026-03-26 00:45:45 +0100
93003229f1
fix: add periodic expired session cleanup (hourly)
oabrivard
2026-03-26 00:44:04 +0100
3da246bef6
fix: remove XSS via innerHTML and add setTimeout cleanup
oabrivard
2026-03-26 00:43:19 +0100
347558a278
fix: atomic job creation, 15min timeout, and panic handling
oabrivard
2026-03-26 00:42:23 +0100
59932589cc
fix: prevent UTF-8 panic in error message truncation
oabrivard
2026-03-26 00:39:39 +0100
4123ae38f7
docs: add implementation plan for audit bug fixes
oabrivard
2026-03-26 00:35:48 +0100
114f2912dd
docs: add spec for audit bug fixes (P0 + P1)
oabrivard
2026-03-26 00:25:57 +0100
811c5c87d1
docs: add comprehensive code audit reports from 5-agent team
oabrivard
2026-03-26 00:10:20 +0100
e74a1850bf
fix: log source URL in link_extraction LLM call logs
oabrivard
2026-03-25 23:53:38 +0100
a968fdc308
fix: allow brave_search as valid API key provider
oabrivard
2026-03-25 23:07:36 +0100
c5d23ecd10
feat: add Brave Search section to Settings page
oabrivard
2026-03-25 22:57:52 +0100
f124b056fe
feat: add Brave Search Phase 2 pipeline path
oabrivard
2026-03-25 22:55:29 +0100
e05c2ae75a
feat: handle brave_search in API key test endpoint
oabrivard
2026-03-25 22:52:18 +0100
f414ff0f58
feat: add use_brave_search setting
oabrivard
2026-03-25 22:51:19 +0100
fa03c60339
feat: add Brave Search API client module
oabrivard
2026-03-25 22:47:39 +0100
37bb6b4361
docs: add implementation plan for Brave Search integration
oabrivard
2026-03-25 22:39:41 +0100
83c0828392
docs: add spec for Brave Search API integration in Phase 2
oabrivard
2026-03-25 22:08:31 +0100
41109b3d93
feat: send structured link pairs to LLM instead of raw HTML body
oabrivard
2026-03-25 10:53:56 +0100
a5332f0996
feat: add article_url to LLM call logs for classify tracing
oabrivard
2026-03-25 10:51:44 +0100
b062e81218
fix: remove personalized sources from Phase 2 web search prompt
oabrivard
2026-03-25 10:49:04 +0100
2299790986
docs: add implementation plan for pipeline improvements
oabrivard
2026-03-25 10:41:43 +0100
7804235401
docs: add spec for pipeline improvements (web search, logs, link extraction)
oabrivard
2026-03-25 10:32:42 +0100
4c6381b09a
feat: add batch_size setting for Phase 1 parallelism
oabrivard
2026-03-25 10:02:00 +0100
a5e6cf2ac0
docs: update algorithm docs and generation time estimate
oabrivard
2026-03-25 09:55:24 +0100
7cd867c650
fix: resolve all clippy warnings
oabrivard
2026-03-25 09:52:08 +0100
fa9375233e
fix: remove 3 compiler warnings (unreachable code, unused variables)
oabrivard
2026-03-25 09:48:51 +0100
14b0a0b7e8
refactor: LLM link extraction uses body only (no head), increased to 12000 chars
oabrivard
2026-03-25 09:46:43 +0100
3353e5261f
feat: rate limiter waits instead of failing — sleeps until window passes (max 60s)
oabrivard
2026-03-25 09:32:08 +0100
ed399e9a6e
feat: parallelize Phase 1 scrape+classify in batches of 5
oabrivard
2026-03-25 09:21:05 +0100
a5f4239157
fix: distinguish filtered_too_old from filtered_empty in article tracing
oabrivard
2026-03-25 09:12:22 +0100
a760220d44
fix: log LLM calls for source link extraction in llm_call_log
oabrivard
2026-03-25 09:06:41 +0100
fb765d6c8f
feat: split model dropdowns — scraping vs websearch in frontend
oabrivard
2026-03-25 08:40:50 +0100
8d232c1ade
feat: split model selection — scraping vs websearch with GPT-5 models
oabrivard
2026-03-25 08:34:59 +0100
97e484e03f
docs: add model split implementation plan
oabrivard
2026-03-25 08:28:56 +0100
c321cacd78
docs: update OpenAI model lists to GPT-5 generation
oabrivard
2026-03-25 08:27:48 +0100
03d4cfb773
docs: add spec for model split — scraping vs websearch
oabrivard
2026-03-25 08:23:48 +0100
37bc849f92
feat: add clear history button with confirmation on ArticleHistory page
oabrivard
2026-03-25 08:00:14 +0100
7f7d584314
feat: parallel source extraction, shuffle candidates, clear history endpoint
oabrivard
2026-03-25 07:55:01 +0100
2d623c6ced
docs: add spec for pipeline tweaks (parallel extraction, shuffle, clear history)
oabrivard
2026-03-25 07:51:44 +0100