Supports web-application OAuth clients with a pre-registered
http://127.0.0.1:<port> redirect URI; desktop clients keep the random
port default.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
BloggerDeliverer posts each briefing (markdown -> HTML, H1 becomes the
post title with the report headline) via the Blogger API v3 using a
long-lived refresh token; `us2kr blogger-auth` runs the loopback OAuth
flow once and prints the BLOGGER_* lines for .env. Enabled only when
all four BLOGGER_* settings are present.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
After summarisation the report is verified against the collected
payload (numbers, directions, unsupported claims) by a second LLM call
with a Verification JSON schema. Major issues trigger one revision and
a re-check; minor-only verdicts are normalized to ok. Failures never
block delivery. The verdict is stored in the result JSON and shown on
the dashboard (badge + 검증 메모). Disable with US2KR_VERIFY_ENABLED.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Drop the "요약 모델" footer from rendered briefings and the model badge
from the dashboard (degraded briefings keep a "요약 없음" chip). The
model is still recorded in the DB/result JSON for diagnostics.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Optional meta-search source (SEARXNG_BASE_URL): per-query isolation,
time_range=day, merged and deduplicated with the RSS feeds. Briefings
still publish on RSS alone if the instance is down.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>